Basic PowerCLI-Skripterstellung für VMware vSphere

Zuvor haben wir uns PowerCLI angesehen – was es ist, wie man es installiert und in Windows Powershell ISE integriert wird. Werfen wir nun einen Blick auf grundlegende Skripterstellung einschließlich Verbinden, PowerCLI-commandlets (ein einzelner MSH-Befehl, kurz cmdlet) ebenso wie Looping.

NAKIVO für VMware vSphere-Backup

NAKIVO für VMware vSphere-Backup

Datensicherung für VMware vSphere VMs, Sofortwiederherstellung, sichere On-Premise, Offsite und Cloud-Backupziele, Anti-Ransomware-Funktionen.

Basic PowerCLI-Skripterstellung

Schauen wir uns einige PowerCLI commandlets an, um zu sehen, wie es einfach ist, mit PowerCLI Informationen aus unserer vSphere-Umgebung zu entnehmen. Denken Sie daran, dass das Folgende in keiner Weise ein umfassendes Tutorial sein soll, sondern nur eine Einführung in PowerCLI und wie man ccommandlet ausführt und lernt, Ihre Umgebung zu automatisieren.

Das erste commandlet, das wir ausführen müssen, ist das, das tatsächlich eine Verbindung zu unserer vSphere-Umgebung herstellt. Sie können sich entweder direkt mit einem ESXi-Host oder mit vCenter Server verbinden.

Um eine Verbindung herzustellen, führen Sie den folgenden Befehl in einer PowerCLI-fähigen PowerShell-Sitzung aus:

  • connect-viserver –server 〈yourserver〉

Wenn Sie diesen Befehl ausführen, werden Sie zur Anmeldung mit Ihren Zugangsdaten aufgefordert. Geben Sie Ihren Benutzernamen und Ihr Passwort für Ihren ESXi-Server oder Ihren vCenter Server ein.

Basic PowerCLI scripting

Einer der grundlegendsten Befehle, die wir beim Herstellen einer Verbindung mit ESXi oder vCenter ausführen können, besteht darin, dass alle VM in der Umgebung angezeigt werden. Wir verwenden das Get-VM-commandlet, um Informationen zu den Gast-VM anzuzeigen.

  • Get-VM – Das Get-VM-commandlet listet auf dem verbundenen Host ausgeführte VM auf.

get-vm commandlet

Um ausführlichere Informationen aus dem get-vm commandlet abzurufen, können wir die vollständigen Informationen mit dem Befehl anzeigen:

  • Get-VM | fl – zeigt ausführlichere Informationen an, z.B.  Gastbetriebssystem, Ressourcenpools, Version der VM-Hardwareversion, Ordner, in dem es sich befindet und viele andere Details.

Get VM Full Information

Lassen Sie uns nun spezifische nützliche Informationen aus dem Get-VM commandlet zurückgeben. Lassen Sie uns die VM finden, die sich im PoweredOff-Zustand befinden. Wir können Informationen aus dem Get-VM commandlet abrufen und diese dann in where-object, um die spezifischen Informationen auszuwählen, die wir Abfragen möchten – in diesem Fall PowerState. Wie Sie sehen können, gibt es viele Möglichkeiten, verschiedene VM-Informationen zu erhalten und diese Informationen in ein anderes PowerShell commandlet zu leiten.

  • Get-VM | where-object {$_.PowerState –eq “PoweredOff”}

Get-VM PowerState

Wie Sie sehen, werden hier nur die VM angezeigt, die sich im PowerState „PoweredOff“ befinden. Dies kann sehr nützlich sein. Wir können das Ergebnis des obigen Befehls sogar in das Start-VM-commandlet. Im Wesentlichen können wir alle ausgeschalteten VM abrufen und diese VM dann einschalten

  • Get-VM | where-object {$_.PowerState –eq “PoweredOff”} | Start-VM

Start-VM commandlet

Was ist mit dem Herunterfahren bestimmter VM? Das können wir auch. Wir können die VM namentlich aufrufen und dann das Stop-VMGuest commandlet verwenden, das ein Herunterfahren des Gast-Betriebssystems auslöst.

  • Get-VM 〈yourvm〉 | Stop-VMguest

Stop-VMguest commandlet

Wenn Sie die Bestätigung der Aktion nicht erhalten möchten, können wir den Parameter –confirm: false hinzufügen:

Stop-VMguest –confirm:false

Nehmen wir an, wir möchten sehen, wie viele VM wir ausgeführt haben, denen mehr als 1 CPU zugewiesen wurde. Auch hier können wir das where-object commandlet verwenden, um das NumCpu-Objekt auszuwählen:

  • Get-VM | where-object {$_.NumCpu –gt 1 }

where-object commandlet

PowerCLI-Loops

Mit Loops können Sie dieselbe Operation mehrmals für ausgewählte Objekte oder für eine Anzahl von wiederholten Durchläufen ausführen. Zum Beispiel, können wir mit einer Foreach-Schleife eine bestimmte Aktion mehrfach wiederholen. Es ist wie der folgende Pseudo-Code unten eingestellt:

foreach ($var in $vars){
Do something…
}

Wenn wir genau wissen wollen, auf welche Objekte wir die Aktion anwenden wollen, können wir zum Beispiel einen bestimmten Looping durchlaufen Liste von VM aus einer Textdatei. Um die Textdatei zu füllen, können wir Get-VM commandlet ausführen, indem wir die gewünschten Eigenschaften auswählen und diese dann in eine Textdatei pipen. Wir können PowerShell dann verwenden, um die Textdatei zu lesen und die VM in ein Array zu platzieren, auf dem wir einen Looping und eine Aktion ausführen können. Im Folgenden fügen wir einen neuen Netzwerkadapter zu VM in der Liste hinzu.

Get-vm | where-object {$_.MemoryGB –eq 4 } | select -ExpandProperty Name | out-file c:\VMs.txt

$vms = get-content c:\VMs.txt

Foreach-object ($vm in $vms) {
new-networkadapter -vm $vms -NetworkName „〈Port group name〉“ -Type „VMXNET3“ –startconnected
}

Die kostenlose Version von NAKIVO Backup & Replication: laden Sie Ihre virtuellen VMware-Maschinen herunter und sichern Sie sie.

Ressourcen

Es gibt viele großartige Ressourcen im Web, die persönliche Blog-Seiten, offizielle Dokumentation, Code-Beispiele usw. einschliessen. Was ich gefunden habe, wenn Sie sich etwas vorstellen können, das Sie tun möchten, gibt es höchstwahrscheinlich jemanden, der bereits eine PowerCLI-Codezeile geschrieben hat, die das macht, was Sie wollen. Die gute Sache ist normalerweise, dass Sie etwas finden können, das sehr nah an dem ist, was Sie tun möchten und mit geringfügigen Veränderungen, nachdem Sie die Grundlagen gelernt haben, können Sie sie an Ihre Bedürfnisse anpassen. Auf diese Weise lernen Sie PowerCLI kennen und wissen, wie es funktioniert und wie Sie den Code ändern können, um die Aufgabe zu erfüllen, die Sie ausführen müssen.

Ein guter Ausgangspunkt für Dokumentation und andere Ressourcen ist  offizielle VMware PowerCLI-Endvesion- und Dokumentationsseite. Hier können Sie die Binärdateien sowie das offizielle Benutzerhandbuch herunterladen.

Es gibt auch Tonnen von Büchern mit Skripten und Skriptbeispielen, die seziert und modifiziert werden können. Denken Sie an die Gemeinschaft von VMware-Administratoren, die das Wissen, das sie von anderen Personen auf ihrem Weg zur Beherrschung von PowerCLI gelernt haben, größtenteils teilen. Reagieren Sie mit denen in Ihrer Gemeinschaft, um Hilfe bei bestimmten oder nur allgemeinen Prinzipien zu bekommen.

Überlegungen

Aber Power CLI ist sehr kraftvoll, um es gelinde auszudrücken. Wir haben in den oben gezeigten Beispielen nur die Oberfläche gekratzt. Alle Aufgaben, die Sie wiederholt ausführen oder die im Webclient schwerfällig sind, sind hervorragende Kandidaten für die Skripterstellung mit PowerCLI. In der Regel werden PowerCLI-Benutzer so behandelt, als hätten sie eine Aufgabe, die sie automatisch ausführen müssen, oder eine Aktion, die auf anderen Aktionen in vSphere oder wiederholten Aktionen basiert, die sich gut für das Skripting eignen. Der beste Weg, um PowerCLI zu beherrschen, besteht darin, es herunterzuladen, zu installieren und es in einer Laborumgebung wie einem Heimlabor zu verwenden. Die wahre Stärke einer VMware vSphere-Umgebung wird nur dann freigeschaltet, wenn Sie die Möglichkeit sehen, mit Hilfe  und Automatisierung die Kontrolle über vSphere zu übernehmen. Beginnen Sie also mit der Skripterstellung mit PowerCLI und Sie werden nie mehr zurückschauen!

Testen Sie NAKIVO Backup & Replication

Testen Sie NAKIVO Backup & Replication

Kostenlose 15-Tage-Testversion: Alle Funktionen der Datensicherungslösung testen, ohne Einschränkungen. Keine Kreditkarte benötigt.

Empfohlene Artikel