Wie Sie Powershell-Skripts in vCenter Orchestrator integrieren

Wollen Administratoren PowerShell-Skripte mit VMware nutzen, ist etwas Konfigurationsarbeit notwendig. Wir zeigen, wie Sie dabei vorgehen.

Dieser Artikel erklärt, wie Administratoren vCenter Orchestrator im vSphere Web Client registrieren und integrieren,...

um Abläufe innerhalb des Clients auszuführen.

Die Standard-Workflows von vCenter Orchestrator (vCO) sind sehr nützlich und bieten eine Vielzahl von unterschiedlichen Funktionen. Allerdings gibt es eine Reihe von Aufgaben, die Sie vielleicht über PowerShell-Skripte ausführen wollen. Dieser Beitrag zeigt, wie Sie die PowerShell als Plug-in innerhalb von vCO installieren und einen Workflow aufbauen, mit dem Sie dann ein PowerCLI-Skript auf einem Windows-Server ausführen.

Installieren Sie das Powershell-Plug-in

VMware hat in vCO so konzipiert, dass Sie das Produkt mit Plug-Ins erweitern können. Diese Plug-Ins erweitern die Funktionen von vCO. Die Verwendung der PowerShell ist eines dieser Plug-Ins. Ein vCO-Plug-In umfasst in der Regel eine Reihe von Workflows und ein Software-Developers-Kit (SDK), welches wir mit unseren eigenen Arbeitsabläufe verwenden, um verschiedene Teile der VMware-Umgebung zu orchestrieren und zu automatisieren. Sie können Plug-Ins von VMware und Drittherstellern auf der VMware Solutions Exchange-Webseite herunterladen.

Wie unten gezeigt, erfordert das PowerShell-Plug-In, dass wir die Datei "dar." hochladen. Außerdem müssen Sie einige administrative Anmeldeinformationen zum vCO angeben und danach die Installation starten.  Die meisten Plug-Ins erfordern, dass Sie den vCO-Server-Dienst neu starten.  Dazu klicken Sie im Bereich Startup Options auf Restart Service.

Das Installieren des Powershell-Plug-in in vCenter Orchestrator erfolgt über einen Assistenten

Konfigurieren Sie das PowerShell-Plug-In

Sobald das PowerShell-Plug-in installiert ist, starten Sie die Konfiguration. Das PowerShell-Plug-In verwendet einen PowerShell-Host. Ein PowerShell-Host ist eine Windows-Instanz, das die Skripte ausführt, die Sie in der Shell starten. Wir verbinden und authentifizieren uns mit dem PowerShell-Host über Kerberos-Authentifizierung. Es sind noch weitere, wenige Schritte notwendig. Mit diesen bereiten Sie den PowerShell-Host-und vCO für die Verwendung von Kerberos vor. Erst dann können Sie  die PowerShell-Hosts zum Inventory hinzufügen.

Kerberos-Authentifizierung auf Windows-Server einrichten

Auf dem Windows-Server, der als PowerShell-Host dient, müssen Sie ein paar Befehle ausführen, um Windows Remote Management (WinRM) aufsetzen. Das ist erforderlich, um die Remote-Verbindungen von vCO-Go zu einer Eingabeaufforderung zu ermöglichen. Verwenden Sie dazu folgende Befehle auf dem Windows-Server, der als PowerShell-Host arbeiten soll:

winrm quickconfig

winrm set winrm/config/service/auth @{Kerberos="true"}

winrm set winrm/config/service @{AllowUnencrypted="true"}

winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

Einrichten der Kerberos-Authentifizierung auf vCO

Zusätzlich müssen Sie  vCO so anpassen, dass der Dienst Kerberos-Authentifizierung nutzt. Dazu müssen Sie eine Datei krb5.conf verwenden. Leider muss man hier mit Linux-Bash-Umgebungen zurechtkommen, denn diese Konfiguration können Sie nur auf der Kommandozeile des vCO-Server durchführen.

Der Speicherort dieser Datei unterscheidet sich in den verschiedenen Versionen von vCO. In der Version 5.1 wird die Datei unter /opt/vmo/jre/lib/security/krb.5conf gespeichert. In der Version 5.5 finden Sie die Datei unter /usr/java/jre-vmware/lib/security/krb.5conf.

Sie müssen diese Datei erstellen mit dem Inhalt, den Sie unten sehen. Ersetzen Sie die Domäne  LAB.LOCAL mit Ihrem Domain-Namen an den entsprechenden Stellen. Sobald die Datei erstellt wurde, ist es empfehlenswert, Ihre Linux-Berechtigungen auf 644 zu setzen.

