[AdSense-A]
Einleitung
Vsphere ist eine von vmware entwickelte Software die ausgelegt ist für die Realisierung einer Cloud-Infrastruktur.
Standardgemäß liefert vmware diesbzgl. eine sehr gute Dokumentation für die Öffentlichkeit mit aus, sowie entsprechende
Sourcecode snippets, allerdings auch da nur für C# und Java.
Wer allerdings die Absicht hat, mittels PHP für beispielsweise eine Webanwendung die Vsphere-API in seine eigene Anwendung zu integrieren,
hat diesbzgl. meistens einen höheren Overhead bei der Implementation.
Abhilfe dafür schafft vmwarephp, es bietet Ihnen eine weitere Abstraktionsebene zu SOAP.
vmwarephp
Mittels vmwarephp können Sie fast ohnerlei Kenntnisse von SOAP die Integration von Vsphere in Ihre Anwendung durchführen.
Entsprechende SOAP-Funktionen können gecallt werden wie jede andere Methode einer Klasse auch.
vmwarephp setzt auf, auf zwei Libraries oder eher gesagt zwei Mini-Frameworks:
Mockery (https://packagist.org/packages/mockery/mockery) und Hamcrest (https://code.google.com/p/hamcrest/)
die Sie beide für Ihre Anwendung benötigen.
Entweder beziehen Sie die beiden Frameworks via Composer, oder Sie laden sich diese manuell herunter.
Composer:
{ "require": { "vmwarephp/vmwarephp": "dev-master" } }
Anwendung von vmwarephp in einem Projekt
Zu Beginn unabhängig von der Methode die Sie aufrufen wollen, ist es notwendig ein vhost Objekt zu erstellen.
Jedes vhost Objekt ist keine VM, sondern das Main-Objekt für die Nutzung von vspherephp. Es benötigt drei Übergabeparameter.
– Hostname/IP-Adresse (von vsphere)
– Username
– Passwort
die beiden letzteren Übergabeparameter können ebenfalls Kundendaten sein, müssen nicht zwangsläufig Administrator-Konten,
Ihres Windows-Servers sein.
$oVhost = new \Vmwarephp\Vhost("192.168.1.1", "username", "password");
Die Grundlegende Kommunikation mit der SOAP-Vsphere-API können Sie sich wie folgt vorstellen:
Die Grundlegende Kommunikation mit der SOAP-Vsphere-API können Sie sich wie folgt vorstellen:
http://vadimcomanescu.files.wordpress.com/2013/03/vmwarephp_latest1.png
Über das oben beschriebene Objekt $vhost können Sie nun weitere Methoden nutzen.
Wenn sie VMs auflisten möchten wäre der dazugehörige Weg folgender:
$oVirtualMachines = $oVhost->findAllManagedObjects('VirtualMachine', array());
Oder im Falle einer einzelnen VM:
$oVirtualMachine = $oVhost->findManagedObjectByName('VirtualMachine', $sVMName);
Darüber hinaus haben Sie natürlich auch die Möglichkeit alle anderen Methoden die in der Vsphere-Dokukementation nachzulesen sind, zu verwenden, wie z.B:
$oVirtualMachineResult = $oVirtualMachine->PowerOfffVM_Task();