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 .
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, eta ikusten dugunez, konfigurazio-fitxategia nahi dugun izena eta formatuan bidez gure gustuko path-ean gordetzen digu. Obviamente, BAT-era linea batzuk gehiagoko zerbitzari kopuruaren arabera, gainera, ESXi batean irakurketa bakarreko pribilegioak dituen erabiltzaile bat sortu behar genuke edo beste autentikazio-metodo bat adierazi, gainera fitxategi hauek jakin-minak dituztenen aurka babestea!
[sourcecode]"%ProgramFiles(x86)%\VMware\VMware vSphere CLI\bin\vicfg-cfgbackup.pl" –server=ESXi_IP_HELBIDEA –username=ERABILTZAILEA –password=CONTRASEÑA -s "PATH\ARCHIVO.tgz"[/sourcecode]
Adibidean, ikusiko duzue konfigurazio-izena amaieran data gehitzen diodala, agian baliagarria zerbitzari asko ditugunean & kopia historikoa. BATa eskuz exekutatzen dugunean edo programatutako moduan exekutatzen denean, ESXi bakoitzeko konfigurazio fitxategiak sortzen hasiko da! orain… babeskopia horiek leku onean jarriko ditugu!
ESXi-tik kopia egiteko lan bat programatzen,
Eta aukera hau agian politagoa da, ez dugulako Windows bat kopiak egiteko zain izan behar, baina ez badugu, ESXi bakoitzetik bere konfigurazioa cron bidez programatutako moduan VMFS Datastore batera esportatzeko konfiguratu egingo dugu.
Metodo honek lan pixka bat gehiago eskatzen du, lehenetsitako moduan ezin dugulako cronekin ohiturak bezala lan egin, gainera, ESXi berrabiarazten denean lehenetsi dugun aldaketarik ez du mantenduko, Beraz, lehenik eta behin script-a sortuko dugu ESXi-n, konfigurazioa esportatzeko, eta ondoren ESXi aldatu egingo dugu berrabiarazten den bakoitzean cronaren konfigurazioa mantentzeko & prest!
SSH bidez konektatzen gara ESXi batera eta konfigurazio fitxategia sortzen dugu, adibidez, ‘vi /vmfs/volumes/DATASTORE/Backup_ESXi/backup_esxi.sh’ erabiliz, con el siguiente contenido:
[sourcecode]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 \;
[/sourcecode]
Aurreko kasuan bezala, argazkian ikusiko duzue, TGZ fitxategiari ESXi zerbitzariaren izena ematen ari naiz eta amaieran data sartzen diot, esaten dizuedan bezala, creo que será más que necesario. No nos olvidemos de hacer el script ejecutable! Con 'chmod +x /PATH/NOMBRE_SCRIPT'.
Eta ezer, 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!
Ondo, 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.
[sourcecode]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 [/sourcecode]
Ahora debemos 'reiniciar’ cron, la forma que tenemos en ESXi 6.0 edo 6.5 sería viendo el identificador del proceso, matándolo y arrancando de nuevo cron:
[sourcecode]cat /var/run/crond.pid
kill IDENTIFICADOR
crond[/sourcecode]
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:
[sourcecode]/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[/sourcecode]
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!
















































