7 min read
Get-View in PowerCLI – so verwaltest du deine VMware-Infrastruktur noch effizienter (Teil 3)
Teil 3 dieser Serie liefert Praxisbeispiele für den Get-View Befehl. So lässt sich Zeit sparen.
PowerCLI ist eine...
ScriptRunner Blog
Es liegt wahrscheinlich daran, dass ich meine berufliche Laufbahn als Programmierer mit dem Schreiben von Gerätetreibern für Unix-Systeme in C begann, damals in den 1980er Jahren auf zeichenbasierten Green Screens (80 Spalten x 24 Zeilen!), weshalb ich die Verwaltung von IT-Systemen über eine Kommandozeile einer grafischen Benutzeroberfläche vorziehe. Ich bin kein Masochist, ich finde viele Vorgänge über eine PowerShell-Konsole wirklich einfacher und schneller als über eine (proprietäre) Benutzeroberfläche, selbst wenn diese in einem Webbrowser ausgeführt wird.
PowerShell bietet einige zusätzliche, allgemeine Vorteile gegenüber einer weniger modernen Konsole (cmd). Beachte, dass letztere keine "DOS"-Konsole ist – auch, wenn sie auf den ersten Blick danach aussieht.
Das kann eine PowerShell-Konsole auch. Und sind wir mal ehrlich: die Tage von DOS sind längst vorbei, selbst wenn man DOS immer noch über Microsoft Visual Studio Subscriber (früher MSDN) Downloads beziehen kann, und vor kurzem sogar eine neue Version von FreeDOS bereitgestellt wurde.
Zu den Vorteilen von PowerShell gehören:
PowerCLI ist der Name, den VMware seinen PowerShell-Modulen gegeben hat – wovon es sage und schreibe über 70 verschiedene Module gibt. Daher der Tipp, nur die benötigten Module zu importieren, da das sonst sehr zeitaufwändig sein kann. PowerCLI umfasst alle Produkte von VMware. In diesem Artikel werde ich nur vSphere behandeln, obwohl vieles von dem, was hier steht, auch für ESXi ohne vCenter gilt.
Wenn du weißt, wie du VMware vSphere über PowerShell steuernst, kannst du als Administrator noch effizienter arbeiten. Du erreichst einen höheren Automatisierungsgrad und kannst Aufgaben so konfigurieren, dass diese bei Bedarf automatisch, ohne manuelles Eingreifen ausgeführt werden – ideal, wenn das Wartungsfenster mitten in der Nacht liegt.
In diesem ersten Blog-Beitrag über VMware wollen wir uns mit der Installation und Einrichtung befassen, da hier womöglich einige Probleme auftreten könnten, die einen überraschen. Ich hoffe, dir den Einstieg in das Automatisieren und Verwalten von VMware vSphere mit PowerShell so verständlich und unkompliziert wie möglich zu machen.
Man könnte annehmen, der Befehl Install-Module mit entsprechendem Scope-Parameter sollte ausreichen, um PowerCLI für alle Benutzer zu installieren. Leider muss ich dich enttäuschen. Es gibt doch einige Hürden, die in Verbindung mit der Installation auftreten können. Um Zeitverschwendung und Frustration zu vermeiden, möchte ich im Folgenden näher darauf eingehen.
Bei Updates auf neuere Versionen könnte Ihnen diese Fehlermeldung begegnen:
Das liegt daran, dass sich der Zertifikatsanbieter, den VMware zum Signieren der Module verwendet, geändert hat und PowerShell dies nicht zu berücksichtigen scheint. Dies kann durch die Verwendung des Cmdlets Uninstall-Module oder durch das Löschen der Ordner für die entsprechenden VMware-Module (in "$env:ProgramFiles\WindowsPowerShell\Modules") behoben werden.
Wenn du das Microsoft Hyper-V PowerShell-Modul bereits installiert habst, wird dieser Fehler angezeigt:
Durch die Verwendung des Parameters -AllowClobber wird Hyper-V nicht überschrieben, sodass es weiterhin verwendet werden kann. Du solltest allerdings darauf achten, die richtigen Cmdlets auszuführen. Dies kann auf mehrere Arten geschehen:
Um die Module auf einen Rechner zu kopieren, der nicht mit dem Internet verbundenen ist, nutze einfach die entsprechenden Modulordner eines anderen Rechners, auf dem diese bereits installiert sind.
Mit dem Cmdlet Connect-VIserver wird eine Verbindung zu einem oder mehreren vCenter- oder ESXi-Servern hergestellt. Wenn keine Anmeldeinformationen explizit als Parameter übergeben werden, wird eine Pass-Through-Authentifizierung als der Benutzer, der das Cmdlet ausführt, versucht. Wenn dies nicht möglich ist, wird empfohlen, den Parameter -Credential zu verwenden, anstatt die Anmeldeinformationen im Klartext zu übergeben, da diese unverschlüsselt im PowerShell-Verlauf gespeichert werden.
Möglicherweise wird eine Reihe von Warnungen angezeigt, die du im Voraus aber einzeln über das Cmdlet Set-PowerCLIConfiguration deaktivieren kannst. Außerdem kannst du dem Befehl Connect-VIServer den Parameter -Force mitgeben, der alle Benutzereingabeaufforderungen in der Benutzeroberfläche unterdrückt.
Berechtigungsnachweise (Credentials) können mit dem Cmdlet New-VICredentialStoreItem gespeichert werden. Sie werden automatisch an das Cmdlet Connect-VIserver übergeben, wenn es einen gespeicherten Berechtigungsnachweis für diesen Server gibt. Beachte, dass Passwörter aus diesen gespeicherten Anmeldeinformationen ausgelesen werden können, allerdings nur durch den Nutzer, der sie ursprünglich erstellt hat und nur auf dem Rechner, auf dem sie initial erstellt wurden.
Das Cmdlet Connect-VIserver gibt ein Verbindungsobjekt zurück. Prüfe, ob dieses einen anderen Wert als $null hat, bevor du fortfährst.
Denk daran, nach Beendigung des Vorgangs das Cmdlet Disconnect-VIserver auszuführen, und zwar mit demselben Server, mit demselben Serverparameter und der gleichen Befehlspipeline in dem vom Cmdlet Connect-VIserver zurückgegebenen Verbindungsobjekt. Gib den Parameter -Confirm:$false an, wenn du Benutzereingabeaufforderungen automatisch bestätigen möchtest.
Wenn du mehrere vCenter-Server im Einsatz haben, kannst du den Parameter -AllLinked angeben, um eine Verbindung zu allen Servern (gleichzeitig) herzustellen, sodass alle weiteren Befehle standardmäßig gegen alle ausgeführt werden. Wenn die Server nicht verknüpft sind, kannst du trotzdem eine Verbindung zu allen Servern herstellen, indem du das Cmdlet Connect-VIServer ausführst und dessen Parameter -Server eine kommaseparierte Liste der Server mitgibst. Die Liste wird dem Cmdlet als Array übergeben. Den Typ eines bestimmten Parameters kannst du leicht herausfinden, ohne auf RTFM zurückgreifen zu müssen, indem du dir eine Liste aller Parameter anzeigen lassen. Gib dafür den Cmdlet-Namen gefolgt vom Minuszeichen ein und drücken Strg+Leertaste. Mit den Pfeiltasten kannst du dann den gewünschten Parameter ansteuern und der Typ wird unten links angezeigt, etwa so:
Sei vorsichtig, wenn du dich direkt mit einem vCenter und einem ESXi-Server verbinden, da du möglicherweise doppelte Objekte zurückerhältst.
In diesem Beitrag hast du gesehen, wie du die VMware PowerCLI verwenden kannst um dich damit zu einem VMware vCenter oder ESXi zu verbinden und auf welche Probleme du dabei stoßen kannst.
Tauche in unserem Webinar tief in die transformative Welt der VMware-Automatisierung mit PowerCLI ein – bei gleichzeitigem Einsatz der vielseitigen Fähigkeiten von ScriptRunner.
Wenn du deine Kenntnisse im Data Center Management verbessern, den IT-Betrieb optimieren und das Potential von PowerShell und PowerCLI entfesseln möchtest, dann ist dieses Webinar genau das Richtige für dich.
Erfahre, wie du mit ScriptRunner alle deine wiederkehrenden VMware-Managementaufgaben optimieren, automatisieren, delegieren und überwachen kannst.
🎯 Zentralisiertes Skript- und Modulmanagement
💡 Smarte Skripterstellung mit ChatGPT und OpenAI
🔐 Sichere Verwaltung Credentials und Berechtigungen
👍 Flexible und sichere Delegation mit automatisch erstellten Webformularen
⏰ Interaktive, geplante und ereignisgesteuerte Skriptausführung
🔎 Umfassende Überwachung und Reporting
Hier entlang zur Webinaraufzeichnung!
In unseren ActionPacks befinden sich im VMware Bereich neben den Skriptvorlagen auch zusätzlich Queries für die Nutzung in VMware.
Diese befinden sich unter: ActionPacks / VMware / _QUERY_/
Die wichtigsten Queries sind z.B:
Diese Queries sind zum Download frei verfügbar und können direkt über die ScriptRunner-Portalanwendung heruntergeladen und eingebunden werden.
Nach dem Import kann diese als „Scripted Query“ hinzugefügt werden.
Für die Ausführung sind die VMware Anmeldedaten zu hinterlegen.
Anschließend kann die Query ausgeführt und getestet werden.
Je nach Umfang der Query kann es 30 Sekunden bis eine Minute dauern, bis diese erfolgreich abgeschlossen ist. Hier kann es ratsam sein, diese Query zeitlich zu schedulen, die Query also z.B. alle zehn Minuten automatisiert durchläuft. In vielen Fällen ist es gar nicht notwendig, Echtzeitdaten zu verarbeiten.
Jun 29, 2023 by Philip Lorenz
Teil 3 dieser Serie liefert Praxisbeispiele für den Get-View Befehl. So lässt sich Zeit sparen.
PowerCLI ist eine...
Jun 1, 2023 by Philip Lorenz
In Teil 2 dieser Serie erfährst du mehr über die Anwendungsfelder von Templates und über den Umgang mit Snapshots,...
Apr 28, 2023 by Philip Lorenz
In Teil 1 dieser Serie erfährst du mehr über Meta-Daten in VMware und die Nutzung von Tags und Custom Attributes.
...
Berater, Software-Entwickler, Troubleshooter. Aktueller Citrix CTP, VMware vExpert, und Microsoft MVP. Erfinder von AppSense Application Manager. PowerShell-Süchtiger.