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/lenny/example-preseed.txt. Este fichero está basado en fragmentos de configuración incluídos en este apéndice.
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.
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
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[20] de la variable como sigue:
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.
propietario
:ruta/a/variable
=valor
Normalmente, al preconfigurar una pregunta de esta forma, la pregunta no se mostrará. Para especificar un valor predeterminado para la pregunta, y que esta se muestre, use el operador “?=” 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 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.
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.
No siempre es posible especificar valores con espacios para los parámetros de arranque aunque se delimiten con comillas dobles.
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/lenny/./preseed.cfg
.
La última parte de esa url (d-i/lenny/./preseed.cfg
)
se toma de auto-install/defaultroot
. Por omisión
incluye el directorio lenny
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/lenny/./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
<debian-boot@lists.debian.org>
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.
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.
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 |
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.
[20] 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.