Preseed como metodo de instalación Ubuntu en el Ific
Voy a intentar poner lo básico y de modo resumido
Instalación Ubuntu
Hay varios modos de instalación de Ubuntu, básicamente:
* Versión Desktop, el más común. Es un live CD con un instalador graifico basado en python (Ubiquity). También tiene un programa instalador para Windows (wubi)
* Versión Servidor, y Alternate: pensado para instalaciones a mayor escala, con instalador texto basado en d-i (Debian installer). Es el método fiable para hacer netboots
Más info:
https://wiki.ubuntu.com/Installer/FAQ
Modos Instalación en IFIC
Preseed soporta varios modos, no todos de ellos son iguales lo que veo más facil para el IFIC
* Instalación desde CD o USB: hay que modificar las imágenes incluyendo la información de preseed. También se podría hacer un netboot cd/usb y que lea la info de preseed de un servidor
* Instalación automatizada en red: toda la información particula del IFIC de instalación/configuración reside en el servidor.
Utilizamos el basado en d-i, probando con la versión
Alternate.
A realizar:
1) Configuración de paquetes automatizada.
Se ha realizado correctamente en Prueba1 y Prueba2, probado un sistema base con afs. El método de Prueba2 es más versatil y puede configurar más cosas, incluso podemos crear scripts específicos
1.1) Productir una imagen CD:
HECHO
https://help.ubuntu.com/community/InstallCDCustomization
1.2) Incluir respositorio con paquetes customizados en la imagen CD:
HECHO
Notas con respecto al proceso:
https://help.ubuntu.com/community/InstallCDCustomization#Modify_pool_structure_to_include_more_packages
* Obviamente cambiar las referencias a la version ( en vez de "hardy" poner "lucid")
* En el punto "Create an "Extras" component", el directorio debe ser creado en el pool ( no en "dists/hardy/extras/binary-i386/pool/extras/")
cd /opt/cd-image
mkdir -p pool/extras
* En el punto "Building the repository with apt-ftparchive": deben seguirse todos los pasos aunque no se modifique main ( ya que realmente se incluye el paquete ubuntu keyring).
Si no se hace así El proceso fallará y aparecerá en syslog el mensaje "ubuntu-keyring bad md5 sum
* El resto del proceso es igual
1.3) Productir una imagen USB:
2) Explorar Utilizar un repositorio extras del ific donde poner todos los paquetes a instalar comunes
https://help.ubuntu.com/community/InstallCDCustomization#Modify%20pool%20structure%20to%20include%20more%20packages
3) Explorar el crear paquetes de configuración específicos:
http://wiki.debian.org/ConfigPackages
Prueba 1: Instalación en red, versión Alternate, 1 fichero preseed
Probado instalando ubuntu en los guest de prueba cg01, cg02
En el servidor isn04 añadido la estructura de directorios necesaria /osinstall/preseed
Ventajas
- Instalación probada correcta sistema base Ubuntu 10.04.2 con paquetes afs y celda ific
- toda la configuración reside en un fichero, modificacion del mismo fácil y centralizada
Limitación:
- no se puede hacer modular, aunque se pueden cargar otros ficheros los parámetros se sobreescriben
Fichero PXE
Al hacerse la instalación por red, el fichero preseed no está disponible hasta que no se ha configurado la misma. Por lo tanto hay que poner algunos parámetros ( locales, layoutcode) en la linea de comandos que se necesitan antes de configurar la red.
/osinstall/nbp/pxelinux.cfg/ubuntu_10.04.1_alternate_i386.cfg:
prompt 1
timeout 60
default localboot
LABEL localboot
LOCALBOOT 0
label install
kernel ubuntu_10.04.1_alternate_i386/ubuntu-installer/i386/linux
append auto=true priority=critical preseed/url=http://147.156.116.165/preseed/example-preseed-ific.txt locale=es_ES.UTF-8 console-setup/layoutcode=es debian-installer/keymap=es netcfg/get_hostname= initrd=ubuntu_10.04.1_alternate_i386/ubuntu-installer/i386/initrd.gz -- quiet
Fichero preseed
Configuración de los parámetros a mano. Se puede obtener una idea
/osinstall/preseed/example-preseed-ific.txt
# Locale sets language and country.
#d-i debian-installer/locale string en_US
d-i debian-installer/locale string es_ES.UTF-8
# Escoja un país, territorio o área:
# Choices: Argentina, Bolivia, Chile, Colombia, Costa Rica, Ecuador, El Salvador, España, Estados Unidos, Guatemala, Honduras, México, Nicaragua, Panamá, Paraguay, Perú, Puerto Rico, República Dominicana, Uruguay, Venezuela, otro
d-i localechooser/shortlist select ES
...
* Método para obtener respuestas a las preguntas de configuración:
Una vez instalado se pueden ejecutar los siguientes comandos para ver las respuestas a las preguntas del proceso de instalación. Utilizar este fichero de respuestas directamente no funciona, pero una vez instalado se puede utilizar como base para ver las respuestas a otros paquetes instalados. Es lo que he hecho con el fichero preseed-afs.
# Depending on what software you choose to install, or if things go wrong
# during the installation process, it's possible that other questions may
# be asked. You can preseed those too, of course. To get a list of every
# possible question that could be asked during an install, do an
# installation, and then run these commands:
# debconf-get-selections --installer > file
# debconf-get-selections >> file
Prueba 2: Instalación en red, versión Alternate, estructura ficheros preseed
Esta prueba intenta evitar la limitación de no poder hacer una configuración modular y poder instalar un tipo de paquetes u otros. Una primera aproximación es usar como base la estructura de ficheros preseed de un ejemplo de debian y modificala:
http://www.hands.com/d-i/
Ventajas
- Instalación probada correcta sistema base Ubuntu 10.04.2 con paquetes afs y celda ific
- más modular, puede hacerse selecciones dependiendo de ejemplos
Limitación / Desventajas
- ficheros preseed bastante más complicados
Fichero PXE
Igual que el anterior, una prequeña diferencia es que el parámetro preseed/url contiene un "." para indicar desde donde tiene que tener en cuenta las rutas relativas, ya que si no hace referencia al raiz del servidor http
/osinstall/nbp/pxelinux.cfg/ubuntu_10.04.1_alternate_i386.cfg:
label handsoff
kernel ubuntu_10.04.1_alternate_i386/ubuntu-installer/i386/linux
append auto=true priority=critical dbg/flags=all-x dbg/pauses=all preseed/url=http://147.156.116.165/preseed/source/lucid/./preseed.cfg locale=es_ES.UTF-8 console-setup/layoutcode=es debian-installer/keymap=es netcfg/get_hostname= initrd=ubuntu_10.04.1_alternate_i386/ubuntu-installer/i386/initrd.gz -- quiet DEBCONF_DEBUG=5
Ficheros preseed
Como los parámetros preseed no permiten añadir y solo sobreescriben, internamente son scripts y actuan tambien sobre la "base de datos" del instalador.
hay toda una estructura en /osinstall/preseed/source ( la base en la bajada desde
http://www.hands.com/d-i/ )
- Sobre esta hay un link de la version que estamos usando ( Ubuntu Lucid ) que toma como referencia la ubuntu squeeze: lucid -> squeeze/
Modificaciones:
- El fichero checksigs.sh ahora carga la configuracion particular del IFIC:
# Should be adding a checksum from a signed checksum file here
db_set preseed/include start.cfg example-preseed-ific.txt
- Las configuraciones base son las mismas que en el anterior ejemplo 1, es un link al mismo fichero:
lrwxrwxrwx 1 root root 30 Jul 13 16:03 /osinstall/preseed/source/lucid/example-preseed-ific.txt -> ../../example-preseed-ific.txt
- Hay una estructura de clases modular, a la que he incluido:
/osinstall/preseed/source/lucid/classes/ific
/osinstall/preseed/source/lucid/classes/ific/afs/
/osinstall/preseed/source/lucid/classes/ific/afs/late_script
#!/bin/sh
set -e
echo 'debug: Running afs client installation...'
apt-install krb5-user openafs-krb5 openafs-client
echo "debug: afs client instllation completed successfully"
/osinstall/preseed/source/lucid/classes/ific/afs/preseed:
# alferca incluimos paquetes necesarios
#d-i pkgsel/include string krb5-user openafs-krb5 openafs-client
# ¿Desea ejecutar ahora el cliente Openafs y en el arranque?
openafs-client openafs-client/run-client boolean true
# for internal use
krb5-config krb5-config/add_servers_realm string IFIC.UV.ES
# For internal use only
krb5-config krb5-config/read_conf boolean true
# ¿Desea crear dinámicamente los contenidos de «/afs»?
openafs-client openafs-client/dynroot boolean true
# ¿Desea cifrar el tráfico de autenticación con el servidor de archivos AFS?
openafs-client openafs-client/crypt boolean true
# La celda AFS de esta máquina pertenece a:
openafs-client openafs-client/thiscell string ific.uv.es
# Servidores de Kerberos para su reino:
krb5-config krb5-config/kerberos_servers string alpha.ific.uv.es
# Reino predeterminado de la versión 5 de Kerberos:
krb5-config krb5-config/default_realm string IFIC.UV.ES
# Tamaño de la cache de AFS en kB:
openafs-client openafs-client/cachesize string 50000
# ¿Desea utilizar «fakestat» para evitar que se bloquee al listar «/afs»?
openafs-client openafs-client/fakestat boolean true
# Escriba para la celda de «home» los nombres de los servidores de la base de datos:
openafs-client openafs-client/cell-info string
# ¿Desea buscar las celdas AFS en el DNS?
openafs-client openafs-client/afsdb boolean true
# ¿Desea añadir ubicaciones de los servidores predeterminados de Kerberos al archivo «/etc/krb5.conf»?
krb5-config krb5-config/add_servers boolean true
# Servidor administrativo para su reino de Kerberos:
krb5-config krb5-config/admin_server string alpha.ific.uv.es
--
AlvaroFernandez - 01 Aug 2011