VMWare – Backup delle VM tramite script ghettoVCB (Part 2)

Published by Lello on

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:

  1. Editate il file /var/spool/cron/crontabs/root tramite il comando vi
  2. 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
  3. 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)
  4. Riavviate il cron:
    • /usr/lib/vmware/busybox/bin/busybox crond
  5. 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:

  1. 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>
  1. Ricaricate le regole del firewall
    • esxcli network firewall refresh
  2. 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)