VMware PowerCLI Installation auf macOS, Ubuntu und Windows

VMware PowerCLI ist ein Command-Line und Skripting Tool basierend auf Windows PowerShell und bietet mehr als 700 Cmdlets um vSphere, vSphere Update Manager, vCloud Director, vRealize Operations Manager, vSAN, NSX-T, VMware Cloud on AWS, VMware HCX, VMware Site Recovery Manager und VMware Horizon Umgebungen verwalten und automatisieren zu können. Derzeit aktuell ist die Version 11.5.0.

Die PowerCLI eignet sich neben Administration und Automatisierung auch hervorragend zur Erstellung von Reports aller Art. Ob manuell oder per Skript und geplantem Task, mit Versand über Mail oder Ablage auf einem Fileshare, in HTML oder als CSV.

Im Nachfolgenden möchte ich kurz auf die Anforderungen und die Voraussetzungen eingehen, um anschließend die Installation auf verschiedenen Betriebssystemen (macOS, Ubuntu, Windows 10 / 2016 / 2019 / 2012 R2) zu demonstrieren.

Unterstützte Betriebssysteme

VMware PowerCLI 11.5.0 kann auf folgenden Betriebssystemen installiert werden:

OS Type64-Bit
ServerWindows Server 2016
Windows Server 2012 R2
WorkstationWindows 10
Ubuntu 16.04
macOS 10.12

Unterstützte PowerShell Versionen

VMware PowerCLI 11.5.0 ist zu folgenden PowerShell Versionen kompatibel:

  • Windows PowerShell 4.0
  • Windows PowerShell 5.0
  • Windows PowerShell 5.1
  • PowerShell Core 6.x (für Ubuntu und macOS)

Installationsvoraussetzungen

Vor der Installation und Ausführung von VMware PowerCLI 11.5.0 sollte sichergestellt werden, dass die folgende erforderliche Software auf dem System vorhanden is:

OS Type.NET VersionPowerShell Version
Windows.NET Framework 4.5, 4.5.x, 4.6, 4.6.x or 4.7.xWindows PowerShell 4.0, 5.0, or 5.1
Ubuntu.NET Core 2.0PowerShell Core 6.x
macOS.NET Core 2.0PowerShell Core 6.x

Weitere Informationen findet man unter folgendem Link:
https://code.vmware.com/web/dp/tool/vmware-powercli/

Installation unter macOS

Um PowerCLI auf dem Mac nutzen zu können, muss zuerst einmal PowerShell Core in Version 6.x installiert werden.

Bei PowerShell Core (derzeit Version 6.2.4) handelt es sich um die plattformübergreifende (macOS, Linux, Windows), Open Source Variante der PowerShell, die auf .NET Core 2.1 (ebenfalls Open Source) basiert und im Gegensatz zur Windows PowerShell (derzeit Version 5.1) aktiv weiterentwickelt wird.

Der Download steht hier zur Verfügung:
https://github.com/PowerShell/PowerShell

Unter „Get PowerShell“ wählt man für macOS ab Version 10.13 das gewünschte .pkg entweder stable oder preview. Ich entscheide mich in diesem Fall für die Stable-Variante powershell-6.2.4-osx-x64.pkg. Alternativ wäre auch eine Installation über Homebrew möglich, auf das ich in diesem Beitrag allerdings nicht weiter eingehen möchte. Eine Anleitung für PowerCLI über Homebrew findet man hier.

Ein Doppelklick auf den Download wird leider vom macOS Gatekeeper abgefangen.

Abhilfe schafft hier ein Rechtsklick bzw. Sekundärklick auf den Installer und durch bestätigen von Öffnen wird die Installationsroutine schließlich auch gestartet.

Nach erfolgreicher Installation

kann man noch darüber entscheiden, ob man den Installer behalten oder in den Papierkorb legen möchte und findet zudem im Launchpad einen PowerShell Starter.

Alternativ lässt sich PowerShell Core durch Eingabe von

pwsh

in einem Terminal starten. Mit

$PSVersionTable

kann man sich einen Überblick über die eingesetzte Version verschaffen. Ob Skript-Ausführung (notwendig für PowerCLI) erlaubt ist, lässt sich mit

Get-ExecutionPolicy

prüfen. Die Execution Policy bei PowerShell Core ist standardmäßig auf Unrestricted gesetzt und kann auch nicht geändert werden.

Die Installation von PowerCLI erfolgt mit folgenden Befehl:

Install-Module -Name VMware.PowerCLI -Scope CurrentUser

