B.2. Utilizar la preconfiguración

En primer lugar ha de crear primero el fichero de preconfiguración y ponerlo en la localización donde pretende utilizarlo. La creación del fichero de preconfiguración se describe más adelante en este apéndice. Colocar el fichero en la ubicación correcta es algo relativamente sencillo para la preconfiguración vía red o si quiere leer el fichero de un disquete o una memoria usb. Si desea incluir el fichero en un CD o DVD tendrá que rehacer la imagen ISO. La inclusión del fichero de preconfiguración en el initrd queda fuera del alcance de este documento, consulte la documentación de desarrolladores de debian-installer si está interesado.

Tiene un fichero de preconfiguración de ejemplo, que puede utilizar como base para su propio fichero de preconfiguración, en http://www.debian.org/releases/etch/example-preseed.txt. Este fichero está basado en fragmentos de configuración incluídos en este apéndice.

B.2.1. Cargar el fichero de preconfiguración

Si está utilizando la preconfiguración por initrd tiene que asegurarse que existe un fichero con el nombre de preseed.cfg en el directorio raíz del initrd. El instalador buscará automáticamente este fichero y lo cargará.

Para otros métodos de preconfiguración tiene que decirle al instalador qué ficheros utilizar cuando se arranca. Esto se hace habitualmente dando un valor al parámetro de arranque del núcleo, bien manualmente en el arranque o bien editando el fichero de configuración del cargador de arranque (p.ej. syslinux.cfg) y añadiendo el parámetro al final de la/s línea/s “append” para el núcleo.

Si especifica un fichero de preconfiguración en la configuración del cargador de arranque podrá cambiar la configuración para que no tenga que pulsar enter en el arranque del instalador. En el caso de syslinux esto signfica que tiene que poner el valor de “timeout” en syslinux.cfg a 1.

Para asegurarse de que el instalador obtiene el fichero de preconfiguración correcto puede especificar (opcionalmente) una marca identificativa para el fichero. Esta marca es actualmente una suma MD5 y, si se especifica, debe coincidir el valor que se obtenga del fichero de preconfiguración o el instalador se negará a utilizarlo.

Párametros de arranque a especificar:
- si está arrancando de red:
  preseed/url=http://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- si está arrancando de un CD remasterizado:
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- si está instalando de un medio USB (ponga el fichero de preconfiguración
  en el directorio principal de la memoria USB):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Tenga en cuenta que puede abreviar preseed/url a url y preseed/file a file cuando se pasan como parámetros al núcleo.

B.2.2. Usar parámetros de arranque para preconfigurar preguntas

Puede automatizar la instalación aún cuando no pueda utilizar el archivo de preconfiguración para preconfigurar algunos pasos. Esto es gracias a que se pueden preconfigurar valores en la línea de órdenes cuando se arranca el instalador.

Los parámetros de arranque también pueden utilizarse cuando no quiere realmente preconfigurar sino que sólo quiere dar una respuesta a una pregunta concreta. Algunos de los ejemplos donde esto puede ser útil están documentados en otras partes de este manual.

Para fijar un valor que vaya a utilizar debian-installer, sólo tiene que pasar ruta/a/variable=valor para cualquiera de las variables que se listan como ejemplos en este apéndice. Si se va a utilizar el valor para preconfigurar paquetes en el sistema objetivo, deberán estar precedidos por propietario[21] de la variable como sigue: propietario:ruta/a/variable=valor. No se copiará el valor de la variable a la base de datos de debconf del sistema objetivo si no especifica el propietario. Por lo que no se utilizará durante la configuración del paquete apropiado.

Tenga en cuenta que hay una abreviatura para las variables que se utilizan con más frecuencia en el indicador de arranque. Los ejemplos de este apéndice utilizan la abreviatura si hay una disponible en lugar de la variable completa. En particular, se ha abreviado la variable preseed/url a url y tiene algunas cosas extra para permitir el uso de urls reducidas. Otro ejemplo es la abreviatura tasks que se traduce a tasksel:tasksel/first.

