Script name: revert_snapshots
Author: Anton Daudrich
Company: ADMIN INTELLIGENCE GmbH
Version: v0.2
Release date: 2018-01-04
Script um VM Snapsots auf einem ESXi zurückzusetzen (revert). Es kann automatisiert z.B. per cronjob mehrere VMs zurücksetzen.
Wir setzen dieses Script ein, um in einer Schulungsumgebung bei einem Kunden jede Nacht alle VMs auf ihren Ursprungszustand
zurückzusetzen, damit die nächste Schulung am folgenden Tag wieder wieder neu anfangen kann.
Installation/Voraussetzungen
Abhängigkeiten
ESXi Shell Access per SSH
Installation
Das Script sollte persistent auf dem ESXi Host abgelegt werden, z.B. auf einem eingebundenen datastore. Es kann daraufhin per
cron oder remote per SSH aufgerufen werden.
Getestet auf ESXi 5.5 und ESXi 6.0
Arbeitsweise
Das Script läuft lokal auf dem ESXi Host. Es holt sich die benötigten Informationen zu jeder VM (die der Regular Expression
entsprechen) und setzt diese auf den letzten (d.h. jüngsten) Snapshot zurück. Dabei wird auch der Power Zustand in dem der
Snapshot erstellt wurde (powered on/off) berücksichtigt. Unter anderem kommen folgende Befehle zur Anwendung:
vim-cmd vmsvc/getallvms | grep "$VM_name"
vim-cmd vmsvc/snapshot.get ${VM_id}
vim-cmd vmsvc/snapshot.revert "${VM_id}" "${last_snapshot_id}" "${powerOff}"
interne Scriptfehler werden gelogt nach log_file="/tmp/revert_snapshots.log"
Kommandozeilenparameter
-n {regex}
grep Regular Expression für VM Name(n), siehe auch Hilfe zum Befehl grep: man grep
Exit Codes
Keine besonderen exit codes.
Perfdata
Dieses Script generiert keine Perfdaten.
Wir setzen dieses Script ein, um in einer Schulungsumgebung bei einem Kunden jede Nacht alle VMs auf ihren Ursprungszustand
zurückzusetzen, damit die nächste Schulung am folgenden Tag wieder wieder neu anfangen kann.