C.1. Ejemplo de fichero de preconfiguración

A continuación se muestra un ejemplo de un fichero de preconfiguración funcional que puede utilizar para realizar una instalación automatizada. Su uso se explica en Sección 4.5, “Instalación automática”. Tal vez quiera descomentar alguna de las líneas antes de usar el fichero.

Nota

Para poder presentar este ejemplo correctamente en el manual hemos tenido que dividir algunas líneas. Esto se indica con el uso del carácter de continuación de línea “\” y un nivel de indentación adicional en la línea siguiente. En un fichero de preconfiguración real estas líneas deben colocarse en una sola línea. Si no lo hace así, la preconfiguración fallará con resultados impredecibles.

Puede encontrar un fichero de ejemplo “limpio” en http://www.debian.org/releases/sarge/example-preseed.txt.

#### Arranque

# Para utilizar un fichero de preconfiguración, primero necesitará arrancar
# el instalador, e indicar el fichero de preconfiguración que quiere utilizar.
# Esto se hace pasando un parámetro de arranque al núcleo, bien en forma
# manual o al editar el fichero syslinux.cfg (o similar), y añadiendo el
# parámetro al final de la(s) línea(s) «append», que son los parámetros para el núcleo.
#
# Normalmente, este fichero se llama «preseed» en inglés, pero usted puede
# escoger el nombre que desee. Simplemente ha de ser congruente el nombre que
# escoja con el que indique al instalador. En los siguientes ejemplos se
# ha escogido por simplicidad «fichero_preconfiguracion».
#
# Si está arrancando desde red, use algo como:
#   preseed/url=http://maquina/ruta/hacia/fichero_preconfiguracion
# Si está rehaciendo un CD, podría usar este otro:
#   preseed/file=/cdrom/fichero_preconfiguracion
# Si está instalando desde un medio USB, use el siguiente parámetro, y coloque
# el fichero de preconfiguración en el directorio raíz del dispositivo USB, algo como:
#   preseed/file=/hd-media/fichero_preconfiguracion
# Asegúrese de copiar este fichero a la ubicación que ha especificado con el
# nombre que ha indicado.
#
# Algunas partes de proceso de instalación no se pueden automatizar usando
# algunos métodos de preconfiguración debido a que las preguntas son formuladas
# antes que se cargue el fichero de preconfiguración. Por ejemplo, primero
# deberá responder a las preguntas para configurar la red si el fichero se
# descarga a través de la red.
#
# Una razón para utilizar la preconfiguración de initrd es que permite la
# preconfiguración incluso en esta etapa temprana del proceso de instalación.
#
# Aunque no se pueda utilizar un fichero para preconfigurar algunos
# pasos aún puede automatizar la instalación, puesto que
# puede pasar valores de preconfiguración al núcleo en la línea
# de órdenes. Simplemente pase ruta/a/var=valor para cualquiera
# de las variables listadas a continuación.
#
# Cuando haga esto quizás quiera añadir el parámetro debconf/priority=critical,
# para omitir la mayoría de preguntas no importantes, incluso aunque la
# preconfiguración excluya alguna. 
# También podría definir el tiempo de espera a 1 en syslinux.cfg para evitar la
# necesidad de presionar «Enter» para arrancar el instalador.
#
# Tenga en cuenta que el núcleo acepta un máximo de 8 opciones de línea de órdenes
# y 8 opciones de entorno (incluyendo cualquier opción añadida en forma
# predeterminada por el instalador). Si exceda este número los núcleos
# 2.4 eliminarán cualquier opción de exceso y los 2.6 abortarán con un mensaje
# de «panic». Con los núcleos 2.6.9 o superiores puede usar hasta 32 opciones
# de línea de órdenes y 32 opciones de entorno.
#
# Puede eliminar en la mayoría de las instalaciones algunas opciones
# predeterminadas, como «vga=normal», lo cual le permitiría añadir más opciones
# para preconfiguración.
#
# No es posible usar la preconfiguración para la selección de idioma, 
# país y teclado. En su lugar debe usar parámetros del núcleo.
# Por ejemplo:
#    languagechooser/language-name=Spanish
#    countrychooser/shortlist=ES
#    console-keymaps-at/keymap=es
#