[libdefaults]

default_realm = LAB.LOCAL

udp_preferences_limit = 1   [realms]

LAB.LOCAL = {

kdc = dc.LAB.LOCAL

default_domain = LAB.LOCAL

}   [domain_realms]

.lab.local=LAB.LOCAL

lab.local=LAB.LOCAL

PowerShell-Host zum vCO-Inventar hinzufügen

Nach Abschluss der Kerberos-Konfiguration, fügen Sie den PowerShell-Host dem vCO-Inventory zu. Nach dem Start des vCO-Client und der Erweiterung des PowerShell-Ordners, finden Sie einen Workflow mit dem Sie PowerShell-Hosts hinzufügen können. Dieser trägt die Bezeichnung  Add a PowerShell host.

Klicken Sie mit der rechten Maustaste auf diesen Workflow und starten Sie ihn. Sie müssen einige Daten eintragen. Geben Sie den vollqualifizierten Domain-Namen des PowerShell-Host zusammen mit einigen Anmeldeinformationen ein. Stellen Sie sicher, dass Kerberos als Authentifizierungstyp funktioniert und eingestellt ist. Sobald Sie fertig sind, sollten die PowerShell-Hosts sichtbar und aus dem Inventory zugänglich sein. Danach können Sie damit beginnen, einen neuen Workflow für Ihre PowerCLI-Skripte zu erstellen. Dieser Workflow startet dann die Skripte, die Sie hinterlegt haben.

Fügen Sie die Powershell-Hosts zum vCenter Orchestrator Inventar hinzu

Ein Skript, um VMs umzubenennen

Nehmen wir an, Sie wollen ein PowerShell-PowerCLI-Skript mit der Bezeichnung RenameVMsToUpper.ps1 in C:\scripts auf dem PowerShell-Host automatisieren:

param ($vmhost)

$vcenter = "vcentername"

$username = "username"

$password = "password"

$ErrorActionPreference = "silentlycontinue"

Add-PSSnapin VMware.VimAutomation.Core

Connect-viServer $vcenter -user $username -Password $password | out-Null

Get-VMhost $vmhost | Get-VM | foreach-object { Set-VM -VM $_ -Name $_.Name.ToUpper() -confirm:$false }

Das Skript verwendet einen Parameter - eine String-Variable, die den Namen von einem ESXi-Host repräsentiert. Es ruft danach alle virtuellen Maschinen (VMs) auf dem Host auf und ändert die bestehenden Namen in aus Großbuchstaben bestehende Namen um. Natürlich ist das Skript nicht das komplexeste aller Skripte, es zeigt aber wie PowerCLI-Skripte mit vCO automatisiert werden können.

Erstellen Sie den Workflow

Um dieses Skript über vCO auszuführen, erstellen Sie einen neuen Workflow. Um einen neuen Workflow zu erstellen, rechtsklicken Sie auf die Registerkarte im vCO-Client, wählen Sie New Workflow und geben ihm einen Namen. Danach startet der Editor, mit dem Sie den Workflow an Ihre Bedürfnisse anpassen.

Im der Workflow-Editor müssen Sie ein paar Eingabeparameter eingeben. Dazu verwenden Sie die Registerkarte Inputs. Der erste Parameter ist das Host-Objekt, auf dem Sie diesen Workflow ausführen wollen. In diesem Beispiel nennen wir dieses vmhost mit einem Typ aus VC.HostSystem. Da die Skript-Argumente nur einen String-Parameter verwenden können, müssen Sie auch ein Eingangsparameter (vmhostname) vom Typ String erstellen.

Im vCenter Orchestrator Workflow-Editor müssen Sie noch einige Einstellungen vornehmen

Eigenschaften zu Parametern hinzufügen

Haben Sie diese Einstellungen vorgenommen, rufen Sie das Register Presentation auf. Auf dieser Registerkarte haben Sie die Möglichkeit, verschiedene Eigenschaften den Parametern hinzuzufügen, um besser zu definieren, wie sie angezeigt oder berechnet werden. Für diesen Workflow müssen wir ein paar Presentation-Eigenschaften ändern.

