VMware PowerCLI: Auch für Perl SDK-ler
Ein Blick über den Tellerrand hat noch niemandem geschadet und genau dafür ist die VMware PowerCLI ein gutes Beispiel. Bisher dominierte Perl SDK unsere VMware-Scripting-Ecke. Speziell in Linux/Unix-Umgebungen gefragt, kommt es nicht nur Perl-versierten Admins entgegen, sondern bildet auch das Fundament gängiger Nagios-Checks.
Andererseits ist eine gewisse Komplexität nicht von der Hand zu weisen und gerade wenn man Perl SDK basierte Skripte mit ihren PowerCLI-Pendants vergleicht, darf man sich schonmal überlegen, welches Framework für diverse Zweck das geeignetere Werkzeug ist.
Beispielszenario Massen-VM-vMotion
Nehmen wir folgendes Szenario: Abendliche Failover-Tests in einer VDI-Umgebung mit der Bitte, doch alle 60 VMs eines Servers, dem der Stecker gezogen wird, nach erfolgten Tests wieder auf diesen Server zurückzuschieben. Manuelles Verschieben via GUI verbietet sich bei der Anzahl von selbst. Kein Problem, lässt sich mit Perl SDK machen … wenn da nicht die Neugier wäre, wie das denn alternativ mit der PowerCLI aussähe. Nach kurzem Einlesen in die Grundlagen kommt überraschend schnell Folgendes zustande.
1) Vor dem Failover-Test die Liste der aktiven VMs des betroffenen Hosts sichern.
connect-viserver vcenter.acme.com
get-vm -location (get-vmhost vdi-esx006.acme.com) | where `
{ $_.powerstate -eq "PoweredOn" } > vms.lst
2) Nach erfolgter Arbeit, den Host wieder reanimieren und die in der Zwischenzeit via HA woandershin geschwenkten VMs wieder zurückholen.
cat vms.lst | foreach { move-vm `
-confirm:$false -vm $_ `
-destination (get-vmhost vdi-esx006.acme.com) }
Pragmatisch und simpel
Dieses einfache Beispiel lässt sich sicherlich noch verfeinern, soll hier aber lediglich zwei Dinge verdeutlichen: Zum einen ist eine solche Anforderung in PowerCLI extrem simpel zu implementieren. Zum anderen lädt es Linux/Unix Admins dank bekannter Elemente wie Pipes, Redirection und “cat” geradezu ein, damit zu arbeiten. Und das Beste an der Sache: Sowas lässt sich auch ohne lange Einarbeitungsphase umsetzen oder aber auch mal einem Kollegen übers Telefon vermitteln. Beim Perl SDK ist meiner Meinung nach beides eher unwahrscheinlich.
Das soll nicht bedeuten, dass Perl SDK hiermit seine Darseinsberechtigung verliert. Man sollte sich lediglich überlegen, wofür man es einsetzt und ob der damit verbundene Aufwand in einem gesunden Verhältnis zum Nutzen steht. Mit Wissen über existierende Alternativen/Werkzeuge geht bekanntlich mancher Job deutlich schneller von der Hand.
Nicht nur simpel, sondern auch mächtig
Natürlich lassen sich mit PowerCLI auch beliebig komplexe Aufgaben lösen. Ein Blick ins PowerCLI cmdlets Poster verdeutlicht den Funktionsumfang und Al Renoufs PowerCLI Scripts oder einige der Gewinner-Beiträge des Script-o-Mania Contests 2010 sind Beispiele, wie sich praktische Helfer bauen lassen.
Also nichts wie los, Powershell/PowerCLI runterladen und selbst davon überzeugen, dass PowerCLI auch für eingefleischte Perl SDK-Fans eine einfach zu nutzende, äußerst hilfreiche und willkommene Ergänzung zum Scripting-Portfolio ist. Selbst (oder gerade) für Administratoren, die ansonsten mit Windows vielleicht nicht so viel am Hut haben.


Ergänzung: Ein weiterer, schöner Apetizer mit alltagstauglichen Beispielen für die PowerCLI ist Managing VMware with PowerShell – VMworld 2008