mac | VMware Fusion über die Kommandozeile steuern

Wie schon hier geschrieben, nutze ich Windows in einer Virtuellen Maschine.  Mit VMware Fusion 2.0 unterstützt auch die Mac-Variante des Desktop-Virtualisierers vmrun – einer Möglichkeit vom Hostsystem per Kommandozeile das Gastsystem zu steuern. Ich will in diesem Beitrag kurz aufzeigen, welche Möglichkeiten sich ergeben – wer es genauer wissen möchte kann bei VMware nachschauen.

Zuerst aber muß man wissen, wo man den Befehl vmrun finden kann – in /Library/Application Support/VMware Fusion/

Um den Befehl global ausführen zu können muß man den Pfad zur PATH-Variablen hinzufügen

export PATH="$PATH:/Library/Application Support/VMware Fusion"

Allgemeines

Zuerst man vmrun sagen mit welchem Typ er sich verbinden soll.

vmrun -T fusion

Als nächstes kommt die Authentifizierung am Gastsystem

vmrun -T fusion -gu USERNAME -gp USERPW

Nun kommen wir zu den einzelnen Kommandos, welche man absetzen kann. Als Parameter fast jeden Kommandos muß man das VMX-File der entsprechenden virtuellen Maschine angeben. Bei VMware Fusion befinden sich diese im Unterordner in /Users/USERNAME/Documents/Virtual\ Machines.localized/ Um sich alle bekannten VMs anzeigen zu lassen nutzt man am besten

vmrun -T fusion list

Ausführen von Programmen im Gastsystem

Am Interessantesten für mich ist die Möglichkeit Befehle direkt in der virtuellen Maschine absetzen zu können. Dafür gibt es das Kommando runProgramInGuest. Der komplette Syntax lautet:

vmrun -T fusion -gu USERNAME -gp USERPW runProgramInGuest ~/Documents/Virtual\ Machines.localized/XP/xp.vmx BEFEHL

Sollte die Befehlszeile etwas länger sein und mehrere Parameter enthalten, so muß der Befehl in Hochkommas gesetzt werden. Enthält wiederrum ein Parameter auch schon ein Hochkomma, so muß dem gesamten Befehl ebenso ein weiteres Hochkomma gegeben werden. Faustregel: Für jedes Hochkomma-Paar im Befehl selber muß dem gesamten Parameter selber ein extra Hochkomma hinzugegeben werden.

Um, wie in diesem Beitrag geschrieben, dem Active Directory meines Windows-Servers alle zur Zeit gültigen EMail-Adressen zu entlocken nutze ich folgende Befehlszeile

./vmrun -T fusion -gu ADMIN@DOMAIN.DE -gp GANZGEHEIM runProgramInGuest ~/Documents/Virtual\ Machines.localized/Windows\ Server\ 2003\ Small\ Business.vmwarevm/Windows\ Server\ 2003\ Small\ Business.vmx ""ldifde.exe -m -n -g -f "C:\Mailgw\recipient.txt" -r "(mailnickname=*)" -l proxyAddresses""

Wenn ich gleich den Upload noch hinzufügen will, lege ich in den Pfad c:\mailgw auf dem Windows-Server eine Batch-Datei, die mir nach und nach alles ausführt (also Extract der Emailadressen und Kopieren per pscp).

./vmrun -T fusion -gu ADMIN@DOMAIN.DE -gp GANZGEHEIM runProgramInGuest ~/Documents/Virtual\ Machines.localized/Windows\ Server\ 2003\ Small\ Business.vmwarevm/Windows\ Server\ 2003\ Small\ Business.vmx "c:\mailgw\userextract.cmd"

Backup einer virtuellen Maschine

Um meinen virtuelle Windows-Server zu sichern nutze ich zur Zeit Acronis Trueimage innerhalb der VM und sichere auf eine externe Platte, welche per Shared Folder in die VM eingebunden ist. Das ist natürlich „von hinten durch die Brust ins Auge“, war aber auf die Schnelle das Naheliegendste. Wie in mac | Einrichtung eines Backups geschrieben ist es ein Wunsch von mir das Backup direkt aus OSX heraus zu starten. Dies könnte ich jetzt mit dem Absetzen eines Befehls erreichen (ob Trueimage das untersützt wäre noch zu recherchieren) oder aber ich erstelle ein Snapshot per vmrun

./vmrun -T fusion snapshot ~/Documents/Virtual\ Machines.localized/Windows\ Server\ 2003\ Small\ Business.vmwarevm/Windows\ Server\ 2003\ Small\ Business.vmx MySnapshot

Zu Testen wäre jetzt, wie groß die Snapshots sind und ob die VM während der Erstellung erreichbar ist oder aber gestoppt bzw. heruntergefahren werden muß.

Nutzt Ihr vmrun und wenn ja, wie?

Ein Gedanke zu „mac | VMware Fusion über die Kommandozeile steuern

  1. Pingback: controlc.de» Blogarchiv » mac | Console einer virtuellen Maschine remote holen

Schreibe einen Kommentar

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