Un “--” en las opciones de arranque tiene un significado especial. Los parámetros que aparezcan tras éste pueden copiarse a la configuración del cargador de arranque que se instale (si el instalador proporciona soporte para esa opción con el cargador de arranque seleccionado). El instalador filtrará de forma automática cualquier opción (como las opciones de preconfiguración) que reconozca.

Nota

Los núcleos actuales (2.6.9 y posteriores) aceptan hasta treinta y dos opciones de línea de órdenes y treinta y dos opciones de entornos. Si se exceden estos números el núcleo abortará (con un “panic”). Los números eran menores en núcleos anteriores.

Para la mayoría de las instalaciones se pueden eliminar con seguridad algunas de las opciones del fichero de configuración del cargado de arranque, como por ejemplo vga=normal lo que permite añadir más opciones para la preconfiguración.

Nota

No siempre es posible especificar valores con espacios para los parámetros de arranque aunque se delimiten con comillas dobles.

B.2.3. Modo «auto»

Hay algunas funciones del Instalador de Debian que se combinan para permitir que algunas entradas de línea de órdenes en el indicador del arranque tengan como consecuencia una instalación automática adaptada y de arbitrariedad compleja. Para mostrar estro aquí hay algunos ejemplos que pueden utilizarse en el indicador del arranque:

auto url=autoservidor

Este valor depende de la existencia de un servidor de DHCP que hará que la máquina llegue al punto donde autoservidor puede resolverse por DNS quizás después de añadir un dominio local entregado por el servidor de DHCP. Si esto se utilizara en un sitio donde el dominio fuera ejemplo.com, y tuviera una configuración de DHCP razonablemente correcta, esto haría que se llegara a descargar el fichero de preconfiguración de http://autoserver.example.com/d-i/etch/./preseed.cfg.

La última parte de esa url (d-i/etch/./preseed.cfg) se toma de auto-install/defaultroot. Por omisión incluye el directorio etch para que versiones futuras puedan especificar su propio nombre en clave y permita hacer migraciones de forma controlada. El trozo /./ se utiliza para indicar la raíz, relativa a la cual se anclarán las rutas siguientes (que se utilizará en preseed/include and preseed/run). Esto permite que los ficheros se especifiquen o bien como una URL completa, bien como rutas que empiezan con «/» y que están ancladas como se mencionaba, o bien como rutas relativas a la ubicación donde se encontró el último fichero de preconfiguración. Esto puede utilizarse para construirse guiones más portable de forma que una jerarquía completa de guiones puede moverse a una nueva ubicación sin romperla. Por ejempo, copiando los ficheros a un stick USB cuando antes estaban en un servidor web. En este ejemplo si el fichero de preconfiguración fija preseed/run a /scripts/orden_tardia.sh entonces este se intenta obtener de http://autoserver.example.com/d-i/etch/./scripts/orden_tardia.sh.

Aún puede utilizar una URL específica si no tiene una infraestructura de DHCP o DNS o si no quiere utilizar la ruta por omisión preseed.cfg. Si no utiliza el elemento /./, entonces se anclará al principio de la ruta (esto es, al tercer / en la URL). A continuación se muestra un ejemplo que requiere poco soporte de la infraestructura de red local:

auto url=http://192.168.1.2/ruta/a/mipreconfiguracion.archivo

Esto funciona de la siguiente forma:

  • si la URL no indica un protocolo se presupone que es http,

  • si la sección del nombre de equipo no tiene puntos se le añade el dominio derivado del DHCP, y

  • si no hay ningún / tras el nombre de host se añade la ruta por omisión.

Además de indicar urls, también puede especificar los valores que no afectan directamente al comportamiento de debian-installer pero pueden pasarse a los programas indicados en preseed/run en el fichero de preconfiguración cargado. De momento el único ejemplo de esto es auto-install/classes, que tiene la abreviatura classes. Puede usarse de la siguiente forma:

auto url=ejemplo.com classes=clase_A;clase_B

