sábado, 2 de noviembre de 2013

Automatizando shutdown de Host ESXi 5.1

En casa monté un servidor ESXi con un par de máquinas virtuales rodando como centro multimedia y servidor web. El caso es que las utilizo ocasionalmente por lo que no necesito que esten todo el día encendidas. Así que he estado peleandome para hacer más comodo el encendido y apagado tanto de las máquinas como del HOST, Estos son los puntos.

   - Arrancar HOST desde otro PC 
   - Arrancar/apagar máquinas virtuales automáticamente al arrancar/apagar el Host.
   - Apagar el HOST automáticamente.

Arrancar HOST desde otro PC.

Accediendo a la BIOS del HOST activamos la opción WakeOnLan.
Tomamos nota de la dirección MAC en el ESXi.
En otro pc instalamos algún programa de WakeOnLan, yo he utilizado este.
Configuramos los datos del HOST y su dirección MAC en la aplicación.
Con esto ya podemos arrancar el Host desde el otro PC.

Arrancar/apagar máquinas virtuales automáticamente al arrancar/apagar el Host.

En el Cliente vSphere, 
   Seleccionamos el Host.
   Seleccionamos "Configuration".
   Seleccionamos "Virtual Machine Startup/Shutdown".
   Seleccionamos "Properties".
   Marcamos "Allow virtual machines to start and stop automatically with the system".
   Seleccionamos el tiempo de espera entre el arranque/apagado del HOST y el arranque/apagado de las VM.
   Pulsamos "Move Up" hasta que la maquina virtual se coloque en Automatic Startup.
   OK.

Con esto, cuando arranque el Host, pasado el tiempo de espera configurado, arrancaran las Máquinas Virtuales y antes de apagar el Host apagará las máquinas virtuales. 

Apagar el HOST automáticamente.

He encontrado varias páginas sobre el tema, la que más me ha ayudado a sido esta.

La idea es:
   - Detener el servicio crond.
   - Programar el apagado al instante deseado.
   - Relanzar el servicio crond.

El problema esta en que al reiniciar la maquina se resetea el fichero de planificación del crond perdiendo la configuración. Esto lo solucionamos preparando un script que realice automáticamente los tres pasos anteriores en cada arranque del sistema.

Para realizar todas estas configuraciónes accederemos por SSH.

Si no podemos acceder por SSH tendremos que habilitar el acceso desde el ESXi en:
   Pulsamos F2 "Customize System"
   Seleccionamos "Throubleshooting Options"
   Seleccionamos "Enable ESXi Shell"
   "Enable SSH"

Con esto ya tendremos acceso por SSH. 

Vamos a ello:

Primero le damos permisos de escritura al archivo de planificación del crond para poder editarlo.
>> chmod +w /var/spool/cron/crontabs/root

Editamos el fichero /etc/rc.local.d/local.sh que se encargará de ejecutar nuestras ordenes en el arranque.
>> vi  /etc/rc.local.d/local.sh

Añadimos el siguiente contenido:

# Mata el proceso crond
/bin/kill $(cat /var/run/crond.pid)
# Añade la programación , a las 4:00 se ejecutará el poweroff
/bin/echo "0 4 * * * /bin/poweroff" >> /var/spool/cron/crontabs/root
# Relanza el proceso crond con la nueva configuración
/usr/lib/vmware/busybox/bin/busybox crond

Con esto a las 4:00 se lanza el apagado, empezando por apagar las máquinas virtuales y esperando el tiempo que hemos configurado anteriormente antés de proceder con el apagado del HOST.






No hay comentarios: