VMware Aria Automation Orchestrator im Praxiseinsatz (2)
In Sachen Automatisierung ist Wiederverwendbarkeit das Ziel – etwa Skripte an verschiedenen Stellen erneut einzusetzen. Zu diesem Zweck stellt VMware Aria Automation Orchestrator (vormals vRealize Orchestrator) sogenannte Actions bereit. Der Fokus in unserem Workshop liegt dabei auf typischen Szenarien, wie sie in der Praxis immer wieder vorkommen. Dies umfasst etwa das Ausführen von Skripten in virtuellen Maschinen, das Registrieren einer VM im DNS, die Integration ins Active Directory oder das Automatisieren von anderen VMware-Produkten. Im zweiten Teil der Workshopserie zeigen wir, wie Sie mithilfe des Guest Script Manager Skripte in einer VM ausführen.
Einsatz des Guest Script Manager
Ein gängiger Anwendungsfall in vielen Unternehmen ist das automatisierte Bereitstellen von virtuellen Maschinen. Das Erzeugen von VMs ist eigentlich relativ trivial und lässt sich in vSphere mittels weniger Clicks erledigen. VMs lassen sich mittels Cloning innerhalb weniger Minuten inklusive Guest Customization erstellen. Solange Sie nicht mehr Funktionalität benötigten, brauchen Sie nicht groß über Automatisierung nachdenken. Falls aber weitere Schritte erforderlich sind, gehen viele Organisationen den Weg, diese manuell auszuführen.
Ein Workflow-Paket, das hier abhelfen kann, ist der Guest Script Manager. Dieser ist nicht Bestandteil des Orchestrators selbst, Sie können ihn aber von der VMware-Code-Seite herunterladen. Das Plug-in hat eine weite Verbreitung und kommt in vielen Firmen zum Einsatz. Es baut auf der Basisfunktionalität von VMware Orchestrator auf. Im Ordner "Library / vCenter / Guest Operations / Processes" gibt es bereits Workflows wie zum Beispiel "Run program in guest", diese erlauben aber kein effizientes Skript-Management. Der Guest Script Manager liefert dieses nach. Damit führen Sie innerhalb einer VM Batch-Dateien, Power-Shell-Skripte oder Kommandos von der Bash aus. Die Skripte verwalten und parametrisieren Sie dann in Orchestrator selbst. Spannend ist, dass Sie Dateien in eine VM hineinkopieren können, um diese dann entweder einfach nur zu nutzen, aber auch dynamisch auszuführen.
Um den Guest Script Manager zu installieren, melden Sie sich regulär in der Orchestrator-GUI an. Auf der linken Seite wechseln Sie dort auf die Seite "Assets / Packages" und klicken dann auf den Button "Import". Anschließend wählen Sie das heruntergeladene Guest-Script-Manager-Paket aus. Der nächsten Überblicksseite entnehmen Sie noch einmal alle Paketinformationen, sehen die Package-Elemente ein und schließen den Vorgang mit "Import" ab.
Skripte in einer VM ausführen
Die importierten Workflows bringen Sie auf den Bildschirm, indem Sie links im Menü auf den Punkt "Workflows" wechseln und die Ansicht oben rechts auf Baumdarstellung ändern. Die Workflows befinden sich im Ordner "Workflows / Guest Script Manager". Für das Management der Skripte existieren im Unterordner "Script Manager" diverse Workflows. Mit "Upload file to vCO Server" laden Sie etwa einzelne Fragmente auf den Orchestrator-Server hoch, um Sie später in den einzelnen Workflows zu verwenden.
Im Folgenden zeigen wir, wie Sie den Guest Script Manager dazu nutzen, um einen Benutzer mittels PowerShell der lokalen Administratorengruppe hinzuzufügen. Als Erstes wechseln Sie in den Ordner "Workflows / Guest Script Manager / Script Management" und führen den Workflow "Add script configuration" aus. Auf der Registrierkarte "Configurations" vergeben Sie einen passenden Namen. Anschließend gehen Sie auf die Registrierkarte "Script". Als Skripttyp ist hier "powershell" auszuwählen. Im Feld "Script Content" hinterlegen Sie dann die eigentliche Logik – ein beispielhafter Code sieht dann aus wie im Listing-Kasten "Workflow zum Hinzufügen eines Benutzers".
Als Timeout geben Sie 120 Sekunden ein. Da das Skript im Hintergrund läuft und keine Interaktivität erfordert, brauchen Sie den Schalter "Script context interactivity" nicht aktivieren. Ein Arbeitsverzeichnis, das sich im Feld "(optional) Script working directory in the guest" auswählen lässt, benötigen Sie ebensowenig. Abschließend klicken Sie "Run".
Sobald Sie das Skript hochgeladen haben, können Sie es an einer virtuellen Maschine ausprobieren. Bei der VM muss es sich um eine Windows-Maschine mit installierten VMware-Tools handeln. Dazu gibt es den Workflow "Run script in guest". Er benötigt Credentials, um sich in der VM anzumelden. Im Feld "Script to run" hinterlegen Sie die eben erstellte Konfiguration. Das obige Skript war parametrisiert und hatte dazu die Variable "$1" encodiert. Um diese durch einen tatsächlichen Wert zu ersetzen, klicken Sie in der Orchestrator-GUI im Bereich "Variables to replace in the script" auf das Plus-Symbol, worauf sich ein Dialog öffnet. Im Feld "stringToReplace" geben Sie "$1" ein, im Feld "replacingString" den tatsächlichen Usernamen. Zum Schluss können Sie den Workflow starten.
Wollen Sie die Ausführung etwas dynamischer gestalten und in einen größeren Workflow einbetten, lässt sich die Logik der Variablen-Ersetzung auch in einen dedizierten Skripting-Task auslagern:
if (replacedVariables == null) replacedVariables = new Array();
var p = new Properties();
p.put("stringToReplace", "$1");
p.put("replacingString", username); replacedVariables.push(p);
Der Scripting-Task benötigt dabei den Benutzernamen als Input und das erzeugte Array wiederum als Output. Anschließend können Sie mit dem erzeugten Array als Input den bekannten Workflow "Run script in guest" antriggern.
ln/Dr. Guido Söldner
Im dritten Teil der Workshopserie schildern wir Ausführen von Workflows mittels REST-API und widmen uns dem Verwalten von DNS-Einträgen. Im ersten Teil schauten wir uns an, wie Sie mit dem VMware Aria Automation Orchestrator Logging und Fehlerbehandlung betreiben.