Las clases podrían indicar, por ejemplo, el tipo de sistema a utilizar o la localización a usar.

Por supuesto, se puede extender este concepto y, si lo hace, puede utilizar el espacio de nombres «auto-install» para ello. Así, uno podría tener algo como auto-install/style que después se utilizara en sus programas. Si piensa que necesita hacerlo, por favor, comuníquelo a la lista de correo para intentar evitar conflictos en el espacio de nombres y para quizás añadir una abreviatura al parámetro para vd.

La etiqueta de arranque auto aún no está definida en todas las arquitecturas. Puede obtener el mismo efecto simplemente añadiendo dos parámetros a la línea de órdenes del núcleo: auto=true priority=critical. El parámetro auto es una abreviatura para auto-install/enable y controla el tiempo de espera de las preguntas de localización y teclado para que estas se realicen más adelante y puedan preconfigurarse. El parámetro priority es la abreviatura de debconf/priority, si se fija a critical no se hará ninguna pregunta con una prioridad inferior a ésta.

Algunas opciones de interés cuando intenta automatizar una instalación utilizando DHCP son: interface=auto netcfg/dhcp_timeout=60 que hace que el sistema coja la primera tarjeta de red disponible y sea un poco más paciente mientras espera una respuesta a su consulta DHCP.

Sugerencia

Puede encontrar en el sitio web del desarrollador un ejemplo muy largo que muestra cómo usar esta plataforma, el sitio incluye programas y clases de ejemplo. Los ejemplos disponibles en esa ubicación también muestran algunos de los efectos positivos que pueden conseguirse gracias al uso creativo de la preconfiguración.

B.2.4. Aliases useful with preseeding

Las siguientes abreviaturas pueden ser útiles cuando se utiliza preconfiguración (en modo auto)

auto auto-install/enable
classes auto-install/classes
fb debian-installer/framebuffer
locale debian-installer/locale
priority debconf/priority
file preseed/file
url preseed/url
interface netcfg/choose_interface
hostname    netcfg/get_hostname
domain netcfg/get_domain
protocol mirror/protocol
suite mirror/suite

B.2.5. Utilizar un servidor DHCP para especificar los ficheros de preconfiguración

También es posible utilizar DHCP para especificar un fichero de preconfiguración que se debe descargar de la red. El protocolo DHCP permite especificar un archivo. Generalmente este es un archivo para el arranque en red, pero si parece ser un URL entonces el medio de instalación que soporte preconfiguración vía red descargará un fichero de la URL y lo utilizará como un fichero de preconfiguración. A continuación se muestra un ejemplo de cómo configurar el dhcp.conf de la versión 3 del servidor de DHCP de ISC (el paquete Debian dhcp3-server).

if substring (option vendor-class-identifier, 0, 3) = "d-i" {
    filename "http://servidor/preconfiguracion.cfg";
}

Tenga en cuenta que el ejemplo anterior limita la entrega de este nombre de fichero a clientes DHCP que se idenfiquen como «d-i». De esta forma no se afectará a clientes DHCP normales sino sólo al instalador. También puede poner ese texto en la definición de un sistema específico para evitar preconfigurar todas las instalaciones que se hagan en su red.

Una buena forma de hacer uso de la preconfiguración de DHCP es sólo preconfigurar los valores específicos a su red, como puedan ser la réplica Debian a utilizar. De esta forma todas las instalaciones en su red cogerán automáticamente la réplica adecuada, mientras que el resto de la instalación se realizará de forma interactiva. Deberá tener cuidado si quiere utilizar preconfiguración DHCP para automatizar la instalación completa de Debian.



[21] El propietario de una variable debconf (o plantilla) normalmente es el nombre del paquete que contiene la plantilla debconf en cuestión. El propietario es “d-i” para el caso de las variables que se utilizan en el instalador en sí. Las plantillas y las variables pueden tener más de un propietario, lo que ayuda a determinar si pueden eliminarse de la base de datos de debconf si se purga el paquete.