#### Configuración de red.

# Obviamente, ¡esto no funcionará si está cargando su fichero de
# preconfiguración desde la red! Pero es fantástico si está arrancando desde CD
# o desde una memoria USB. También puede pasar parámetros de configuración de
# red en los parámetros del núcleo si está cargando el fichero de
# preconfiguración desde la red.

# «netcfg» elegirá, si existe, una interfaz que esté conectada. Esta opción
# hace que no se muestre la lista de interfaces si existe más de una interfaz conectada.
d-i  netcfg/choose_interface select auto

# Puede serle útil especificar este valor
# si tiene un servidor de DHCP lento y el instalador expira porque éste no
# responde a tiempo.
#d-i netcfg/dhcp_timeout string 60

# Si prefiere configurar la red manualmente, puede hacer lo siguiente:
#d-i netcfg/disable_dhcp	boolean true
#d-i netcfg/get_nameservers	string 192.168.1.1
#d-i netcfg/get_ipaddress	string 192.168.1.42
#d-i netcfg/get_netmask		string 255.255.255.0
#d-i netcfg/get_gateway		string 192.168.1.1
#d-i netcfg/confirm_static	boolean true

# Tenga en cuenta que cualquier nombre de máquina o dominio asignado por DHCP 
# tomará precedencia sobre los valores definidos aquí. Sin embargo,
# si define estos valores las preguntas no se mostrarán aún cuando los
# valores provengan del servidor de DHCP.
d-i netcfg/get_hostname		string unassigned-hostname
d-i netcfg/get_domain		string unassigned-domain

# Deshabilita el molesto mensaje sobre la clave WEP
d-i netcfg/wireless_wep		string
# El nombre de máquina DHCP que algunos ISPs usan como una clave de algún tipo.
#d-i netcfg/dhcp_hostname	string radish

#### Configuración de réplica de Debian.

d-i mirror/country		string enter information manually
d-i mirror/http/hostname	string ftp.es.debian.org
d-i mirror/http/directory	string /debian
d-i mirror/suite		string testing
d-i mirror/http/proxy		string

### Particionado.

# Si el sistema tiene espacio libre puede elegir particionar solamente este
# espacio.
#d-i partman-auto/init_automatically_partition \
#    select Use the largest continuous free space
#
# También puede especificar un disco a particionar. El nombre del dispositivo
# se puede introducir tanto en formato tradicional como en formato devfs.
# Por ejemplo, puede utilizar este valor para usar el primer disco por devfs:
d-i  partman-auto/disk		string /dev/discs/disc0/disc

# Puede elegir cualquiera de las recetas de particionado predefinidas:
d-i  partman-auto/choose_recipe	select \
     All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe		select Desktop machine
#d-i partman-auto/choose_recipe		select Multi-user workstation

# O indicar su propia receta...
# El formato de las recetas está documentado en el fichero
# devel/partman-auto-recipe.txt.
# Si tiene una forma de colocar el fichero de receta dentro del entorno del
# d-i, simplemente puede direccionarlo a éste.
#d-i partman-auto/expert_recipe_file	string /hd-media/recipe

# Si no, puede colocar la receta en una línea. Este ejemplo crea una partición
# /boot pequeña, una partición de intercambio apropiada y usa el resto del
# espacio para la partición raíz:
#d-i partman-auto/expert_recipe		string boot-root :: \
#    20 50 100 ext3 $primary{ } $bootable{ } method{ format } format{ } \
#    use_filesystem{ } filesystem{ ext3 } mountpoint{ /boot } . \
#    500 10000 1000000000 ext3 method{ format } format{ } \
#    use_filesystem{ } filesystem{ ext3 } mountpoint{ / } .  \
#    64 512 300% linux-swap method{ swap } format{ } .
# Para que sirva de referencia, aquí puede ver la misma receta
# en un formato más legible:
#   boot-root ::
# 	40 50 100 ext3
#		$primary{ } $bootable{ }
#		method{ format } format{ }
#		use_filesystem{ } filesystem{ ext3 }
#		mountpoint{ /boot }
#	.
# 	500 10000 1000000000 ext3
#		method{ format } format{ }
#		use_filesystem{ } filesystem{ ext3 }
#		mountpoint{ / }
#	.
# 	64 512 300% linux-swap
#		method{ swap } format{ }
#	.

