Shutdown eines ESXi-Servers mittels einer APC-USV und einem Windows-Host

Lange habe ich gegrübelt, wie man wohl ohne aufwendiges “Gepfriemel” einen ESXi-Host (von VMware) bei einem Stromausfall, der länger dauert, korrekt herunterfahren könnte. Im Netz bzw. auf den VMware-Supportseiten findet man dazu alle möglichen Hinweise – von der Installation eines eigenen Plugins in den ESXi-Host (very complicated) bis hin zur Verwendung einer speziellen (und nicht gerade günstigen) Netzwerk-Verwaltungsschnittstellenkarte von APC selbst. Dabei ist die Lösung so einfach:

Man schleift die USB-Schnittstelle des ESXi-Hostservers, an der die USV angeschlossen ist, zu irgendeiner virtuellen Windows-Maschine (die auf ebendiesem ESXi-Host läuft) durch (Hardware konfigurieren, hinzufügen: USB-Controller, OK, Hardware hinufügen: USB-Gerät, die USV auswählen, OK) und installiert auf dieser virtuellen Windows-Maschine die kostenlose Powerchute-Version von APC (die jeder USV beiliegt bzw. von der APC-Homepage heruntergeladen werden kann).
Zur Sicherheit habe ich dem “APC PBE Agent”-Dienst noch ein lokales Administrator-Konto zugewiesen, damit er ungehindert agieren kann.

Danach wird´s ein bisschen komplizierter – allerdings nicht sehr:
Die SSH-Schnittstelle am ESXi-Host freischalten (Konfiguration vom ESXi-Host, Software, Sicherheitsprofil: Eigenschaften, dann den SSH-Dienst auswählen, Optionen, entweder auf “automatisch starten…” oder “mit Host starten”) und danach natürlich auch starten.

Dann in der Windows-Client-Maschine das Programm “putty” sowie “plink.exe” (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) z.B. in den Ordner c:\putty herunterladen und (zumindestens) einmal eine SSH-Verbindung + Login zum ESXi-Host aufbauen (SSH-Key wird automatisch installiert), diese Verbindung in Putty speichern und den dabei vergebenen NAMEN merken.

Jetzt im CMDFILES-Ordner der APC Powerchute-Installation (üblicherweise c:\program files (x86)\APC\Power Chute Business Edition\agent\cmdfiles) eine eigene CMD-Datei anlegen (zB shutserver.cmd), die folgenden Befehl enthält:

@START “” “c:\putty\plink.exe” ESXI -l USERNAME -pw PASSWORT “/sbin/shutdown.sh && /sbin/poweroff”

ESXI = der Name der Verbindungssession, die in Putty gespeichert wurde
USERNAME / PASSWORT = Username und Password des Root-Accounts des ESXi-Hosts

Jetzt bleiben nur mehr zwei Tasks bis zum erfolgreichen Shutdown: In der Powerchute-Konfiguration die soeben angelegte “shutserver.cmd”-Datei im Menu “Shutdown” unter “Shutdown settings” (no na 😉 anwählen und (falls nicht sowieso bereits geschehen) am ESXi-Host die entsprechenden Aktionen zum Herunterfahren der virtuellen Maschinen konfigurieren (ESXi-Konfiguration, VM starten/herunterfahren, Eigenschaften) – also entweder “Herunterfahren” oder “Anhalten”.

Ich habe das Script getestet, es hat einwandfrei geklappt – ein vorheriger Wechsel des ESXi-Hosts in den Wartungsmodus war nicht nötig.

Hier der Vollständigkeit halber (mit Dank) noch der Link zu dem Originalartikel, der mich auf die richtige Spur gebracht hat:

https://community.spiceworks.com/how_to/55064-how-to-gracefully-shut-down-vsphere-5-x-esxi-free-using-an-eaton-ups-with-ipm-and-the-command-line

Den zweiten wichtigen Artikel, in dem ich darüber aufgeklärt wurde, dass man die Variablen für das @START-Kommando des APC Powerchute-Scripts (also zB @START “” “c:\putty\plink.exe” variable1 variable2 etc.) außerhalb der Anführungszeichen plazieren muß, werde ich nachreichen (wenn ich ihn wiedergefunden habe).

Ein weiterer interessanter Artikel, der sich mit dieser Thematik beschäftigt: https://www.binarus.de/articles/apc-usv-network/apc-usv-network.shtml

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha: