Vor einiger Zeit habe ich hier das ghettoVCB Backup Script für den VMWare ESXi 3.x vorgestellt. Eine Version für den ESXi 4.0 gibt es dort ebenfalls. Da der ESXi bei einem Reboot sein Filesystem neu aufbaut sind alle Änderungen, die man z.B. für SSH Keybased Authentication oder Cronjobs vornimmt wieder verschwunden. Um die Einstellungen trotzdem persistent zu machen sind weitere Schritte notwendig.
Vorbereitungen auf dem ESXi.
Da auf dem ESXi von Haus aus kein SSH unterstützt wird, sollte dies erst einmal erledigt werden. Eine gute Anleitung dazu findet ihr hier.
Remotebackup von einem Linuxserver aus
SSH Keybased Auth – ESXi Server
Wir erstellen also das benötigte Verzeichnis /.ssh im Root und darin das authorized_keys File.
mkdir /.ssh
touch /.ssh/authorized_keys
chmod 600 /.ssh
chmod 600 /.ssh/authorized_keys
SSH Keybased Auth – Linux Client
Auf dem Linux Client erstellen wir per ssh-keygen unseren Public Key, wobei wir passphrase leer lassen.
[root@gollum ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
Den Inhalt der Datei /root/.ssh/id_rsa.pub kopieren wir in die Datei /.ssh/authorized_keys.
Der Login sollte jetzt ohne eine Eingabe vom Passwort funktionieren.
Damit das Ganze auch nach einem Reboot noch funktioniert, muss der Ordner ./ssh in die /bootbank/oem.tgz verfrachtet werden.
tar c - /.ssh | gzip > /bootbank/oem.tgz
Jetzt erstellen wir ein Script, welches auf dem 2. Linux Host via Cronjob ausgeführt werden soll und das Backup anstößt. (Bitte darauf achten, dass die ghettoVCB.sh und die backuplist.txt auf einem Datastore liegen, das diese sonst ebenfalls nach einem Reboot flöten gehen.)
Der Inhalt sollte in etwa wie folgt aussehen:
#!/bin/bash
ssh fb-vm-esxi01 << EOL #Verbindung zum ESXi aufbauen
/vmfs/volumes/datastore1/ghettoVCBi4.sh /vmfs/volumes/datastore1/backuplist.txt #Befehl der auf dem ESXi ausgeführt wird
exit #Logout vom ESXi
EOL
Zu guter Letzt können wir das Script auf dem Linuxserver in einen Cronjob packen.
Cronjobs auf dem ESXi direkt
Die Crontab des ESXi liegt unter /var/spool/cron/crontab/root, ist ebenfalls nicht persistent und auf 512 Zeichen limitiert. Wer mehr in die Crontab schreiben möchte, muss die oben erwähnte Vorgehensweise nutzen.
Wenn nur das Backup gestartet werden soll, reicht die ESXi Crontab aber noch aus.
Dazu öffnen wir die /etc/rc.local und fügen folgende Zeile hinzu:
echo "0 21 * * 5 /vmfs/volumes/datastore1/ghettoVCB4i.sh" >> /var/spool/cron/crontabs/root
Somit wird bei jedem Reboot der Eintrag in der Crontab wiederhergestellt.
Ein großes Dankeschön an die Kommentatoren, die mich auf die Rebootgeschichte aufmerksam gemacht haben.
Der letzte Senf