[AlternC-dev] debianisation, suite

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

The Anarcat anarcat at anarcat.ath.cx
Sam 8 Mai 22:16:10 CEST 2004


On Sat May 08, 2004 at 07:53:24PM +0200, Benjamin Sonntag wrote:
> Je viens de re-réfléchir à ce problème de gestion de la configuration 
> des services AlternC.
> 
> Je vous propose le fonctionnement suivant :
> 
> Lexique :
> * un module AlternC <=> Un paquet Debian avec ses dépendances. Un module 
> assure un service (genre mailman, webinstaller ...) il existe aussi un 
> module "core" nommé AlternC tout court qui contient le gros des services 
> mail/web

Dans le monde de debian, je crois que ceci serait:

alternc-common
alternc-bureau
alternc-mailman
alternc-sympa

> * fichier de conf AlternC <=> liste de variables la plupart du temps 
> sous la forme key=value\n ou key="complex value"\n et # est pour les 
> commentaires. On peut imaginer de nouvelles syntaxes __si besoin__ (pour 
> des blocs par exemple, on pourrait utiliser <> </> comme dans httpd.conf.)

La simplicié est la clé ici. Ce format pourrait être un shell ou un perl
script. C'est d'ailleurs le format du fichier alternc.conf présentement,
à quelques différences près.

> Fonctionnement :
> 
> - on met dans /etc/alternc un fichier de conf AlternC par module : par 
> exemple alternc.conf (pour le core), alternc-mailman.conf 
> alternc-webinstaller.conf etc.

Ici, on est d'accords.

> - on met dans /etc/ac/ (ou un autre nom, si possible court et facile à 
> retenir/comprendre) la copie de l'ensemble de l'arborescence de /etc 
> concernée par les fichiers de configuration. par exemple, 
> /etc/ac/apache/httpd.conf /etc/ac/postfix/main.cf  /etc/ac/proftpd.conf

Je préfèrerais /etc/alternc/defaults.

Cependant, sous debian, cette valse devrait être évitée. Il devrait y
avoir un moyen de modifier les fichiers de config proprement, dans le
respect des autres packages, sans avoir besoin de garder les configs
originales.

Mais je m'aventure en terrain inconnu ici. Je ne vois dans ma tête que
Apache, pour lequel la solution est très simple, et pour lequel il y a
déjà un moyen de modifier la config de façon élégante. apacheconf permet
de modifier le fichier de config, et la configuration d'apache permet
l'inclusion de fichiers tiers, ce qui devrait être utilisé.

Les autres dépendances sont plus complexes. Les règles de Debian sont
très claires:

http://www.debian.org/doc/debian-policy/ch-files.html#s-config-files

deux packages ne peuvent pas partager des fichiers de config. Un package
ne doit pas modifier des fichiers qu'il n'est pas propriétaire,
autrement que par des scripts fournis par le package propriétaire (eg.
apacheconf). Malheureusement, je crois que seul Apache fourni un tel
script.

Ceci est "très grave", dans le monde de Debian: cela signifie que
jamais le package ne pourra être accepté. :( Je vais tenter m'informer
cependant pour voir s'il n'y aurait pas une alternative.

> - on a dans /usr/lib/alternc/install/ un script shell par module 
> d'AlternC. Chaque script shell peut prendre le paramètre --first-install 
> pour signaler qu'il s'agit d'une première installation du module sur 
> cette machine (ou d'alternc lui-même pour le core). Sinon, il est chargé 
> de mettre juste à jour la conf correspondante au module concerné.
> Ces scripts shells utilisent la conf dans 
> /etc/alternc/alternc-"module".conf pour substituer les variables qui 
> vont bien dans les fichiers de /etc/ac/* qui les concernent et les 
> recopier dans /etc/, et redémarrer les services dans le bon ordre.

Il devrait être possible de reconnaître les fichiers déjà configurés.
Debconf met un "warning" en haut des fichiers qu'il reconnaît lui-même,
rien ne nous empêche de faire de même, et donc éviter un paramètre
first-install.

> - on a 2 scripts shells dans /usr/sbin : alternc.install et alternc.update.
>    * alternc.install lance les scripts de /usr/lib/alternc/install/ 
> avec --first-install (après avoir confirmé que le type savait bien ce 
> qu'il fait ;) )
>    * alternc.update lance les scripts sans --first-install (pour mise à 
> jour seule de la conf).

Comment je vois ça, ces deux scripts devraient être le même, autrement
dit: alternc.install devrait être non-destructif. 

> - (sous réserve que cela soit vraiment utile : ) les fichier de 
> /etc/alternc/*.conf sont copiés dans /var/cache/alternc/conf/*.conf pour 
> pouvoir trouver les variables qui ont été modifiées lors d'un update, si 
> besoin. Cela permettrait par exemple à bind de ne pas avoir à modifier 
> tous les fichiers de zones lors d'un update si l'ip n'a pas changée ...

/var/cache n'est pas le bon endroit. Il faudrait mettre ça dans
/var/backup, je crois.

Mais normalement, ceci est pris soin par dpkg et le système de
"conffiles". Le problème est ici qu'alternc modifie des fichiers qui ne
lui appartiennent pas.

> - on ajoute à chaque fichier de configuration, lors de sa recopie de 
> /etc/ac/* vers /etc/* des lignes de commentaire indiquant que ces 
> fichiers ne DOIVENT PAS etre modifiés, mais qu'il faut modifier le 
> fichier original dans /etc/ac/* ;)

puis rouler alternc.install pour que les modifs prennent effet?

> - on déplace les cas bizarre comme /etc/webalizer/* dans 
> /var/cache/alternc/webalizer/ : en effet, ces fichiers sont une sorte de 
> "cache" de configuration vu que la vraie autorité en matière de 
> statistiques est la table system.stat. et avant le process quotidien de 
> webalizer, on régénère le cache [si besoin].

Hmm... ce sont tout de même des fichiers de configuration. :)

> http://www.alternc.org/wiki/ConfigurationDalternc
> 
> accessible depuis le lien "FuturdAlternc"
> 
> Ajoutez vos questions si besoin, et amendez le machin si vous avez de 
> meilleures idées.

Je commence à travailler sur les choses ...

http://www.alternc.org/wiki/BloquantLaDebianisation

:)

En passant, il me semble que la version de phpWiki est très périmée, sur
alternc.org, je me trompe? Est-ce qu'il y a une mise à jour prévue? :)

A.
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: non disponible
Type: application/pgp-signature
Taille: 187 octets
Desc: non disponible
URL: <http://lists.alternc.org/arch/dev/attachments/20040508/3308711b/attachment.pgp>


Plus d'informations sur la liste de diffusion Dev