Der angegebene Parameter -Scope CurrentUser bewirkt, dass PowerCLI auch ohne Administratorrechte installiert werden kann. Die Frage zum Untrusted repository ‚PSGallery‘ wird mit Y bestätigt und im Anschluss werden die PowerCLI Module geladen und installiert.

Hinweis:
Wenn man eine bestimmte, ältere Version der PowerCLI oder einer Dependency installieren möchte, kann man sich alle verfügbaren Versionen folgendermaßen anzeigen lassen und anschließend die gewünschte installieren:

Find-Module VMware.PowerCLI -AllVersions
Install-Module -Name VMware.PowerCLI -Scope CurrentUser -RequiredVersion 11.5.0.14912921

Als nächsten Schritt sollte man noch folgendes durchführen:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $true -InvalidCertificateAction Ignore

Zum einen entscheidet man damit über die freiwillige Teilnahme am VMware Customer Experience Program ($true oder $false) und zum anderen ignoriert man damit Zertifikatswarnungen, die beim Verwenden von den standardmäßigen Self-signed bzw. VMCA Zertifikaten von vCenter, ESXi, … auftreten und eine erfolgreiche Verbindungsherstellung unterbinden würden. Bei PowerShell Core nur Fail oder Ignore möglich. Näheres hierzu erhält man mit

help about_ceip

und

help about_invalid_certificates

Die PowerCLI-Config kann man sich mit

Get-PowerCLIConfiguration

anzeigen lassen. Ansonsten findet man sie auch in der Datei PowerCLI_Settings.xml (s.unten).

Durch Eingabe von

Get-Module -Name VMware.* -ListAvailable

kann man sich die installierten Module inkl. Versionen anzeigen lassen.

Nun aber endgültig zum eigentlichen Start und der Nutzung der PowerCLI. Leider sind derzeit noch nicht alle PowerCLI Module mit PowerShell Core kompatibel, wodurch beim Start

Import-Module VMware.PowerCLI

folgende Fehlermeldung auftritt:

„Exception: VMware.VimAutomation.License module is not currently supported on the Core edition of PowerShell.“

Derzeit noch nicht unter PowerShell Core supportet:

  • VMware.VimAutomation.License (Provides the Get-LicenseDataManager cmdlet for managing VMware License components.)
  • VMware.VimAutomation.vROps (Provides cmdlets for automating vRealize Operations Manager features.)
  • VMware.VimAutomation.HorizonView
  • VMware.ImageBuilder (Provides cmdlets for managing depots, image profiles, and VIBs.)
  • VMware.DeployAutomation (Provides cmdlets that provide an interface to VMware Auto Deploy for provisioning physical hosts with ESXi software.)
  • VMware.VumAutomation (Provides cmdlets for automating vSphere Update Manager features.)

Wer eines dieser Module benötigt ist leider noch auf die Verwendung der Windows PowerShell angewiesen.

Für PowerShell Core wird in den Release Notes von PowerCLI daher als Workaround empfohlen die gewünschten, unterstützen Module direkt aufzurufen.

Import-Module VMware.VimAutomation.Core

Etwas eleganter ist allerdings die Variante die inkompatiblen Module im PowerCLI Start-Skript auszukommentieren:

vi ~/.local/share/powershell/Modules/VMware.PowerCLI/11.5.0.14912921/VMware.PowerCLI.psd1

Tipp: In vim/vi kann man Zeilennummern und Syntax Highlighting mit

:set number -> Enter
:syntax on -> Enter

aktivieren.

Anschließend lässt sich PowerCLI auch mit PowerShell Core wie gewohnt und ohne Fehlermeldung starten.

Import-Module VMware.PowerCLI

Die Konfigurationsdatei PowerCLI_Settings.xml findet man unter diesem Pfad:

~/Library/Preferences/VMware/PowerCLI/

Installation unter Ubuntu 18.04

Die Installation von PowerShell und PowerCLI erfolgt auf einem vollständig gepatchten Ubuntu 18.04.4 LTS (Bionic Beaver).

Ich verwende analog zur macOS Installation hier ebenfalls den direkten Download anstelle eines Repositorys. Wer jedoch lieber die Paketquelle verwenden möchte findet die Anleitung dazu hier.

In einem geöffneten Terminal oder auf der Console werden folgende Befehle ausgeführt:

cd ~/Downloads
wget -q https://github.com/PowerShell/PowerShell/releases/download/v6.2.4/powershell_6.2.4-1.ubuntu.18.04_amd64.deb

Im Anschluss wird PowerShell Core installiert:

sudo dpkg -i powershell_6.2.4-1.ubuntu.18.04_amd64.deb

