Servidor de LiveCD & Instalaciones

El tema de moda es el de Cloud Computing y existen muchas soluciones de despliegue de máquinas en una red de manera automatizada, en este post hablaremos de una de ellas y que lleva con GNU/Linux muchos años. Para ahorrarnos royos largos y aburridos copiamos de Wikipedia

PXE hace referencia al entorno de ejecución de prearranque (Preboot eXecution Environment). Es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados.

La versatilidad de contar con un servidor de esta clase en la red son prácticamente ilimitadas, para mi red virtual, la monte sobre VirtualBox como un servidor, se encarga de dar IP (DHCP), Archivos (lftp, proftp) y sistemas operativos tanto en LiveCD como lanzando la instalación.

La instalación es sencilla. Sobre una Debian Lenny (5.0.3). Tras instalar el sistema base procedemos a instalar las herramientas necesarias

aptitude install netkit-inetd tftpd-hpa dhcp3-server lftp proftpd rsync

El tftpd-hpa es bastante problemático en modo independiente y es mejor lanzarlo desde inetd, para ello, deshabilitamos los niveles de ejecución de init.d

update-rc.d -f tftpd-hpa remove

y nos aseguramos que disponemos de la línea correspondiente en inetd.conf

tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

Como vemos, la raíz del servidor pxe está en /var/lib/tftpboot y es ahí donde iremos añadiendo las distintas distribuciones que queremos lanzar en nuestra red.

La configuración por defecto de DHCP que viene con Debian es No Autoritaria que significa, que para que asigne una IP a una máquina tiene que conocerla previamente, por la mac normalmente, no nos vale y tenemos que hacer que asigne IP a todas las máquinas que la pidan. También tenemos que definir los parámetros para que funcione el PXE, debe quedar así:

option domain-name-servers 145.253.2.75, 213.191.92.86;
default-lease-time 86400;
max-lease-time 604800;
authoritative;

subnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.10 192.168.2.254;
        filename "pxelinux.0";
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.2.255;
        option routers 192.168.2.1;
}

Listo, con estas opciones ya tenemos la infraestructura necesaria para desplegar máquinas en la red. No he profundizado mucho porque está basado en un artículo mejor aquí. Pero si queria comentar dos distribuciones que monté en PXE en modo Live que son Clonezilla y Trinity Rescue Kit. La primera se usa para clonar discos duros y recuperar esas imágenes de copia de seguridad. La segunda contiene antivirus para scannear máquinas windows (Linux continua sin virus a pesar de los FUD). También quería mostrar como automatizar una instalación de CentOS apoyandonos en esta infraestructura y con su sistema KickStart. Vamos a ello.

Clonezilla necesita de tftp para lanzar su imagen de memoria, que pasará a memoria del sistema huésped, que a sido arrancado a través de PXE. Disponemos de todos los componentes, así que vamos:

Primero descargamos el zip desde aquí, y lo descomprimimos en la raiz del servidor tftp, que no olvidemos es /var/lib/tftpboot aunque recomiendo, sobretodo si vamos a tener muchas distros, crear un directorio clonezilla

unzip -j clonezilla-live-*.zip live/vmlinuz live/initrd.img live/filesystem.squashfs -d /var/lib/tftpboot/clonezilla/

Ahora, añadimos las opciones para lanzarlo en /var/lib/tftpboot/pxelinux.cfg/default

label clonezilla_live
  menu label rlonezilla Live
  kernel clonezilla/vmlinuz 
  append initrd=clonezilla/initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://192.168.2.2/clonezilla/filesystem.squashfs

Y listo, podemos arrancar cualquier máquina de la red y lanzar este magnífico proyecto para clonar, copiar y restaurar imágenes de disco duro. Tiene soporte para todos los modos de copia y transferencia de datos.

Para el caso de Trinity, ya escribí como proceder aquí.

Y para CentOS necesitamos del servidor NFS para el fichero de kickstart y del ftp para recuperar los paquetes que elijamos instalar. No entraré en detalles de cómo configurar el FTP, ya que la instalación de ProFTP ya es funcional y sólo necesitamos un directorio donde poner el contenido del DVD. Para el archivo de kickstart, necesitamos una compartición de NFS y el contenido puede ser como sigue:

install
text
url --url ftp://nordri:passwd@192.168.2.2//home/centos
lang es_ES.UTF-8
keyboard es
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$IRrk/Y9t$Yg%mL6rpN86QRQm.ElDHB/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
firewall --disabled

timezone --utc Europe/Madrid
bootloader --location=mbr --driveorder=hda

user --name=nordri --groups=users --homedir=/home/nordri --password=secreto

# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --linux
part / --bytes-per-inode=4096 --fstype="ext3" --size=5000
part swap --bytes-per-inode=4096 --fstype="swap" --size=200
part /home --bytes-per-inode=4096 --fstype="ext3" --grow --size=1

%packages
@editors
@text-internet
@dialup
@core
@base
@clustering
@spanish-support
device-mapper-multipath

Más información sobre kickstart aquí.

Para su entrada en default pondriamos:

label centos5.3_i386_linux
         kernel centos/5.3/i386/vmlinuz
         append initrd=centos/5.3/i386/initrd.img ks=nfs:192.168.2.2:/var/lib/tftpboot/centos/net-install/ks.cfg

Listo, toda máquina que iniciemos en la red eligiendo CentOS será formateada e instalada con esta distribución.

Nota sabionda: Fedora es igual y puedes conseguirte un buen automatizador para máquinas de escritorio.

Conclusiones

Montar esta infraestructura en un nivel básico como el que se muestra aquí no lleva más de unas pocas horas (contando con las descargas) se puede mejorar en seguridad pero me extendería demasiado, le doy uso en el despacho principalmente a CentOS donde el archivo kickstart está optimizado para incorporar nuevas máquinas al Cluster y el TRK para limpiar un poco los virus de los usuarios windows. En casa, es una máquina de mi red virtual y la uso para montar máquinas nuevas (Debian sobre todo) y probar cosas nuevas.

  1. nordri's Blog » nordri VS Asus EeePC 1201HA - pingback on 13/08/2010 at 18:59

Leave a Comment


6 × = eighteen


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks and Pingbacks: