Ahora no solo vamos a encender el ordenador, también le vamos a pasar el sistema operativo y su configuración. Un paso más a mi anterior receta.
Prerrequisitos
Haber leido o tener a mano las recetas:
Introducción
El ordenador en cuestión se encenderá siguiendo los pasos dados en la receta Encendido remoto de un ordenador con Debian, mediante Wake On LAN . Entonces pedirá un servidor PXE. Para ello utilizaremos el servidor de dhcp 3 que soporta este tipo de servicio. Se necesita un servidor tftp, ya que es el único servidor soportado por PXE para la transmisión de ficheros. TFTP es un servidor ftp ligero. No tiene ningún tipo de autentificación así que cuidado con lo que ponéis en su directorio. Usaremos el servidor atftp. Necesitaremos un archivo llamado pxelinux.0 . Este archivo es el encargado de cargar el arranque, algo así como el GRUB en versión red. Existe una versión del GRUB que permite el arranque en red, aúnque parece ser que todavía no funciona correctamente.
pxelinux.0 es el que he usado yo. Seguramente existan versiones más nuevas, pero este me ha funcionado sin problemas. Necesitaremos también un núcleo para compilar y una imagen del sistema.
Configuración de dhcp
Necesitaremos el paquete debian dhcp3-server que será nuestro servidor PXE. Estas son las líneas que hay que añadir al dhcpd.conf
group {
next-server 192.168.0.1;
filename "/tftpboot/pxelinux.0";
host maquina1 { hardware ethernet 00:06:29:30:6D:B4; fixed-address 192.168.0.12; }
}
Aquí estamos indicando de donde se obtiene el pxelinux.0 y que grupo de máquinas van a obtener el arranque. La línea de next-server es por si el servidor tftp está en una máquina diferente a la del servidor dhcp. Si no es así, se puede eliminar. Le asignamos una ip fija. No es necesario, pero nos puede venir bien a la hora de hacer los primeros seguimientos de la máquina.
Configuración del servidor tftp
Necesitaremos el paquete debian atftp .
Si lo usamos, deberemos tener en el archivo /etc/default/atftpd la siguiente configuración:
USE_INETD=false OPTIONS="--daemon --port 69 --retry-timeout 5 --no-multicast --maxthread 100 \ --verbose=6 --logfile /var/log/atftpd.log /tftpboot"
Esta es mi configuración. /tftpboot es el directorio donde debe iremos poniendo los ficheros que vamos a enviar.
Configurando el arranque
Desde ahora tomamos como directorio de trabajo /tftpboot. Copiamos aquí el archivo pxelinus.0. Creamos un directorio llamado pxelinux.cfg . Este contendrá los archivos de configuración para cada máquina. Yo usaré Default , genérico para todas las máquinas. Se puede llegar a personalizar para una máquina determinada o un grupo de maquinas. Este archivo contiene la configuración del arranque y una serie de parámetros que podemos indicarle al kernel.
label linux
kernel bzImage
append nfsaddrs=192.168.0.1 root=192.168.0.1:/tftpboot/192.168.0.12
Configurando nuestro Linux
Vamos a configurar el sistema que vamos a cargar en los clientes. Primero compilaremos el kernel. Simplemente sugeriros que incluyáis todo lo que valláis a usar en el núcleo, para no cargarlo como módulos. Aquí surge una duda de como seguir. Si vamos a montar el directorio raíz en RAM o NFS deberemos incluir diferentes módulos.
requiere de los módulos File systems Kernel automonter support File systems -> Network Filesystems: NFS File System Suport y Root File System on NFS .
no requiere de módulos especiales.
Creando nuestro sistema de ficheros
Vamos a crear ahora nuestra imagen initrd. Esta es una imagen comprimida de nuestro sistema de ficheros que solo es necesaria si usamos RAM para montar nuestro sistema de ficheros. Si usamos NFS todos estos procesos quedarán reducidos a ejecutar la orden debootstrap sobre el directorio del NFS. Dicho directorio debe estar en el del servidor tftp (/tftpboot en nuestro caso)
Enlaces de interes
Comentarios recientes
hace 16 horas 54 mins
hace 20 horas 29 mins
hace 2 días 18 horas
hace 2 días 19 horas
hace 3 días 12 horas
hace 3 días 17 horas
hace 3 días 23 horas
hace 4 días 5 mins
hace 4 días 2 horas
hace 5 días 16 horas