bluebay2014 - stock.adobe.com
REST API von VMware erleichtert die VM-Automatisierung
Anstatt vieles per Hand zu erledigen, erlaubt die REST API von Workstation 15 die Automatisierung diverser Features, was die Arbeit der Administratoren erleichtert.
Die Integration von REST API in VMware Workstation könnte möglicherweise die Arbeit des IT-Teams einschneidend verändern. Anstatt zum Beispiel die virtuellen Maschinen per Hand anzuschalten, kann man nun mehrere Maschinen so programmieren, dass sie sich automatisch einschalten, während man sich in aller Ruhe einen Kaffee zubereitet.
VMWare Workstation verfügte in der Vergangenheit bereits über Programmiersprachen wie Perl und C, aber die Integration gestaltete sich äußerst umständlich. Weil diese Sprachen schwierig zu gebrauchen waren, haben sie die meisten IT-Administratoren nie komplett eingesetzt. Die REST API in Workstation stellt einen sprachneutralen Zugang zur Verfügung, um einen Vorteil aus der ganzen Leistungsstärke der Workstation-API zu erzielen. Neben dem automatischen Ein- und Ausschalten von VMs erlaubt dieses Feature die Automatisierung der VM-Konfiguration sowie von Cloning und ihrer Entfernung. Man kann auch VM-Operationen je nach Bedarf aussetzen, pausieren oder fortsetzen.
Automatisierung in die Management-Strategien der IT-Abteilung einzubauen, ist relativ einfach. Zu Beginn sollte man den folgenden Schritten folgen und die GUI aktivieren, Informationen abfragen und Scripts modifizieren.
Die GUI aktivieren
Die GUI sortiert und gruppiert Aufgaben je nach Bedarf, womit man die Flexibilität erhält, alles zu implementieren, was man für das lokale VM-Management braucht.
Um die GUI zu aktivieren, muss man nicht den Secure Sockets Layer konfigurieren, um etwas lokal auszuprobieren, aber man sollte es im Fall von Remote Access tun.
Um zur Webkonsole und den Kommandos vom Windows-Desktop aus zu gelangen, muss man die richtige URL angeben – in der Regel localhost:86 – und die Zugangsdaten dafür benutzen, die man vorher eingerichtet hat. Wenn man autorisiert ist, kann man die Webseite erweitern und mit verschiedenen Verfahren experimentieren, um sich mit den Möglichkeiten der API von Workstation 15 vertraut zu machen.
PowerShell mit Workstation 15 anwenden
Der nächste Schritt besteht darin, diese Kommandos in einer Art von Automatisierung miteinander zu verketten. Eine der besten Methoden hierfür gibt es in der eingebauten Programmiersprache PowerShell. Man kann die API nutzen, um VM-Aufgaben auf verschiedene Art und Weisen zu automatisieren.
Zuerst erledigt man die Authentifizierung mit dem folgenden Script:
$Username = "stuart"
$apiURL = "http://localhost:8697/api"
$Password = "MyPassw0rd!"
$authInfo = ("{0}:{1}" -f $Username,$Password)
$authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo)
$authInfo = [System.Convert]::ToBase64String($authInfo)
$headers = @{Authorization=("Basic {0}" -f $authInfo)}
$contentStyle = "application/vnd.vmware.vmw.rest-v1+json"
$response = Invoke-RestMethod -Uri $apiURL/vms -Method Get -Headers $headers
$uuid = $response.id
Wenn das einschließlich der Variable $apiURL eingerichtet ist, muss nicht jedes Mal der komplette Pfad eingegeben werden – was effizienter ist.
Standardmäßig zeigt dieser Code zwei Eigenschaften mit der Variable $response an: die VM-ID und die Konfigurationsdatei. Es wird auch jede VM im Einsatz aufgelistet.
Das ID-Feld ist ein eindeutiger VM-Identifikator. Es gibt einen für jede VM, und jede Operation erfordert eine eindeutige ID. $uuid holt den eindeutigen Identifikator von den Rückgabedaten.
Die get- versus put-Methode
Die get-Methode fragt eine VM ab, aber man kann auch die put-Methode benutzen. Man muss sich get als die Art und Weise vorstellen, einfach Informationen abzufragen, und put als die Methode, Änderungen durchzuführen.
An dieser Stelle kann man das Script modifizieren, um die VM anzuschalten. Man kann Invoke-RestMethod verwenden, aber mit put anstelle von get. Um die VM anzuschalten, fügt man on in das Script ein. Für das Ausschalten dann off:
Invoke-RestMethod -Uri "$apiURL/vms/$uuid/power" -Method PUT -Headers $headers -Body on -ContentType $contentStyle
Die folgende Abbildung zeigt die Parameter für die Methode und die ID – in diesem Fall die $uuid-Variable – als eine Zeichenkette. Sie zeigt auch den Typ der Operation an einer Stelle im Script, mit einem Beispiel der erlaubten Werte.
Die Workstation 15 REST API gibt es mit einer GUI, die es erlaubt, mit API-Calls zu experimentieren.
Sobald man weiß, wie die API zu benutzen ist, kann man das mit einer Textdatei, einem for-Loop und dem get-content-Kommando verbinden, um automatisch und ohne manuellen Eingriff verschiedene VMs zu starten oder abzuschalten. Falls gebraucht, kann man auch VMs klonen oder Hardware konfigurieren.