# La siguiente receta hace que «partman» particione automáticamente el espacio
# sin confirmación.
d-i partman/confirm_write_new_label	boolean true
d-i partman/choose_partition		select \
    Finish partitioning and write changes to disk
d-i partman/confirm			boolean	true

#### Instalación del gestor de arranque.

# GRUB es el gestor de arranque predeterminado (para arquitectura x86).
# Descomente esta opción si quiere instalar lilo en su lugar:
#d-i grub-installer/skip		boolean true

# Esta es una configuración adecuada y segura, hace que grub se instale
# automáticamente en el MBR si no se detecta otro sistema operativo en la
# máquina.
d-i grub-installer/only_debian		boolean true

# Lo siguiente hace que el «grub-installer» instale en el MBR en caso de que se
# encuentre instalado otro sistema operativo. Esto es menos seguro, puesto que
# podría hacer que el otro sistema operativo no se pudiera arrancar.
d-i grub-installer/with_other_os	boolean true

# Alternativamente, descomente y edite estas líneas
# si desea instalar en una ubicación distinta al MBR:
#d-i grub-installer/bootdev		string (hd0,0)
#d-i grub-installer/only-debian		boolean false
#d-i grub-installer/with_other_os	boolean false

##### Final de la primera fase de instalación.

# Omitir el mensaje final sobre la finalización de la instalación.
d-i prebaseconfig/reboot_in_progress	note

#### Órdenes del intérprete de comandos.

# La preconfiguración de d-i es inherentemente insegura. Ninguna parte del
# instalador verifica intentos de desbordamiento de búfer u otras
# formas de malversación de los valores de un fichero de preconfiguración
# como éste. ¡Use solamente ficheros de preconfiguración de fuentes
# confiables! Para poder gestionar esto, y porque generalmente es útil,
# a continuación ofrecemos una forma de ejecutar automáticamente cualquier 
# orden de shell que desee dentro del instalador.

# Esta primera orden se ejecuta tan pronto como sea posible, después de que
# se lea el fichero de preconfiguración:
#d-i preseed/early_command string anna-install some-udeb

# Ésta orden se ejecuta justamente antes de que finalice la instalación,
# pero cuando todavía existe un directorio /target usable:
#d-i preseed/late_command string echo foo > /target/etc/bar

# Ésta orden se ejecuta tan pronto como se inicia el programa «base-config»:
#base-config base-config/early_command	string echo Hola mamá

# Ésta orden se ejecuta después de que termine «base-config», y
# antes de presentar el indicador de entrada al sistema («login:»). 
# Éste es un buen método que puede utilizar para 
# instalar el conjunto de paquetes que desee, o para modificar la
# configuración del sistema:
#base-config base-config/late_command	string \
#    apt-get install zsh; chsh -s /bin/zsh

###### Preconfiguración de la segunda fase de la instalación

##### Preconfiguración de «base-config».

# Omitir el mensaje de bienvenida.
base-config base-config/intro	note

# Omitir el mensaje final.
base-config base-config/login	note

# Si ha instalado un gestor de ventanas, pero no desea iniciarlo
# inmediatamente después de que finalice «base-config».
#base-config base-config/start-display-manager	boolean false

# Algunas versiones del instalador pueden informarnos lo que ha instalado.
# La operación por omisión es no hacerlo, pero el envío de informes ayuda al
# proyecto a determinar qué software es más popular e incluirlo en
# los CDs.
#popularity-contest popularity-contest/participate boolean false

###### Configuración de zona horaria.

