Programando copias de seguridad de la configuración de ESXi 6.x

El otro día leía un debate sano entre coleguitas bloggers en LinkedIn, y es cierto, a pocos se nos ocurre programar ciertas tareas curiosas como por ejemplo esta. Si bien es interesante hacer un backup de nuestra configuración de ESXi… por qué no la programamos? Os dejo un par de opciones que seguro que os encajan para tener unas copias de seguridad de la configuración de ESXi actualizada.

 

Programando una tarea de copia desde Windows,

Esta quizá sea la opción más sencilla y la que más encaje, ya que simplemente teniendo VMware vSphere CLI instalado en un equipo con Windows (podría ser el mismo vCenter Server) lo tendríamos listo. Deberíamos crear un archivo BAT que contendrá el comando que exporte de cada ESXi su config, y guardaremos en el fichero de configuración donde queramos .

 

Backup-ESXi-Configuracion-Programada-01-bujarra

Este sería un archivo batch de ejemplo, en mi caso se llama ‘backup_esxi.cmd’ al que habré creado una tarea programada en el Programador de Tareas de Windows indicando que ejecute este script por ejemplo una vez a la semana, y como vemos nos guarda en el path que nos interese el fichero de configuración con el nombre y formato que nos interese. Obviamente, añadiremos tantas lineas al BAT cómo servidores queramos, además, que deberíamos crear un usuario en los ESXi con privilegios de sólo lectura o indicar otro método de autenticación, además de proteger estos ficheros de los curiosos!

"%ProgramFiles(x86)%\VMware\VMware vSphere CLI\bin\vicfg-cfgbackup.pl" --server=DIRECCION_IP_ESXi --username=USUARIO --password=CONTRASEÑA -s "PATH\ARCHIVO.tgz"

 

Backup-ESXi-Configuracion-Programada-02-bujarra

En el ejemplo, veréis que le agrego la fecha al final del nombre de configuración, quizá algo interesante si tenemos muchos servidores & histórico de copias. Una vez ejecutemos el BAT manualmente o se ejecute de forma programada nos irá creando los archivos de configuración por cada ESXi! Ahora… pondremos en buen lugar estas copias de seguridad!

 

Programando una tarea de copia desde ESXi,

Y esta opción quizá es más cuca ya que no tenemos por qué tener un Windows pendiente de hacer las copias, si no, desde cada ESXi configuraremos que exporte su configuración mediante cron de forma programada a un Datastore VMFS.

Lo que tiene este método es un poco más de labor, ya que por defecto no podremos trabajar con cron como estamos acostumbrados, además que al reiniciarse el ESXi los cambios que habremos hecho por defecto no nos los mantiene, por tanto, primero crearemos el script en el ESXi que nos exporte la configuración y posteriormente modificaremos el ESXi para que cada vez que se reinicie nos mantenga la configuración del cron & listo!

 

Backup-ESXi-Configuracion-Programada-03-bujarra

Nos conectamos por SSH a un ESXi y creamos el fichero de configuración, por ejemplo mediante ‘vi /vmfs/volumes/DATASTORE/Backup_ESXi/backup_esxi.sh’, con el siguiente contenido:

vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \*.tgz -exec mv {} /vmfs/volumes/DATASTORE/Backup_ESXi/ARCHIVO.tgz \;

Al igual que en el caso anterior, veréis que en la foto, al fichero TGZ le estoy llamando como el servidor ESXi además de meterle al final la fecha, como os digo, creo que será más que necesario. No nos olvidemos de hacer el script ejecutable! Con ‘chmod +x /PATH/NOMBRE_SCRIPT’.

 

 

Backup-ESXi-Configuracion-Programada-04-bujarra

Y nada, si lo ejecutamos manualmente vemos cómo nos genera el archivo de configuración único en un datastore, podremos poner esta tarea que se ejecute en cada ESXi y en la misma carpeta del datastore VMFS nos irá ‘llenando’ con las configuraciones de cada ESXi!

 

 

Backup-ESXi-Configuracion-Programada-05-bujarra

Bien, ahora la cuestión de programar algo con el cron de ESXi 6.x, lo primero que haremos será hacer darnos permisos de escritura en el cron, además de añadir la programación con la que queramos ejecutar el script, en mi caso, todos los días a las 22h; lo único, recordar que los ESXi usan la hora UTC, por lo que ejecutar ‘date’ en línea de comandos para verificar la hora ‘correcta’ de ejecución.

chmod +w /var/spool/cron/crontabs/root
vi /var/spool/cron/crontabs/root (y añadir al final):
      0 22 * * * /vmfs/volumes/DATASTORE/CARPETA/SCRIPT 

 

 

Backup-ESXi-Configuracion-Programada-06-bujarra

Ahora debemos ‘reiniciar’ cron, la forma que tenemos en ESXi 6.0 o 6.5 sería viendo el identificador del proceso, matándolo y arrancando de nuevo cron:

cat /var/run/crond.pid
kill IDENTIFICADOR
crond

 

Backup-ESXi-Configuracion-Programada-07-bujarra

Lo siguiente será editar ‘/etc/rc.local.d/local.sh’ para permitir que una vez arranque el ESXi (en caso de parada) agregue otra vez el contenido al cron, previamente pararemos cron y al final lo arranca de nuevo! Así que justo antes del final del fichero, antes de ‘exit 0’ debemos añair:

/bin/kill $(cat /var/run/crond.pid)
/bin/echo '0 22 * * * /vmfs/volumes/DATASTORE/CARPETA/SCRIPT' >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond

 

Backup-ESXi-Configuracion-Programada-08-bujarra

Ejecutamos ‘autobackup.sh’ una vez hayamos guardado todos los ficheros y quedaría listo para sentencia! De esta manera tendremos unos ESXi que de forma programada exportarán su configuración a un Datastore VMFS que tengamos compartido, en caso de necesidad siempre podremos optar y recuperar desde ahí un host, que a veces pasa! Y si no, tenemos el ejemplo anterior que sería el Windows el encargado de hacerles la copia y dejar en red los ficheros de configuración. Espero que os sirva y tengamos definicas al menos unas copias de seguridad de la config de nuestros host VMware ESXi!

 

Héctor Herrero

Autor del blog Bujarra.com
Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir 😉 . Disfrutar de los documentos!!!

Últimos Posts de: Héctor Herrero (ver todos)