Antwort: So wie ich das sehe, kann ich dieselbe Funktionalität
auch mit "vmrun" erreichen.
Einen Teil, 'vmrun' bietet den Start einer VM mit einem 'path to
vmx file', zudem ist es bei Betrachtung einer ubergreifeden Loesung
- Server-1 + VW-6/7 - in verschiedenen Varianten vorhanden, bzw. fuer
den Player-1/2/3 gar nicht. Das Tool mit dem Aufruf 'ctys -t vmw ...'
erkennt die jeweilige Produkt-Version und benutzt automatisch die
richtige Einstellung.
Intern wird der jeweils richtige Aufruf erzeugt und ausgefuehrt,
dieser kann mit der Debugging-Option '-d pf' (PrintFinal) angezeigt
werden.
Fuer den Server wird intern dann ein Aufruf von 'vmrun' erzeugt mit einem
"start, stop, reset,i pause,i suspend".
Es sind zudem weitere Tools und Funktionen vorhanden.
=======================================================================
-> Jetzt zum Unterschied - zunechst ein Ueberblick - "ein Paar Saetze":
=======================================================================
Die Schnittstelle fuer 'ctys' unterstuetzt alle VMware-Produkte,
zusaetzlich QEMU, KVM, VirtualBox, und Xen, demnaechst auch ESX und
XenServer. Evtl. Auch ESXi. Daher der Ansatz eine einheitliche
Schnittstelle zu definieren.
Jedes dieser Tools hat z.B. unterschiedlische 'IDs' zur Addressierung
einer VM oder besser VM-Konfiguration - oder auch keine. Die
VM-Konfiguration ist hier uebergreifend ausgedrueckt ein
''Frontend-Auruf', also der gemeinsame Nenner: Aufruf-Parameter.
Die Schnittstelle 'ctys' bietet hier eine Obermenge bei der Addressierung
und bildet intern - dynamisch - das Mapping, wenn der Parameter bei dem
jeweiligen Produkt fehlt.
Unterstuetzte Addressierung einschliesslich headless+client(remote/local),
vereinheitlicht und erweitert alle folgenden Varianten:
VMware-Server-1 <vmx-path>, vmrun(A)+vmware
VMware-Server-2 <vmx-path>, vmrun(B)+vmware
+vmware-vmrc(standalone-console)
+<browser> mit http/https-Port
VMware-WS6 <vmx-path>, vmrun/vmware-cmd(?)(C)+vmware
+vncviewer(mit Port)
VMware-WS7 <vmx-path>, vmrun/vmware-cmd(?)(D)+vmware
+vncviewer(mit Port)
VMware-Player-1 <vmx-path>, vmplayer
VMware-Player-2 <vmx-path>, vmplayer
VMware-Player-3 <vmx-path>, vmplayer
QEMU <vhdd-path>+call-optionen
KVM(=QEMU) <vhdd-path>+call-optionen
VirtualBox <vhdd-path>,UUID,VirtualBox,VBoxManage, ....
Xen <conf-path>,xm,virsh,vmm
(demnaechst ESX, ESXi, XenServer, OpenVZ)
Konkret heisst dies z.B. mit der Schnittstelle 'ctys' kann nun eine
VMware-VM mit einer sog. <machine-address> addressiert werden, naemlich:
<vmx-path>
<DisplayID>
UUID
MAC-Addresse
Das funktioniert auch ohne eine Mapping-Datenbank durch einfaches Suchen
mit 'find', es koennen mehrere Datei-Baeume angegeben werden, sonst wird
konfigurierter Default(z.B. HOME) benutzt.
D.h. die Schnittstelle 'ctys' benutzt letztendlich automatisch die jeweils
richtige Produkt-Schnittstelle - z.B. vmrun - erzeugt jedoch alle Parameter
aus der erweiterten Addressierung.
So kann z.B. eine VM einfach mit
'ctys -t vmw -a create=l:tst509 myUser@myHost'
gestartet weren - fuer alle VMWare-Produkte. Der Aufruf 'sagt':
Starte(-a create=) die VMware-VM mit dem Label(l: = DisplayID) 'tst509'
auf dem Rechner 'myHost' mit dem Account 'myUser'.
Hinweis: '...l:tst509,reuse' verwendet bereits laufende VM, sonst erfolgt
wenn bereits gestartet Fehlermeldung: 'Gibts schon'.
Die internen Aufrufe 'vmrun' und hier 'vmware-rc' als Standalone-Konsole
sehen so aus:
/usr/bin/vmrun -T server -h
https://localhost:8333/sdk start \
'[vmpool] vmpool05/vmw/test..../tst509/tst509.vmx
cd /opt/vmware/vmware-rc-c64&&/opt/vmware/vmware-rc-x64/vmware-rc \
-u myUser -h localhost:8333 -M 16&
D.h. deutlich mehr 'wahre Tipparbeit'.
Dazu wird fuer alle Produkte eine einheitlichie Verbindung aufgebaut, d.h.
es wird ausschliesslich OpenSSH verwendet und gegebenefalls ein SSH-Tunnel
aufgebaut. Das erhoeht die Anzahl der internen Aufrufe deutlich.
Anmerkung: Es wird ausschliesslich SSH verwendet, nicht SSL, hat Vorteile
bei SSO - Single-Sign-On, z.B. mit Kerberos.
Im Falle eines lokalen Clients mit entferntem 'headless' Server-2
wuerde der Aufruf:
'ctys -t vmw -a create=l:tst100 -L CF myUser@myHost'
einen entfernten Server starten, einen OpenSSH-Tunnel erzeugen und
abschließend lokal die Default-Konsole starten. Die Option '-L CF'
bedeutet hier locality(-L) ist CONNECTIONFORWARDING(CF).
Default ist '-L DF' fuer DISPLAYFORWARDING.
Hier ist Default-Konsole z.B. VMWRC(vmware-rc). Entspricht:
'ctys -t vmw -a create=l:tst509,console:vmwrc -L CF myUser@myHost'
Es werden hier z.B. auch Benutzer und Ports etc. korrekt gesetzt, bei
'vmrun' muessten diese manuell gesetzt werden.
Der Login in das Gast-System erfolgt analog, z.B. eine VNC-Session:
'ctys -t vnc -a create=l:tst100Login myiGuestUser@myGuestMachine'
Dazu kommt noch die vollstaendige Automatisierung durch:
1. automatische Erfassung aller VMs in eine Datenbank, von beliebig
vielen Rechnern, belibigen Produkten.
2. der grafische Start durch ein Datenbank-Frontend unter Gnome.
3. der grafische Start von Guest-Sessions durch ein Datenbank-Frontend
unter Gnome.
Siehe auch Use-Case 'ctys-uc-Gnome'.
Wiederum einheitlich fuer ALLE unetrstuetutzten Produkte, einschliesslich
physikalischer Maschinen.
Wieterhin kommt dazu der Datenbank-Frontend 'ctys-vhost' mit dem man sich alle
(automatosch) inventarisierten VMs anzeigen lassen kann. Ich selbst nutze
ca. 300 VMs ueber NFS sind dies - je nach Option - ca.1000 Datenbak-
Eintraege, entspricht Ausfuehrungs-Pfade(Host+Pathname).
Die Antwwortzeit bei Verwendung von z.B. 'tst509' - der DisplayID -
ist ca. 0.8Sekunden fuer DB-Abfrage, Start ca. 10-60Sekunden (rechnerabhaengig).
Die Zahlen sind richtig und nachpruefbar - 300VMs mit NFS ca. 1000Pfade!
Tests auch mit 3000Pfaden.
Das System kann in der jetzigen Version 'locker' 5000VMs und mehr handhaben.
Oder natuerlich nur 10 fuer das Home-Office.
===========
-> Resumee:
===========
Der eigentliche Aufruf
'ctys -t vmw -a create=l:tst100 myUser@myHost'
ist deutlich einfacher, flexibler und leistungsfaehiger. Es wird die
'interne Komplexitaet' gekapselt und die Funktionalitaet erweitert.
Natuerlich wird intern die Produkt-Schnittstelle benutzt.