Zunächst wollen wir eine Standardwert-Eigenschaft zur vmshostname-Variable hinzufügen. Stellen Sie sicher, dass Sie das Symbol mit dem Doppelpfeil neben dem Wert ausgewählt haben. Das ermöglicht es uns, den Wert mit Standard-Objekt-Graph Navigation Language (OGNL)-Syntax zu berechnen. Für die Definition des Wertes können wir auf die Eigenschaft des Namens unserer vmhost-Variable durch Eingabe von #vmhost.name verweisen. Damit wird die String-Version unseres Host-Namen in der vmhostname-Variable integriert. Das wird benötigt, um das Skript erfolgreich starten und ausführen zu können.

Fügen Sie Presentation-Properties zu der vmhostname-Variablen hinzu

Für die Einstellungen vmhost können wir weitermachen, wie zuvor beschrieben und die Show Parameter Input-Eigenschaft anzeigen und auf false setzen. Der Workflow wurde mit der rechten Maustaste auf einem Host im vSphere Web Client implementiert. Wir brauchen bis hier her keinerlei Auswahl eines Hosts. Dieser wird dem Workflows automatisch angegeben.

Passen Sie die Presentation-Properties für die vmhost-Variable an

Danach öffnen Sie die Registerkarte Schema. Ziehen Sie Invoke and external script in Ihren Workflow. Es erscheint eine Auswahl und die die Möglichkeit, die Parameter der Aktion als Ein- und Ausgänge für den Haupt-Workflow hinzuzufügen und anzuzeigen. Dies erlaubt uns, die Ein-und Ausgänge von Invoke and external script zu verwenden und diese Daten in den neu erstellten Workflow einzubetten. Klicken Sie auf Setup auf der Nachricht in der Nähe des oberen Bildschirmrands, um den Dialog Promote workflow parameters zu öffnen.

Die Eingabeaufforderung im VCO fragt nach, ob Sie die Parameter der Aktion als Ein-und Ausgänge auf dem Haupt-Workflow hinzufügen möchten

Feinabstimmung der Variablen

Das Setup der Variablen ist einfach. Der Host-Variable Mapping-Typ verwendet den Namen des PowerShell-Hosts als Wert. Diese Option ist bereits korrekt gesetzt. Die Variable externalScript, ist ein Wert, der auf den Pfad des Skripts, welches die zuvor beschriebenen Syntax enthält, gesetzt ist. Für jetzt sollten Sie die Option arguments überspringen. Wir werden diesen Punkt mit unserer vmhostname-Variablen im nächsten Schritt abbilden.

Stellen Sie die Input / Output-Parameter auf dem Workflow ein

Um die vmhostname-Variable in den Skript-Argumenten zu geben, gehen Sie auf der Registerkarte Visual Binding zu Invoke an external script. Wie unten gezeigt, setzen Sie die vmhostnam-Variable auf das eingestellte Argument. Ziehen Sie die vmhostname-Variable auf den Arguments-Parameter.

Übergeben Sie die vmhostname Variable in die Skript-Argumente

Vervollständigen Sie die vSphere Web Client Integration

Sie können den Workflow speichern und schließen. Das einzige was übrig bleibt, ist dem vSphere Web Client mitzuteilen, dass der Workflow mit der rechten Maustaste auf einem Host ausgeführt werden kann. Um dies zu tun, öffnen Sie die Registerkarte Manage auf der vCO Startseite im vSphere Web Client auf und gehen Sie zu Context Actions. Klicken Sie auf das +, um eine neue Aktion zu erstellen. Im neuen Dialog Add new workflow durchsuchen Sie die das entsprechende Verzeichnis, suchen Sie den Workflow, klicken auf Add und wählen dann am unteren Rand des Dialog das Host-Objekt. Klicken Sie danach auf OK.

Den vSphere Web Client müssen Sie so einstellen, dass der Workflow dem Kontextmenü hinzugefügt wird

Damit ist die Konfiguration abgeschlossen. Wenn Sie jetzt mit der rechten Maustaste auf einen Host klicken, sollte der RenameVMs-Workflow erscheinen, wenn Sie All vCenter Orchestrator Actions auswählen.

Der Workflow erscheint im Menü All vCenter Orchestrator Actions

Auch wenn dieses Skript einfach ist, soll dieses Tutorial zeigen, wie nützlich vCO sein kann, indem es Bibliotheken der PowerCLI-Skripts auffrischt und erneuert.  Aktionen, die Administratoren häufig verwenden, lassen sich auf diesem Weg einbauen und so schneller und effizienter starten.

Artikel wurde zuletzt im September 2014 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Virtuelle Maschinen: Bereitstellung und Konfiguration

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close