B.2. Utilizar la preconfiguración

En primer lugar ha de crear primero el fichero de preconfiguración y ponerlo en la ubicació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 la imagen de arranque «initrd» queda fuera del alcance de este documento, consulte la documentación para 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/jessie/example-preseed.txt. Este fichero está basado en fragmentos de configuración incluidos en este apéndice.

B.2.1. Cargar el fichero de preconfiguración

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

Para otros métodos de preconfiguración tiene que decirle al instalador qué fichero utilizar en el inicio. 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 Intro en el arranque del instalador. En el caso de syslinux esto significa que tiene que definir timeout en syslinux.cfg con un valor de 1.

Para asegurarse de que el instalador obtiene el fichero de preconfiguración correcto puede especificar, opcionalmente, una suma de control del fichero. Actualmente, esta debe ser una suma de control MD5 y, si se especifica debe coincidir con el valor que se obtenga del fichero de preconfiguración o el instalador se negará a utilizarlo.

Parámetros 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 dispositivo 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, preseed/file a file y preseed/file/checksum a preseed-md5 cuando se introducen como parámetros de arranque.

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 se pueden utilizar 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 de preconfiguración que se listan como ejemplos en este apéndice. Si se va a utilizar el valor para preconfigurar paquetes en el sistema destino, deberán estar precedidos por el propietario[25] 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 destino si no especifica el propietario, por lo que no se utilizará durante la configuración del paquete apropiado.

Normalmente, al preconfigurar una pregunta de esta forma la pregunta no se mostrará. Para especificar un valor predeterminado para la pregunta, y que ésta se muestre, use el operando ?= en lugar de =. Consulte Sección B.5.2, “Utilizar la preconfiguración para cambiar valores por omisión”.

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. Por ejemplo, se ha abreviado la variable preseed/url a url. Otro ejemplo es la abreviatura tasks que se traduce como tasksel:tasksel/first.

Un -- en las opciones de arranque tiene un significado especial. Los parámetros que aparezcan tras el último -- se pueden copiar a la configuración del cargador de arranque del sistema instalado (si el instalador ofrece compatibilidad con 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 fallará (con un panic). Los números eran menores en núcleos anteriores.

En la mayoría de las instalaciones se pueden eliminar con seguridad algunas de las opciones del fichero de configuración del cargador 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 entre 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.

Esto se habilita utilizando la opción de arranque Instalación automatizada, también llamada auto en algunas arquitecturas o métodos de arranque. En esta sección, auto no es por tanto un parámetro, significa la selección de esta opción de arranque y añadiendo los parámetros de arranque indicados al indicador de arraque. Consulte Sección 5.1.7, “La pantalla de arranque” para más información sobre cómo añadir un parámetro en el arranque.

Para mostrar esto aquí tiene algunos ejemplos que se pueden utilizar en el indicador del arranque:

auto url=autoserver

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

La última parte de esa URL (d-i/jessie/./preseed.cfg) se toma de auto-install/defaultroot. Por omisión incluye el directorio jessie para que versiones futuras puedan especificar su propio nombre en clave y permitir hacer migraciones de forma controlada. La sección /./ se utiliza para indicar la raíz, relativa a la cual se anclarán las rutas siguientes (que se utilizará en preseed/include y 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 construir scripts más portables de forma que una jerarquía completa de scripts se pueda mover a una nueva ubicación sin romperla. Por ejemplo, copiando los ficheros a una llave USB cuando antes estaban en un servidor web. En este ejemplo, si el fichero de preconfiguración preseed/run tiene el valor /scripts/orden_tardia.sh, el fichero se intentará obtener de http://autoserver.example.com/d-i/jessie/./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

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 la url, también puede especificar los valores que no afectan directamente al comportamiento de debian-installer pero que se pueden introducir a los scripts 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 utilizará en sus scripts. 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 usted.

La etiqueta de arranque auto aún no se ha definido en todas las arquitecturas. Para obtener el mismo efecto basta con añadir 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 que estableciéndola como true controla el tiempo de espera de las preguntas de localización y teclado para que estas se realicen más adelante y se puedan preconfigurar. 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 seleccione 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 se pueden conseguir gracias al uso creativo de la preconfiguración.

B.2.4. Abreviaturas útiles para la preconfiguración

Las siguientes abreviaturas pueden ser útiles cuando se utiliza preconfiguración (en modo auto). Tenga en cuenta que son solamente abreviaturas para las preguntas y siempre se deberá especificar un valor para éstas, por ejemplo, auto=true o interface=eth0.

priority debconf/priority
fb debian-installer/framebuffer
language debian-installer/language
country debian-installer/country
locale debian-installer/locale
theme debian-installer/theme
auto auto-install/enable
classes auto-install/classes
file preseed/file
url preseed/url
domain netcfg/get_domain
hostname    netcfg/get_hostname
interface netcfg/choose_interface
protocol mirror/protocol
suite mirror/suite
modules anna/choose_modules
recommends base-installer/install-recommends
tasks tasksel:tasksel/first
desktop tasksel:tasksel/desktop
dmraid disk-detect/dmraid/enable
keymap keyboard-configuration/xkb-keymap
preseed-md5 preseed/file/checksum

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 fichero. Generalmente, es un fichero para el arranque en red, pero si parece ser una URL, el medio de instalación que permite la 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 isc-dhcp-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 identifiquen 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 seleccionarán automáticamente la réplica adecuada, mientras que el resto de la instalación se realizará de forma interactiva. Debe tener cuidado al utilizar la preconfiguración mediante DHCP para automatizar la instalación completa de Debian.



[25] 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 mismo instalador. Las plantillas y las variables pueden tener más de un propietario, lo que ayuda a determinar si se pueden eliminar de la base de datos de debconf si se purga el paquete.