Bei der Abfrage des sudo Passworts bitte das Kennwort aktuellen Benutzers eingeben.

Die dpkg-Fehlermeldung war so zu erwarten, da powershell Abhängigkeiten zu anderen Paketen hat, die mit nachfolgendem Befehl aufgelöst werden können:

sudo apt-get install -f

Die Frage „Möchten Sie fortfahren?“ mit J bestätigen.

Nach Installation der fehlenden Pakete liblttng-ust-ctl4, liblttng-ust0, liburcu6 wird auch powershell erfolgreich eingerichtet und PowerShell Core kann gestartet werden:

pwsh

Die Installation von PowerCLI erfolgt analog zu macOS (s. oben).

Die Konfigurationsdatei PowerCLI_Settings.xml findet man unter diesem Pfad:

~/.local/share/VMware/PowerCLI/

Installation unter Windows 10

Unter Windows 10 (getestet unter Version 1909 OS build 18363.720) sind alle notwendigen Voraussetzungen bereits vorhanden. Theoretisch könnte man zwar auch unter Windows die PowerShell Core installieren und parallel zur Windows PowerShell nutzen, aber aufgrund der noch unvollständigen Unterstützung einiger PowerCLI Module (s. oben) macht dies derzeit nur bedingt Sinn.

$PSVersionTable

Die Windows PowerShell liegt hier in Version 5.1.18362.628 vor und erfüllt somit alle Anforderungen. Einzig die Execution Policy sollte vor der Installation von PowerCLI noch geprüft werden.

Get-ExecutionPolicy

Standardmäßig steht die Execution Policy auf Restricted und würde somit die Ausführung von PowerCLI unterbinden. Mit folgendem Befehl lässt sich dies korrigieren:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Die Installation von PowerCLI erfolgt dann mit:

Install-Module -Name VMware.PowerCLI -Scope CurrentUser

Die Abfragen zu „NuGet provider“ und „Untrusted repository“ einfach mit „Y“ [Yes] beantworten.

Nachdem die Installation abgeschlossen ist, setzt man noch die Parameter für CEIP (Customer Experience Improvement Program) und die Zertifikatsprüfung. Bestätigung auch hier mit „Y“ [Yes] (Erläuterung s. oben)

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $true -InvalidCertificateAction Ignore

Abschließend startet man die PowerCLI mit folgendem Cmdlet:

Import-Module VMware.PowerCLI

Installation unter Windows Server 2016 / 2019

Auch Windows Server 2016 und 2019 erfüllen bereits alle Voraussetzungen für die Installation von PowerCLI.

$PSVersionTable

Server 2016 (Version 1607 OS build 14393.3564):
PSVersion = 5.1.14393.3471

Server 2019 (Version 1809 OS build 17763.1098):
PSVersion = 5.1.17763.1007

Get-ExecutionPolicy

Die Execution Policy ist unter Server 2016 und 2019 bereits standardmäßig RemoteSigned.

Ansonsten erfolgt die Installation der PowerCLI analog zu Windows 10 (s. oben).

Installation unter Windows Server 2012 R2

Bei Windows Server 2012 R2 (Version 6.3.9600 Build 9600) verhält es sich etwas anders. Ein

$PSVersionTable

ergibt, dass Windows PowerShell hier in der Version 4.0 vorliegt. Was erstmal eigentlich kein Problem darstellt, da offiziell unterstützt, allerdings erkennt Windows PowerShell 4.0 das Install-Module Cmdlet nicht. Fehlermeldung: „InstallModule : The term ‚InstallModule‚ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, …

Dieser Umstand lässt sich durch die Installation des Windows Management Framework 5.1 beheben. Den Download findet man hier:

https://www.microsoft.com/en-us/download/details.aspx?id=54616

Hier wählt man den passenden Download für 2012 R2 „Win8.1AndW2K12R2-KB3191564-x64.msu“ aus und klickt auf Next. WMF 5.1 steht übrigens auch für Windows 7 SP1, 8.1, Server 2008 R2 SP1 und 2012 zur Verfügung.

Die heruntergeladene Datei wird anschließend mit Administrator-Rechten wie gewohnt installiert. Zum Abschluss muss ein Neustart durchgeführt werden.

Nun meldet man sich mit dem Benutzer, unter dem PowerCLI installiert und genutzt werden soll, an.

Prüft mit

$PSVersionTable

erneut die PowerShell Version (jetzt 5.1.14409.1005) und stellt mit

Get-ExecutionPolicy

sicher, dass RemoteSigned konfiguriert ist.

Die Installation von PowerCLI verläuft identisch zu Windows 10 (s. oben).

Share this

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.