DEBCONF.CONF(5) | File Formats Manual | DEBCONF.CONF(5) |
debconf.conf - fichier de configuration de debconf
Debconf est un système de configuration pour les paquets Debian. /etc/debconf.conf et ~/.debconfrc sont les fichiers de configuration utilisés pour déterminer la base de données qui doit être utilisée. Ces bases de données sont utilisées pour garder deux types d'informations ; les données dynamiques de configuration que l'utilisateur a définies et les données statiques des questions. Debconf offre une interface souple et extensible pour la gestion des bases de données. De nouveaux pilotes peuvent être créés sans effort et les pilotes peuvent être combinés de différentes façons.
# Ceci est un exemple de fichier de configuration
# suffisant pour utiliser debconf.
Config: configdb
Templates: templatedb
Name: configdb
Driver: File
Filename: /var/cache/debconf/config.dat
Name: templatedb
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat
Le format de ce fichier est une suite de paragraphes, chacun d'eux séparé par au moins une ligne blanche. Les lignes de commentaires, commençant par un caractère dièse (« # »), sont ignorées.
Le premier paragraphe du fichier est spécial et est utilisé pour configurer l'ensemble de debconf. Ce premier paragraphe requiert deux champs :
Champs additionnels pouvant être ajoutés :
Par exemple, le premier paragraphe d'un fichier devrait ressembler
à ça :
Config: configdb
Templates: templatedb
Chaque paragraphe restant dans le fichier configure une base de
données. Un paragraphe de base de données commence par nommer
la base de données :
Name: configdb
Ensuite, on indique le pilote à utiliser pour cette base de
données. Pour avoir des informations sur les pilotes disponibles,
voir la section DRIVER plus bas.
Driver: File
Vous pouvez indiquer que la base de données n'est pas
essentielle au fonctionnement correct de debconf en spécifiant
qu'elle n'est pas requise. Cela mettra le désordre dans debconf en
cas de défaillance quelconque de la base de données.
Required: false
Vous pouvez marquer une base de données comme étant
en lecture seule, debconf n'y écrira alors rien.
Readonly: true
Vous pouvez aussi limiter le type de données pouvant aller dans la base de données avec les lignes Accept- et Reject- ; voir la section CONTRÔLES D'ACCÈS plus bas.
Le reste de chaque paragraphe d'une base de données est
utilisé pour fournir une configuration spécifique à ce
pilote. Par exemple, le pilote Text a besoin de savoir dans quel
répertoire mettre la base de données, vous devriez donc
entrer :
Filename: /var/cache/debconf/config.dat
Il y a de nombreux pilotes disponibles et on peut en écrire d'autres sans grande difficulté. Les pilotes sont répartis en deux types. Il y a d'abord les pilotes réels -- pilotes qui lisent et stockent réellement les données dans quelque sorte de base de données, qui peut se trouver sur le système de fichiers local ou sur un système distant. Il y a ensuite les méta-pilotes qui associent différents pilotes pour former des systèmes plus intéressants. Commençons par les premiers.
Parmi les inconvénients, le fichier doit être lu en entier à chaque fois que debconf démarre ; de même, le sauvegarder est lent.
Pour ce pilote, les points suivants sont configurables.
Voici un exemple de paragraphe configurant une base de données qui utilise ce pilote :
Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat
Pour ce pilote, les points suivants sont configurables.
Voici un exemple de paragraphe configurant une base de données qui utilise ce pilote :
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt
Ce pilote est configurable de la même manière que le pilote DirTree, plus :
Voici un exemple de paragraphe configurant une base de données qui utilise ce pilote :
Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb
Ce pilote accède à un répertoire LDAP pour les données de configuration de debconf. Les répertoires LDAP doivent être en lecture seule, à cause de la nature de la bête. C'est parce que plusieurs accès peuvent avoir lieu et il vaut mieux, pour la cohérence des données, que personne n'essaie de les modifier lorsque cela arrive. Bien sûr, on peut donner la possibilité de modifier ces répertoires lorsque vous voulez mettre à jour les données de configuration.
Pour plus d'informations à propos de la configuration d'un serveur LDAP pour debconf, veuillez lire /usr/share/doc/debconf-doc/README.LDAP (du paquet debconf-doc).
Pour utiliser ce pilote, vous devez avoir installé le paquet libnet-ldap-perl. Debconf suggère ce paquet mais ne dépend pas de lui.
Veuillez être attentif à ce qu'implique une base de données debconf distante en ce qui concerne la sécurité. Ce n'est pas une chose très sûre à faire à moins que vous fassiez confiance à la source et au réseau intervenant.
Pour ce pilote, les points suivants sont configurables.
Voici un exemple de paragraphe configurant une base de données qui utilise ce pilote, en supposant que la base de données distante est sur exemple.com et qu'on peut y accéder anonymement :
Name: ldapdb
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0
Autre exemple, cette fois la base de données LDAP est sur l'hôte local et peut être modifiée :
Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1
Pour ce pilote, les points suivants sont configurables.
C'est tout pour les pilotes réels, nous allons à présent voir les méta-pilotes.
Les choses deviennent plus intéressantes si l'une des bases de données de la pile est en lecture seule. Considérez une pile des bases de données toto, titi et tata, où toto et tata sont toutes les deux en lecture seule. Debconf veut changer un élément et cet élément n'est présent que dans tata, qui est en lecture seule. Le pilote de pile est assez malin pour réaliser que ça ne fonctionne pas, il copiera l'élément de tata vers titi et l'écriture aura lieu dans titi. Maintenant l'élément de tata est caché par celui de titi et il ne sera plus visible de debconf.
Ce genre de choses est particulièrement utile si vous voulez faire pointer beaucoup de systèmes vers une base de données centrale en lecture seule, tout en permettant la réécriture des éléments sur chaque système. Si l'on ajoute des contrôles d'accès, les piles permettent de faire beaucoup d'autres choses intéressantes, comme rediriger tous les mots de passe vers une base de données pendant qu'une autre base de données en dessous s'occupe de tout le reste.
Un seul élément de configuration est nécessaire pour configurer une pile :
Par exemple :
Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb
ATTENTION : le pilote de piles n'a pas encore été vraiment testé. Utilisez-le à vos risques et périls.
Backup
Pour configurer ce pilote, vous devez spécifier les champs suivants :
Par exemple :
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Debug
Pour configurer ce pilote, vous devez spécifier les champs suivants :
Quand vous configurez une base de données, vous pouvez aussi utiliser des champs pour indiquer les contrôles d'accès. Vous pouvez spécifier, par exemple, qu'une base de données n'accepte que les mots de passe ou faire qu'une base de données n'accepte que les choses ayant dans leur nom « toto ».
Quelques pilotes utilisent des modules de format pour contrôler le format réel d'enregistrement des bases de données sur le disque. Ces formats sont actuellement gérés :
Voici un exemple de fichier debconf.conf parmi les plus compliqués.
# Ce paragraphe est utilisé pour la
# configuration générale de debconf.
Config: stack
Templates: templates
Log: developer
Debug: developer
# Ma base de données locale.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/config
# C'est une autre base de données que
# j'utilise pour ne garder que la
# configuration de mon serveur X.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# Il est difficile de savoir quelles
# sont le questions concernent X ; il faudrait
# utiliser une arborescence plus profonde
# pour que je puisse n'accepter que les
# correspondances avec ^X/
# Passons.
Accept-Name: xserver|xfree86|xbase
# C'est la base de données générale de notre
# société, en lecture seule (pour moi !).
Name: company
Driver: LDAP
Server: debconf.toto.com
BaseDN: cn=debconf,dc=toto,dc=com
BindDN: uid=admin,dc=toto,dc=com
BindPasswd: secret
Readonly: true
# Je ne veux pas que les mots de passe traînent par là.
Reject-Type: password
# Si cette base de données n'est pas disponible
# pour quelque raison que ce soit, on continue.
Required: false
# J'utilise cette base de données pour
# conserver les mots de passe en sûreté.
Name: passwords
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password
# Rassemblons toutes ces bases
# de données dans une pile.
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company
# Donc, tous les mots de passe vont dans la
# base de données passwords. La plupart des objets
# concernant la configuration de X vont dans la
# base de données X, et tout le reste va dans ma
# base de données principale. Les valeurs sont
# recherchées tour à tour dans chacune de ces bases
# de données et si une valeur particulière n'est trouvée
# nulle part, elle est recherchée dans la base de
# données LDAP au niveau de la société (à moins
que ce ne
# soit un mot de passe).
# Une base de données est aussi utilisée
# pour conserver les questionnaires. Nous
# n'avons pas besoin d'y mettre autant de fantaisie.
Name: templates
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates
Si vous utilisez dans ce fichier quelque chose comme ${HOME}, cette variable sera remplacée par la valeur de la variable d'environnement nommée ainsi.
Les variables d'environnement peuvent aussi être utilisées pour remplacer à la volée les bases de données utilisées, voir debconf(7).
Il n'est pas tenu compte de la casse des noms des champs (la partie de la ligne avant le deux-points). Cependant, les valeurs sont sensibles à la casse.
Autres pilotes et formats. Voici quelques idées : un pilote SQL, avec la possibilité d'accéder à une base de données distante ; un pilote DHCP, qui rend disponible certaines choses spécifiques comme le nom d'hôte, l'adresse IP et les serveurs DNS ; un pilote qui prend ses valeurs dans les champs TXT des enregistrements DNS publics ; un format compatible avec la sortie de cdebconf ; un pilote d'annulation, qui peut annuler la valeur d'un champ ou les drapeaux de toutes les requêtes qui lui sont adressées.
/etc/debconf.conf
~/.debconfrc
Joey Hess <joeyh@debian.org>
Julien Louis <ptitlouis@sysif.net>, 2005
Cyril Brulebois <kibi@debian.org>, 2006
Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet debconf.