# Controla si el reloj del hardware está o no configurado a UTC 
# (Tiempo Universal Coordinado)
base-config tzconfig/gmt		boolean true

# Puede definir la zona horaria usando esta variable
# si indica al instalador que se encuentra en los Estados Unidos.
# (Las opciones son: Eastern, Central, Mountain, Pacific, Alaska, Hawaii,
# Aleutian, Arizona East-Indiana, Indiana-Starke, Michigan, Samoa, other)
base-config  tzconfig/choose_country_zone/US	select Eastern
# Si indica que se encuentra en Canada.
# (Las opciones son: Newfoundland, Atlantic, Eastern, Central,
# East-Saskatchewan, Saskatchewan, Mountain, Pacific, Yukon, other)
base-config  tzconfig/choose_country_zone/CA	select Eastern
# Si indica que se encuentra en Brasil. (Las opciones son: East, West, Acre,
# DeNoronha, other)
base-config  tzconfig/choose_country_zone/BR	select East
# Muchos países solamente tienen una zona horaria. Si indica al instalador
# que se encuentra en una de éstas puede elegir su zona horaria estándar
# a través de esta pregunta.
base-config  tzconfig/choose_country_zone_single boolean true
# Esta pregunta se formula como un mecanismo en el caso que se configure un país
# distinto a los mencionados previaemten y que tenga más de una zona horaria.
# Puede preconfigurar una de las zonas horarias o «other».
#base-config  tzconfig/choose_country_zone_multiple select

###### Configuración de cuentas de usuario.

# Debe colocar la contraseña del superusuario en
# texto legible dentro de este fichero. Ésta no es una buena idea, ¡usela con
# precaución!
#passwd passwd/root-password		password r00tme
#passwd	passwd/root-password-again	password r00tme

# Si desea omitir la creación de una cuenta de usuario común.
#passwd	passwd/make-user		boolean false

# Alternativamente, puede preconfigurar el nombre del usuario. Note que
# el usuario asignado será derivado de éste; actualmente no se puede
# modificar. El usuario asignado será (en minúsculas) el primer nombre
# del nombre completo.
#passwd	passwd/user-fullname		string Usuario de Debian
#passwd	passwd/username			string debian
# Y su clave, ¡pero úselo con precaución!
#passwd	passwd/user-password		password insegura
#passwd	passwd/user-password-again	password insegura

###### Configuración de Apt.

# Esta pregunta controla qué fuente usará la segunda fase de la
# instalación para obtener paquetes. Las opciones son: cdrom, http, ftp,
# filesystem y editar la lista manualmente.
base-config  apt-setup/uri_type		select http

# Se le preguntará el país y una réplica si elige ftp o http.
base-config  apt-setup/country		select enter information manually
base-config  apt-setup/hostname		string ftp.es.debian.org
base-config  apt-setup/directory	string /debian
# Terminar una vez haya elegido una réplica.
base-config  apt-setup/another	boolean false

# Puede elegir instalar software de las fuentes «non-free» y «contrib».
#base-config  apt-setup/non-free	boolean true
#base-config  apt-setup/contrib		boolean true

# Habilitar actualizaciones de seguridad.
base-config  apt-setup/security-updates	boolean true

###### Selección de paquetes.

# Puede elegir instalar cualquier combinación de paquetes disponible.
# Las tareas disponibles en ell momento de escribir este fichero
# son: Desktop environment, Web server, Print server, DNS server, 
# File server, Mail server, SQL database, Laptop, Standard system, 
# manual package selection. 
# (N. de t. Entorno de escritorio, servidor de web, servidor de impresoras, 
# servidor de DNS, servidor de ficheros, servidor de correo, base de datos SQL, 
# ordenador portátil, sistema estándar, selección manual de paquetes).
# La última de estas opciónes hará que se ejecute aptitude.
# También puede elegir no instalar tareas y forzar la instalación de
# un conjunto de paquetes de alguna otra manera.
tasksel     tasksel/first	multiselect Desktop environment
#tasksel     tasksel/first	multiselect Web server, Standard system

