VMWare – Backup delle VM tramite script ghettoVCB (Part 2)
Controlliamo tramite un dry-run se lo script funziona, testando un backup di prova della VM MailServer:
[root@esxi6:/etc/ghettovcb] /opt/ghettovcb/bin/ghettoVCB.sh -m MailServer -g /etc/ghettovcb/ghettoVCB.conf -d dryrun Logging output to "/tmp/ghettoVCB-2018-05-02_13-19-15-1774549.log" ... 2018-05-02 13:19:16 -- info: ============================== ghettoVCB LOG START ============================== 2018-05-02 13:19:16 -- info: CONFIG - USING GLOBAL GHETTOVCB CONFIGURATION FILE = /etc/ghettovcb/ghettoVCB.conf 2018-05-02 13:19:16 -- info: CONFIG - VERSION = 2017_12_09_1 2018-05-02 13:19:16 -- info: CONFIG - GHETTOVCB_PID = 1774549 2018-05-02 13:19:16 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/BACKUP-VM/ 2018-05-02 13:19:16 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 1 2018-05-02 13:19:16 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2018-05-02_13-19-15 2018-05-02 13:19:16 -- info: CONFIG - DISK_BACKUP_FORMAT = thin 2018-05-02 13:19:16 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0 2018-05-02 13:19:16 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0 2018-05-02 13:19:16 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3 2018-05-02 13:19:16 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5 2018-05-02 13:19:16 -- info: CONFIG - SNAPSHOT_TIMEOUT = 15 2018-05-02 13:19:16 -- info: CONFIG - LOG_LEVEL = dryrun 2018-05-02 13:19:16 -- info: CONFIG - BACKUP_LOG_OUTPUT = /tmp/ghettoVCB-2018-05-02_13-19-15-1774549.log 2018-05-02 13:19:16 -- info: CONFIG - ENABLE_COMPRESSION = 0 2018-05-02 13:19:16 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0 2018-05-02 13:19:16 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0 2018-05-02 13:19:16 -- info: CONFIG - ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP = 0 2018-05-02 13:19:16 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all 2018-05-02 13:19:16 -- info: CONFIG - VM_SHUTDOWN_ORDER = 2018-05-02 13:19:16 -- info: CONFIG - VM_STARTUP_ORDER = 2018-05-02 13:19:16 -- info: CONFIG - RSYNC_LINK = 0 2018-05-02 13:19:16 -- info: CONFIG - BACKUP_FILES_CHMOD = 2018-05-02 13:19:16 -- info: CONFIG - EMAIL_LOG = 1 2018-05-02 13:19:16 -- info: CONFIG - EMAIL_SERVER = mailserver@anthesia.lan 2018-05-02 13:19:16 -- info: CONFIG - EMAIL_SERVER_PORT = 25 2018-05-02 13:19:16 -- info: CONFIG - EMAIL_DELAY_INTERVAL = 1 2018-05-02 13:19:16 -- info: CONFIG - EMAIL_FROM = ghettoVCB@anthesia.lan 2018-05-02 13:19:16 -- info: CONFIG - EMAIL_TO = dave@anthesia.lan 2018-05-02 13:19:16 -- info: CONFIG - WORKDIR_DEBUG = 0 2018-05-02 13:19:16 -- dryrun: ############################################### 2018-05-02 13:19:16 -- dryrun: Virtual Machine: MailServer 2018-05-02 13:19:16 -- dryrun: VM_ID: 4 2018-05-02 13:19:16 -- dryrun: VMX_PATH: /vmfs/volumes/datastore1/MailServer/MailServer.vmx 2018-05-02 13:19:16 -- dryrun: VMX_DIR: /vmfs/volumes/datastore1/MailServer 2018-05-02 13:19:16 -- dryrun: VMX_CONF: MailServer/MailServer.vmx 2018-05-02 13:19:16 -- dryrun: VMFS_VOLUME: datastore1 2018-05-02 13:19:16 -- dryrun: VMDK(s): 2018-05-02 13:19:16 -- dryrun: MailServer.vmdk 120 GB 2018-05-02 13:19:16 -- dryrun: INDEPENDENT VMDK(s): 2018-05-02 13:19:16 -- dryrun: TOTAL_VM_SIZE_TO_BACKUP: 120 GB 2018-05-02 13:19:16 -- dryrun: ############################################### 2018-05-02 13:19:16 -- info: ###### Final status: OK, only a dryrun. ###### 2018-05-02 13:19:16 -- info: ============================== ghettoVCB LOG END ================================
Dunque, il nostro script è pronto per funzionare.
Scheduliamo il nostro script in maniera tale da eseguirlo una volta al mese (alle ore 22.50 del primo giorno del mese) e (per come impostato il parametro VM_BACKUP_ROTATION_COUNT=6) avremo il backup degli ultimi 6 mesi della VM.
Se avete una macchina ESXi, proseguite in questo modo per aggiungere una nuova riga al cron:
- Editate il file /var/spool/cron/crontabs/root tramite il comando vi
- Aggiungete la seguente riga al vostro file e salvatelo
- 50 22 01 * * /opt/ghettovcb/bin/ghettoVCB.sh -m MailServer -g /etc/ghettovcb/ghettoVCB.conf -d dryrun
- Digitate il seguente comando per trovare il PID del vostro cron e riavviatelo:
- cat /var/run/crond.pid
- kill 12345 (dove 12345 deve essere sostituito dall’output del comando precedente)
- Riavviate il cron:
- /usr/lib/vmware/busybox/bin/busybox crond
- Applicare i cambiamenti di configurazione dell’host:
- auto-backup.sh
Ricordate che al riavvio dell’host VMWare la precedente configurazione viene persa e dovrà essere rifatta.
Dobbiamo anche modificare il firewall, per permettere all’host di mandare mail al nostro mailserver:
- Create il file /etc/vmware/firewall/SMTP.xml tramite il comando vi ed inseritevi queste istruzioni
<!-- Firewall configuration information --> <ConfigRoot> <!-- SMTP --> <service> <id>SMTP</id> <rule id='0000'> <direction>outbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port>25</port> </rule> <enabled>true</enabled> <required>false</required> </service> </ConfigRoot>
- Ricaricate le regole del firewall
- esxcli network firewall refresh
- Verificate se la nuova eccezione al firewall è stata aggiunta
- esxcli network firewall ruleset rule list | grep SMTP
A questo punto il vostro Backup è stato impostato; non resta che provarlo, togliento il parametro “-d dryrun” al comando visto nella parte 1:
/opt/ghettovcb/bin/ghettoVCB.sh -m MailServer -g /etc/ghettovcb/ghettoVCB.conf
L’output sarà simile a quello di inizio pagina, ma senza il dryrun.
← VMWare – Backup delle VM tramite script ghettoVCB (Part 1)
VMWare – Restore delle VM tramite script ghettoVCB (Part 3) →