Programando cópias de segurança de la configuração 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 la nossa configuração de ESXi… por qué no la programamos? Os deixo um par de options que seguro que os encajan para ter unas copias de seguridad de la configuração de ESXi actualizada.
Programando uma tarefa de cópia a partir do Windows,
Esta talvez seja a opção mais simples e a que mais se adequa, já que simplesmente tendo VMware vSphere CLI instalado num equipamento com Windows (poderia ser o mesmo vCenter Server) teríamos tudo pronto. Deveríamos criar um ficheiro BAT que conterá o comando que exporta de cada ESXi a sua configuração, e guardaremos no ficheiro de configuração onde quisermos .
Este seria um ficheiro batch de exemplo, no meu caso chama-se ‘backup_esxi.cmd'’ ao qual terei criado uma tarefa agendada no Agendador de Tarefas do Windows indicando que execute este script, por exemplo, uma vez por semana, e como vemos, guarda-nos no caminho que nos interessa o ficheiro de configuração com o nome e formato que quisermos. Obviamente, añadiremos tantas lineas al BAT cómo servidores queramos, Além disso, que deberíamos criar um utilizador en los ESXi con privilégios de sólo lectura o indicar outro método de autenticación, además de proteger estos ficheros de los curiosos!
[Código-fonte]"%ProgramFiles(x86)%\VMware\VMware vSphere CLI\bin\vicfg-cfgbackup.pl" –server=DIRECCION_IP_ESXi –username=USUARIO –password=CONTRASEÑA -s "PATH\ARCHIVO.tgz"[/Código-fonte]
En el ejemplo, veréis que le agrego la fecha al final del nombre de configuración, quizá algo interessante si tenemos muchos servidores & histórico de copias. Una vez executemos el BAT manualmente o se execute de forma programada nos irá criar los archivos de configuración por cada ESXi! Agora… pondremos en buen lugar estas copias de seguridad!
Programando una tarea de cópia desde ESXi,
E esta opção talvez seja mais prática já que não precisamos de ter um Windows à espera para fazer as cópias, caso contrário, A partir de cada ESXi configuraremos para que exporte a sua configuração através de cron de forma programada para um Datastore VMFS.
O que este método tem é um pouco mais de trabalho, já que por defeito não podemos trabalhar com cron como estamos habituados, além disso, ao reiniciar o ESXi, as alterações que fizermos por defeito não são mantidas, portanto, primeiro criaremos o script no ESXi que nos exporta a configuração e posteriormente modificaremos o ESXi para que cada vez que reinicie mantenha a configuração do cron & pronto!
Ligamo-nos via SSH a um ESXi e criamos o ficheiro de configuração, por exemplo mediante 'vi /vmfs/volumes/DATASTORE/Backup_ESXi/backup_esxi.sh', com o siguiente contenido:
[Código-fonte]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 \;
[/Código-fonte]
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 executable! Con 'chmod +x /PATH/NOMBRE_SCRIPT'.
E nada, si lo executamos manualmente vemos cómo nos genera el archivo de configuración único en un datastore, podremos poner esta tarea que se execute en cada ESXi y en la mesma carpeta del datastore VMFS nos irá 'llenando’ con las configuraciones de cada ESXi!
Nada mau, 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 executar el script, No meu caso, todos los días a las 22h; lo único, recordar que los ESXi usan la hora UTC, por lo que executar 'date’ en línea de comandos para verificar la hora 'correcta’ de ejecución.
[Código-fonte]chmod +w /var/spool/cron/cron/crontabs/root
vi /var/spool/cron/crontabs/root (y añadir al final):
0 22 * * * /vmfs/volumes/DATASTORE/CARPETA/SCRIPT [/Código-fonte]
AHORA DEBEMOS 'REINICIAR’ CRON, LA FORMA QUE TENEMOS EN ESXi 6.0 ou 6.5 sería viendo el identificador del proceso, matándolo y arrancando de nuevo cron:
[Código-fonte]cat /var/run/crond.pid
kill IDENTIFICADOR
crond[/Código-fonte]
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:
[Código-fonte]/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[/Código-fonte]
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! E se não, tenemos el ejemplo anterior que seria el Windows el encargado de hacerles la cópia y dejar en red los ficheros de configuración. Espero que os sirva y tengamos definicas ao menos unas cópias de segurança da configuração do nosso host VMware ESXi!















