###### Configuración del agente de correo.

# Exim solamente formula dos preguntas durante una instalación común.
# Ésta es una forma de evitar incluso éstas. Además, es posible crear una
# preconfiguración más complicada.
exim4-config exim4/dc_eximconfig_configtype \
    select no configuration at this time
exim4-config exim4/no_config boolean true
exim4-config exim4/no_config boolean true

# Es una buena idea configurar esta opción a la cuenta de usuario que ha elegido crear.
# Dejar el valor en blanco significa que el correo de postmaster
# se entregará en «/var/mail/mail».
exim4-config exim4/dc_postmaster		string

###### Configuración del entorno de ventanas X.

# Es posible preconfigurar el entorno de las X en Debian, pero probablemente
# necesitará saber algunos detalles sobre el hardware de vídeo de la
# máquina puesto que el programa de configuración no efectúa una
# configuración totalmente automática de todo.

# X puede detectar el controlador adecuado para algunas tarjetas, pero
# si está preconfigurando puede modificar el que éste elija. Incluso en este caso,
# vesa funcionará para la mayoría del hardware.
#xserver-xfree86 xserver-xfree86/config/device/driver	select vesa

# Un problema con la autodetección del ratón es que, si ésta falla, X
# reintentará el proceso una y otra vez. De modo que si se efectúa la preconfiguración,
# existe la posibilidad de que se produzca un bucle infinito si no se autodetecta el ratón.
#xserver-xfree86 xserver-xfree86/autodetect_mouse	boolean true

# Se recomienda la autodetección del monitor.
xserver-xfree86	xserver-xfree86/autodetect_monitor	boolean true
# Descomente este valor si tiene una pantalla LCD.
#xserver-xfree86 xserver-xfree86/config/monitor/lcd	boolean true
# X tiene tres métodos de configuración para el monitor. Ésta es la forma
# de preconfigurar el método «medio», que siempre está disponible. El
# método «simple» podría no estar disponible y el «avanzado» hace
# muchas preguntas.
xserver-xfree86	xserver-xfree86/config/monitor/selection-method	\
    select medium
xserver-xfree86	xserver-xfree86/config/monitor/mode-list \
    select 1024x768 @ 60 Hz

###### Todo lo restante.

# Dependiendo del software que elija instalar, o si las cosas no salen
# bien durante el proceso de instalación, es posible que se formulen
# otra preguntas. Por supuesto también puede preconfigurar éstas.
# Para obtener una lista de cada pregunta posible que podría llegar a ser
# formulada durante una instalación puede hacer una instalación y
# ejecutar estas órdenes:
#   debconf-get-selections --installer > fichero
#   debconf-get-selections >> fichero

# Si lo desea puede incluir otros ficheros de preconfiguración en éste.
# Cualquier configuración en estos ficheros modificará los valores
# preexistentes de este fichero. Se puede listar más de un fichero,
# separado por espacios y se cargarán todos. Los ficheros
# incluidos también pueden tener directivas propias de preconfiguración o
# inclusión. Tenga en cuenta que si los nombres de fichero son relativos, éstos se
# toman del mismo directorio donde se ubica el fichero que los incluye.
#d-i preseed/include	string x.cfg

# Esta opción es todavía más flexible: se ejecuta una orden de shell y si ésta
# presenta como resultado los nombres de los ficheros de preconfiguración entonces
# se incluyen. Por ejemplo, para poder alternar entre configuraciones basadas en
# un dispositivo de almacenamiento USB particular (en este caso, un
# lector de tarjetas integrado) podría hacer esto:
#d-i preseed/include_command	string \
#    if $(grep -q "GUID: 0aec3050aec305000001a003"  /proc/scsi/usb-storage-*/*); \
#    then echo kraken.cfg; else echo otherusb.cfg; fi

# Puede utilizar debconf-set-selections
# para verificar el formato de su fichero de preconfiguración antes de
# efectuar una instalación:
#   debconf-set-selections -c preseed.cfg