Instalación remota de CentOS por VNC

Una de las cosas que me gusta de las distribuciones basadas en Red Hat es que todas ellas utilizan el instalador Anaconda junto a los ficheros Kickstart para realizar instalaciones desatendidas. Hasta ahora es uno de los sistemas mas flexibles y potentes que conozco para automatizar instalaciones Linux.

Debian Installer quizás pueda ser mas potente en determinados escenarios, aunque en general elaborar un buen fichero preseed para una instalación desatendida de Debian pueda ser algo mas laborioso… Anaconda, destaca además por ser muy sencillo.

Pero hoy el protagonista es Anaconda y su módulo de instalación remota por VNC.. ya hablaremos en otro momento del resto de instaladores ;-)

¿Cuando nos puede interesar instalar remotamente Linux por VNC?

- El servidor a instalar no tiene pantalla, teclado, ratón, unidad de CD/DVD, puerto USB.. una instalación por VNC será mas cómoda, rápida y económica que utilizar un dispositivo KVM sobre IP, puerto serie, etc..

- Instalación de otra distribución. Muchos ISP entregan los servidores dedicados con una determinada distribución Linux sin posibilidad de elegir otra y/o personalizar algunos parámetros que solo se pueden hacer durante la instalación, por ejemplo, el esquema de particiones.

- Actualizaciones. Todas las distribuciones basadas en Red Hat se recomienda actualizarlas desde Anaconda utilizando el método upgradeany. Por ejemplo, podemos arrancar por VNC para actualizar remotamente desde CentOS 4 a CentOS 5 de forma cómoda sin necesidad de CDs, arranque por PXE, etc..

- Seguimiento y depuración de una instalación desatendida con Kickstart, así podremos ver “en vivo” que está ocurriendo en todo momento por VNC.

- El sistema VNC es multiplataforma: existen implementaciones para prácticamente todos los Sistemas Operativos, incluso clientes en Java que podríamos incrustar en algún herramienta de gestión web tipo Spacewalk.

Lógicamente en todos estos casos podríamos utilizar Kickstart para realizar una instalación totalmente desatendida sin necesidad de interactuar en ningún momento por teclado/ratón/pantalla y todos los problemas anteriores quedarían resueltos, pero el objetivo es tener una conexión VNC con el servidor que estamos instalando.

La conexión remota por VNC con el instalador Anaconda puede realizarse de dos formas:

- Servidor: la máquina a instalar arranca un servidor Xvnc y nosotros nos conectamos a el utilizando un cliente VNC, es la configuración mas utilizada (parámetros vnc y vncpassword).

- Cliente: en nuestro escritorio levantamos un cliente VNC en modo “listen” y Anaconda se conectará a nosotros (parámetros vnc y vncconnect). En algunos casos puede ser una configuración mas segura, pero resulta mas problemática si estamos bajo un firewall, NAT, etc..

Como ejemplo vamos a modificar el GRUB de una Debian para instalar remotamente CentOS 5 por VNC, los pasos a seguir son:

- Descargar los ficheros initrd.img y vmlinuz de la imagen PXE de CentOS (pxeboot) en el directorio /boot/centos, o en cualquier otro directorio, evitando sobreescribir los actuales:

mkdir -p /boot/centos ; cd /boot/centos
wget http://mirror.centos.org/centos-5/5/os/i386/images/pxeboot/initrd.img
wget http://mirror.centos.org/centos-5/5/os/i386/images/pxeboot/vmlinuz

- Editar la configuración de GRUB, fichero /boot/grub/menu.lst, y añadir la siguiente entrada. Lógicamente será necesario personalizar la configuración de red o bien utilizar DHCP (parámetro ip=dhcp):

title Instalación CentOS 5 por VNC
root (hd0,0)
kernel /centos/vmlinuz vnc vncpassword=password ip=192.168.0.2 netmask=255.255.255.0 gateway=192.168.0.1 dns=192.168.0.1 method=http://mirror.centos.org/centos/5/os/i386
lang=en_US keymap=us ksdevice=eth0
initrd /centos/initrd.img

- Comprobamos que la entrada default de GRUB es la correcta, y reiniciamos el servidor.

- En el siguiente arranque GRUB cargará el kernel + initrd con los parámetros indicados, iniciando así la instalación con Anaconda.

- Anaconda descarga la imagen stage2.img desde el mirror indicado. Este archivo está comprimido con SquashFS y contiene todo lo necesario para arrancar el instalador gráfico, ocupa unos 90MB así que dependiendo de la conexión este paso puede durar unos minutos..

- Anaconda arranca el servidor Xvnc e inicia una instancia del gestor de ventanas mini-wm, en la consola del servidor aparecerá el mensaje:

Starting VNC..
The VNC server is now running.
Please connect to 192.168.0.2:1 to begin the install...
Press  for a shell
Starting graphical installation..
XKB extension not present on :1

- Listo!! Utilizando un cliente VNC nos conectamos al display 1, puerto 5901/tcp, para empezar a instalar el servidor normalmente, como si estaríamos delante de el :-)

Actualización (2011-02-22): Giner de OVH deja en un comentario un script que automatiza esta tarea, muy útil para instalaciones de CentOS/Fedora en servidores de OVH, muchas gracias!!

This entry was posted in Linux and tagged , , , . Bookmark the permalink.