revert_snapshots.sh

Quellcode herunterladen

Name

Script name: revert_snapshots
Author: Anton Daudrich
Company: ADMIN INTELLIGENCE GmbH
Version: v0.2
Release date: 2018-01-04

Beschreibung

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.

Hilfe

    
*********************************
revert_snapshots
*********************************
Script for reverting VM Snapshots on a ESXi
it will always revert the machine to the last(youngest) made Snapshot

Usage: revert_snapshot.sh -n [VM_name]

 -n [VM_name] name of virtual machines to grep (regex)
    for example: W10 will find all machines matching W10*

Optional command-line parameters:
 --version   prints version and release info
 --debug     show verbose debug output

Note: This Script is meant to be run on the ESXi Server locally.
      Set it up on a datastore accessible to the ESXi
      and then run it remote by ssh or locally by cron.

      Tested on ESXi 5.5 and ESXi 6.0

**********************************************************************************************
Thank you for using this script! For more infos on our services please visit www.admin-box.de
    
  

Changelog

    
v0.1 2016-01-28 initial Release
v0.2 2018-01-04 reworked code for public release, added comments
    
  

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

Dokumentation

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.

Anwendungsbeispiele

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.

Download

    
#############################
### Copyright and License ###
#############################
#
# Copyright (C) 2016 Anton Daudrich
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program.
# If not, see http://www.gnu.org/licenses/.
#
#############################
    
  
Quellcode herunterladen

Feedback

Haben Sie Fragen zu diesem Script oder Plugin?
Sie möchten Verbesserungsvorschläge einbringen oder haben Fehler gefunden?
Kontaktieren Sie uns gerne!

Kontaktformular