Tierney - stock.adobe.com
Automation von VMware vSphere: Cmdlets-Scripts auf PowerCLI
PowerCLI Cmdlets-Scripts bieten mehr Möglichkeiten zur Automatisierung unter vSphere als die Web-GUI.
VMware-Administratoren, die mit komplexen Migrations- oder Konfigurationsaufgaben unter vMotion oder ESXi zu tun haben, sollten PowerCLI Cmdlets-Scripts in Erwägung ziehen, um Dateien von und zu lokalen Maschinen und VMWare VMs zu kopieren.
VMware hat das PowerCLI-Modul auf der PowerShell entwickelt, um den VMware-Administratoren die Möglichkeit zu geben, mit vSphere zu arbeiten und Aufgaben durchzuführen, die ähnlich zu denen im Web Client von vSphere sind. PowerCLI bietet einen effizienteren Programmierzugang, um mit vSphere zu kommunizieren, als die im Vergleich langsamere GUI-Oberfläche.
PowerCLI ist ein einfaches Tool zum Lernen für Anwender der PowerShell, weil die Syntax der Cmdlets-Scripts den bestehenden PowerShell-Methoden folgt. Administratoren können eines der mächtigsten Cmdlets-Scripts – Copy-VMGuestFile – nutzen, um Dateien und Verzeichnisse aus dem Dateisystem einer lokalen Maschine in eine vSphere VM zu kopieren.
Es gibt jedoch einige Voraussetzungen, um Copy-VMGuestFile einzusetzen. Auf den VMs müssen Tools für die Kommunikation mit vSphere installiert sein. Diese PowerCLI-Scripts verwenden also VM-Tools, um Daten hin und her zu kopieren.
Wenn die entsprechenden Hosts ESXi 5.0 oder niedrigere Versionen sind, stehen andere Lösungsmöglichkeiten zur Verfūgung.
Administratoren müssen das Cmdlet auf der 32-Bit-Version der Windows PowerShell einsetzen und Zugang zu ESX mit VM auf TCP VM 902 haben. Sie müssen außerdem über Rechte für VirtualMachine.Interact.ConsoleInteract auf vCenter Server, ESX und ESXi in den Versionen bevor 4.1 oder Rechte für VirtualMachine.Interact.GuestControl auf vCenter Server, ESX und ESXi 4.1 und später verfügen.
Die einzelnen Bestimmungsgrößen oder Parameter der PowerCLI Cmdlet sind fast selbsterklärend. „Source“ und „Destination“ beziehen sich auf die File-Systeme, zu oder von denen die Administratoren Daten kopieren wollen. Am besten ist es, aussagekräftige Pfadnamen anzulegen. Bei dem Parameter „VM“ ist der Name der virtuellen Maschine einzutragen, mit der man arbeiten möchte. Es gibt ein paar Möglichkeiten, die VM zu autorisieren.
Ich empfehle Administratoren, den Parameter GuestCredential zu nutzen, weil er den Object-Typ PSCredential verwendet. Administratoren können -GuestCredential – Get-credential – auf die gleiche Weise wie bei anderen PowerShell Cmdlets einsetzen. Sie können auch einen Guest User und sein Passwort getrennt mit den Cmdlet-Scripts GuestUser und GuestPassword der PowerCLI festlegen. Wenn die lokale und die virtuelle Maschine beide im Active Directory vorhanden sind, ist es wahrscheinlich nicht nötig, bestimmte Guest-Autorisierungen vorzunehmen.
Die Umschalt-Parameter GuestToLocal und LocalToGuest beziehen sich auf die Richtung, in die die Administratoren Daten kopieren wollen. GuestToLocal kopiert von einer VM zu einer lokalen Maschine, und LocalToGuest kopiert von einem lokalen zu einem Gast-VM-Verzeichnis.
In den meisten Fällen müssen Administratoren von vCenter bestätigt sein, bevor sie dieses Cmdlet-Script von PowerCLI verwenden können. Dies ist mit Connect-VIServer möglich. Wenn Administratoren den ESXi-Host, auf dem die VM läuft, genau angeben wollen, können sie dazu den HostCredential-Parameter – Get-Credential benutzen.
Cmdlet-Scripts von PowerCLI nutzen, um Dateien zu kopieren
Mit dem folgenden Beispiel sieht man, wie man mit PowerCLI Cmdlets eine Datei zu einer Gast-VM kopiert. Als erstes verbindet man sich mit vCenter.
Als nächsten Schritt kopiert man mit C:\temp\test.txt eine Datei von der lokalen Maschine zu der Gast-VM. Wenn man die Datei in den Ort C:\Windows\Temp kopieren will, so gibt man dies bei der Zielbestimmung an.
Mit PowerShell remoting überprüft man, ob PowerCLI Cmdlet tatsächlich die Datei zu der Gast-VM kopiert hat.
Administratoren können auf diese Weise auch ein ganzes Verzeichnis kopieren. Dieses Cmdlet-Script der PowerCLI wird alle Dateien, die in dem Verzeichnis enthalten sind, kopieren.
Dateien von VMs zu einer lokalen Maschine kopieren
In einigen Fällen wollen Administratoren vielleicht PowerCLI Cmdlets dazu nutzen, um Dateien und Verzeichnisse von VMs zu einer lokalen oder zu einer Shared Maschine zu kopieren. Hierzu verwendet man die Quell- und Zielparameter in der Weise, dass die Source auf die VM verweist und die Destination ein Directory auf dem lokalen Computer ist. Dann braucht man noch den GuestToLocal-Parameter, mit dem die Richtung gewechselt wird, in der sich die Daten bewegen.
In diesem Beispiel wird das Verzeichnis C:\Users\admin\Desktop in das lokale Directory C:\Temp kopiert. Das Cmdlet-Script wird bei dieser Methode nicht das Verzeichnis selbst kopieren, sondern nur die Inhalte des Verzeichnisses. Um dies zu vermeiden, gibt man den Verzeichnisnamen in dem Zielparameter an und nutzt den -Force-Parameter, um automatisch das Verzeichnis zu erzeugen. Zuerst sollte man jedoch überprüfen, ob dieses Verzeichnis nicht bereits existiert.
In Bild 6 sieht man, dass der Ordner erfolgreich kopiert wurde.
Für VMware-Anwender ist PowerCLI ein wichtiges Tool, mit dem man auf der Programmierebene in einer Weise Aufgaben ausführen kann, die der Webclient so nicht beherrscht. Wenn Administratoren zum Beispiel ESXi-Hosts verwalten, komplexe vMotion-Migrationen durchführen oder viele Server auf einmal konfigurieren wollen, dann sind die Cmdlets-Scripts von PowerCLI die hilfreichsten Tools für solche Arbeiten.
Die Fähigkeit, Dateien von und zu Gast-VMs auf einem lokalen Computer zu kopieren, kann Zeit sparen und bietet eine Alternative zu traditionellen Methoden wie zum Beispiel Server Message Block oder Secure Shell.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!