Verwaltung einer Hyper-V Testumgebung via PowerShell - Teil 1 Reset

Immer häufiger sehen wir auch bei unseren Kunden die Verwendung von Microsofts Virtualisierungslösung Hyper-V.Vor allem bei größeren Testumgebungen gibt es häufiger das Problem, dass man für das Erstellen von Snapshots und das Zurücksetzen oft viel Zeit zur Verwaltung benötigt. Gerade wenn die virtualisierte Umgebung in einer vorgeschriebenen Reihenfolge gestartet werden muss, sitzt der Administrator häufig wartend vor dem Bildschirm.

Um diesen zeitlichen Aufwand minimieren zu können, haben wir uns im ESC ein PowerShell-Projekt von Codeplex[1] zu Nutze gemacht. Durch diese PowerShell Skripte sindunter anderem folgende Befehle in der Powershell verfügbar:

  • Get-VM

  • Stop-VM

  • Start-VM

  • Get-VMSnapshot

  • Restore-VMSnapshot

Reset der Umgebung

Um den Reset einer kompletten Umgebung auf einen bestimmten Snapshot möglichst einfach zu realisieren, brauchen wir zuvor folgende Infos:

Name des Hyper-V-Hosts:

TEST

Name des Snapshots:

SNAPSHOT

Namen aller virtuellen Maschinen:

WIN7TEST01 TMGTEST01 DCTEST01 MAILTEST01

Startreihenfolge:

  1. DCTEST01

  2. TMGTEST01

  3. MAILTEST01

  4. WIN7TEST01

Zu aller erst müssen wir nun die Module von codeplex importieren:

Import-Module 'C:Hyper-V-PS-ModuleHyperV.ps1'

Da man Snapshots nur anwenden kann, wenn alle VMs gestoppt sind, werden wir alle VMs die im Status running oder suspended sind stoppen:

Get-VM -running | Stop-VM -force -wait Get-VM -suspended | Stop-VM -force -wait

Nun kann man den Snapshot wiederherstellen:

Get-VMSnapshot -name SNAPSHOT | Restore-VMSnapshot -force

Zum Schluss müssen nun nur noch alle VMs in der korrekten Reihenfolge gestartet werden:

Get-VM DCTEST01 -Server TEST | Start-VM -wait Get-VM TMGTEST01 -Server TEST | Start-VM -wait Get-VM MAILTEST01 -Server TEST | Start-VM -wait Get-VM WIN7TEST01 -Server TEST | Start-VM -wait

[1] http://pshyperv.codeplex.com/