DEBCONF.CONF(5) | File Formats Manual | DEBCONF.CONF(5) |
debconf.conf - Fichero de configuración de debconf
Debconf es un sistema de configuración de paquetes de Debian. «/etc/debconf.conf» y «~/.debconfrc» son los ficheros de configuración que usa debconf para determinar las bases de datos que debería usar. Estas bases de datos guardan dos tipos de información; los datos dinámicos de configuración que el usuario introduce, y datos estáticos de plantilla. Debconf ofrece un sistema de base de datos flexible y extensible. Puede crear controladores nuevos con un esfuerzo mínimo, y combinar conjuntos de controladores de varias maneras.
# Este es un fichero de configuración de
# ejemplo suficiente para usar debconf.
Config: configdb
Templates: templatedb
Name: configuración-base-de-datos
Driver: File
Filename: /var/cache/debconf/config.dat
Name: base-de-datos-de-plantillas
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat
El formato de este fichero es una serie de definiciones separadas, como mínimo, por una línea vacía. Se ignoran las líneas de comentario que empiezan con «#».
La primera definición del fichero es especial, y se usa para configurar debconf al completo. Es necesario que haya dos campos en la primera definición:
Los campos adicionales que se pueden usar incluyen:
Por ejemplo, la primera definición de un fichero puede
tener este aspecto:
Config: configuración-base-de-datos
Templates: base-de-datos-de-plantillas
Cada definición restante en el fichero configura una base
de datos. Una definición de una base de datos empieza denominando la
base de datos:
Name: configuración-base-de-datos
Después, se indica el controlador que se debería
usar para esta base de datos. Consulte «CONTROLADORES»,
más abajo, para información acerca de los controladores
disponibles.
Driver: File
Puede indicar que la base de datos no es esencial para el correcto
funcionamiento de debconf indicando que no es obligatorio. Esto hará
que debconf prosiga en el caso de que la base de datos falle.
Required: false
Puede marcar la base de datos como de sólo lectura, y
debconf no escribirá nada en él.
Readonly: true
También puede limitar el tipo de datos que pueden entrar en la base de datos con las líneas «Accept-» y «Reject-»; consulte más abajo la sección «CONTROLES DE ACCESO».
El resto de la definición de cada base de datos se
usará para proporcionar información específica de ese
controlador. Por ejemplo, el controlador «Text» necesita
conocer el directorio donde alojar la base de datos, así que
podría usar:
Filename: /var/cache/debconf/config.dat
Dispone de un gran número de controladores («drivers»), y puede escribir más con poca dificultad. Los controladores son de dos tipos generales. Primero están los controladores reales; controladores que acceden y guardan datos de forma directa en algún tipo de base de datos, el cual puede estar en el sistema de ficheros actual o en un sistema remoto. Después están los metacontroladores, que combinan otros controladores para así crear sistemas más interesantes. Vamos a empezar con el primero.
La desventaja es que el fichero se tiene que leer por completo cada vez que debconf arranca, y el acto de guardar también es lento.
Puede configurar las siguientes opciones de este controlador.
Una definición de ejemplo configurando una base de datos con este controlador:
Name: mi-base-de-datos
Driver: File
Filename: /var/cache/debconf/mydb.dat
Puede configurar las siguientes opciones de este controlador.
Una definición de ejemplo configurando una base de datos con este controlador:
Name: mi-base-de-datos
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt
Este controlador se puede configurar de la misma forma que el controlador «DirTree», y también acepta lo siguiente:
Una definición de ejemplo configurando una base de datos con este controlador:
Name: mi-base-de-datos
Driver: PackageDir
Directory: /var/cache/debconf/mydb
Este controlador de base de datos accede a un directorio LDAP para los datos de configuración de debconf. Debido a la naturaleza de la bestia, se debería acceder a directorios LDAP en modo de sólo lectura. Esto se debe a que puede que acceda varias veces simultáneamente, y es generalmente beneficioso para la consistencia de los datos si nadie intenta modificarlos mientras esto ocurre. Por supuesto, se permite el acceso para la escritura en aquellos casos en los que desea actualizar los datos de configuración en ese directorio.
Para más información acerca de como configurar un servidor LDAP para debconf, consulte «/usr/share/doc/debconf-doc/README.LDAP», en el paquete debconf-doc.
Necesita instalar el paquete libnet-ldap-perl para usar este controlador de base de datos. Debconf sugiere ese paquete, pero no depende de él.
Considere cuidadosamente las implicaciones de seguridad de usar una base de datos remota de debconf. No es algo muy seguro a menos que confíe en la fuente y la red mediadora.
Puede configurar las siguientes opciones de este controlador.
Esta es una definición de ejemplo que configura una base de datos usando este controlador, suponiendo que la base de datos remota está en «example.com», y que permite el acceso anónimo:
Name: base-de-datos-ldap
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0
Otro ejemplo, esta vez la base de datos LDAP está en el sistema local («localhost»), y que permite su escritura:
Name: base-de-datos-ldap
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1
Puede configurar las siguientes opciones de este controlador.
Estos son todos los controladores reales, pasemos ahora a los metacontroladores.
La cosa se pone más interesante si una de las bases de datos de la pila es de sólo lectura. Suponga una pila de bases de datos foo, bar y baz, donde foo y baz son de sólo lectura. Debconf desea modificar un elemento, y este elemento sólo está presente en baz, de sólo lectura. El controlador «stack» es suficientemente inteligente como para darse cuenta de que no funcionará, y copiará el elemento de baz a bar, donde tomará lugar la escritura. Ahora el elemento en baz está oculto por el elemento en bar, y ya nunca será visible para debconf.
Este tipo de cosas son particularmente útiles cuando desea que muchos sistemas se relacionen con una base de datos central de sólo lectura, a la vez que permite que ciertas cosas sean anuladas en cada sistema. Cuando añade los controles de acceso al dibujo, las pilas permiten hacer otras cosas interesantes, como redirigir todas las contraseñas a una sola base de datos, mientras que otra base de datos inferior en la pila gestiona todo lo demás.
Sólo se necesita un elemento de configuración para crear una pila:
Por ejemplo:
Name: mega-base-de-datos
Driver: stack
Stack: contraseña-base-de-datos, configuración-base-de-datos
compañía-base-de-datos
AVISO: El controlador «stack» aún no está bien comprobado. Utilice bajo su propio riesgo.
Backup
Debe definir los siguientes campos para configurar este controlador:
Por ejemplo:
Name: respaldo
Driver: Backup
Db: mi-base-de-datos
Backupdb: mi-base-de-datos-de-respaldo
Debug
Debe definir los siguientes campos para configurar este controlador:
Cuando configura una base de datos, también puede usar algunos campos para definir los controles de acceso. Puede definir que una base de datos sólo acepte contraseñas, por ejemplo, o hacer que una base de datos sólo acepte elementos con «foo» en su nombre.
Algunos de los controladores de base de datos usan módulos de formato para controlar el formato real en el que la base de datos se guarda en el disco. Estos son los formatos aceptados actualmente:
Este es un ejemplo más complicado de un fichero «debconf.conf».
# Esta definición se usa para una configuración general
# de debconf.
Config: stack
Templates: templates
Log: developer
Debug: developer
# Esta es mi propia base de datos.
Name: mi-base-de-datos
Driver: DirTree
Directory: /var/cache/debconf/config
# Esta es otra base de datos que uso para contener
# sólo la configuración del servidor X.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# Es algo difícil descubrir qué preguntas pertenecen
# a X; debería usar una estructura de árbol más
# profunda para comparar sólo con ^X/
# Pero bueno.
Accept-Name: xserver|xfree86|xbase
# Esta es la base de datos global de debconf de
# sólo lectura (para mi) de nuestra compañía.
Name: compañía
Driver: LDAP
Server: debconf.foo.com
BaseDN: cn=debconf,dc=foo,dc=com
BindDN: uid=admin,dc=foo,dc=com
BindPasswd: secret
Readonly: true
# No deseo ninguna contraseña dando vueltas
# por aquí.
Reject-Type: password
# Si no se puede acceder a esta base de datos,
# continuar de todas formas.
Required: false
# Uso esta base de datos para guardar
# contraseñas de forma segura.
Name: contraseñas
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password
# Vamos a guardarlas todas en una
# pila de bases de datos.
Name: stack
Driver: Stack
Stack: contraseñas, X, mi-base-de-datos, compañía
# Por ello, todas las contraseñas van a la base de datos
# de contraseñas. La mayoría de la configuración de
# X está en la base de datos de X, y todo lo demás va a mi
# base de datos principal. Los valores se buscan en cada
# uno de estos, y si ninguno tiene un valor particular,
# se comprueba en la base de datos LDAP de la compañía
# (a menos que sea una contraseña).
# También se usa una base de datos para
# guardar plantillas. Esto no tiene que ser muy complejo.
Name: plantillas
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates
Si en este fichero usa algo parecido a «${HOME}», se reemplazará con el valor de la variable de entorno nombrada.
También puede usar variables de entorno para anular en el momento algo en las bases de datos, consulte debconf(7)
Los nombres de campo (la sección de la línea anterior a los dos puntos) no son sensibles a las mayúsculas y minúsculas. Sí lo son, sin embargo, los valores.
Más controladores y formatos. Algunas ideas incluyen: un controlador SQL, con la capacidad de acceder a una base de datos remota. Un controlador DHCP, que dé acceso a algunas cosas especiales como el nombre de sistema («hostname»), la dirección IP y servidores DNS. Un controlador que obtenga valores de un registro público DNS con campos con formato TXT. Un formato compatible con la salida de cdebconf. Un controlador de anulación, que pueda anular el campo del valor u opciones de todas las peticiones que pasan a través de él.
/etc/debconf.conf
~/.debconfrc
Joey Hess <joeyh@debian.org>
Omar Campagne Polaino <ocampagne@gmail.com>, 2010
Si encuentra un fallo en la traducción, por favor, informe de ello en la lista de traducción <debian-l10n-spanish@lists.debian.org>.