Beschreibung:

Das erwähnte PowerShell Script, fährt die VMs eines Hyper-Vs in einer selbstbestimmten Reihenfolge herunter und in umgekehrter Reihenfolge wieder hoch, anhand einer .csv Tabelle. Als Parameter (time) kann die maximal Laufzeit der VMs angegeben werden, bevor die Instanz dann durch das Script ausgeschaltet wird. Das dient dazu, den Updateprozess der anderen VMs weiter zu gewährleisten, sollte eine mal hängen bleiben.

In diesem Artikel wird erklärt, wie die Tabelle vorzubereiten ist und das PowerShell Script „Reboot-VMsAndHV-SU.ps1“ zu verwenden ist.

Das Skript kannst Du Dir aus unserem Github Repo hier herunterladen:

ScriptCollection/Smart Updates/Reboot-VMsAndHV-SU.ps1 at main · Server-Eye/ScriptCollection · GitHub 

Voraussetzungen:

Bitte folgende Schritte durchführen zum Einrichten des Scripts:

  1. Das Script ins Online PowerShell Verzeichnis hochladen.
  2. In der Server-Eye Aufgabenplanung eine Aufgabe anlegen.

    - Name + Beschreibung: Reboot_Hyper-V_SU
    - System: entsprechender Hyper-V
    - Trigger: 1x wöchentlich (mit Kunden absprechen!)
    - Aktionen: Powershell Repo -> Script auswählen. 

    ("time" =maximale Zeit in - Minuten, die eine VM zum Herunterfahren benötigen kann, bevor sie gestoppt wird)
  3. auf den Hyper-V schalten
  4. Sicherstellen, dass KEINE Datei "C:\vms.csv" existiert!
  5. In Windows Aufgabenplanung unter Server-Eye Tasks neu angelegte Aufgabe einmal ausführen 
    (bei der ersten Ausführung wird der Hyper-V nicht neu gestartet!):
    Eine Datei "vms.csv" wird unter C: erstellt (C:\vms.csv) 

  6. In der erstellten .csv Datei sind alle Prioritäten auf 10 gesetzt. Nun muss die Reihenfolge bestimmt werden anhand der Priorität.
    Es gilt je niedriger der Wert der Priorität, desto später wird die jeweilige VM bei einem Hyper-V Reboot heruntergefahren. Ein VM mit Prio 1 fährt nach einer VM mit Prio 2 herunter.


    Zur Veranschaulichung folgendes Beispiel:



    Der automatische Reboot des Hyper-V ist somit eingerichtet und findet zum nächsten Zeitpunkt der in Server-Eye geplanten Aufgabe statt. Die VMs werden nach dem Reboot in umgekehrter Reihenfolge gestartet.

Anmerkungen

  • der Parameter "time" im Script ist standardmäßig auf 30 Minuten festgelegt
  • Änderungen des Namens aktiver VMs führt zu einer Neuanlage dieser VM in vms.csv mit der Priorität10
  • gelöschte VMs werden automatisch aus vms.csv entfernt und in zukünftigen Neustarts nicht mehr berücksichtigt
  • neu hinzugefügte VMs werden automatisch mit einer Priorität von 10 der Datei vms.csv hinzugefügt
  • das Starten der VMs nach dem Hyper-V Reboot findet nach einem maximalen Delay von 5 Minuten statt! (nach maximal 5 Minuten startet die erste VM)
  • die Zeit zwischen den Starts der einzelnen VMs ist auf 120 Sekunden festgesetzt (dies wird in einer zukünftigen Version als Parameter verfügbar sein)
  • die ersten Neustarts sind zu kontrollieren!