[Bielefeld-pm] Perl und VMware

Nils Diewald nils at diewald-online.de
Sa Nov 26 15:31:55 PST 2011


Wow - herzlichen Dank!
Mit Virtualisierung hatte ich mich noch nie recht befasst, werde das 
aber wohl mal ins Auge fassen. Insbesondere die Testszenarien erscheinen 
mir sinnvoll. Interessant finde ich an Deinem Bericht insbesondere die 
Tatsache, dass auch hier ActiveState für Windows die Nase vor 
StrawberryPerl hat. In den letzten zwei Jahren scheint sich das Blatt da 
wieder gewendet zu haben.
Liebe Grüße und bis zu unserem Weihnachtsmarkttreffen!
Nils

Am 25.11.2011 18:07, schrieb Stefan Oberwahrenbrock:
> Wie beim letzten Treffen angekündigt, habe ich den Versuch 
> unternommen, das Zusammenspiel von Perl mit verschiedenen 
> VMware-Produkten auszuprobieren. Für Interessierte anbei eine 
> Zusammenfassung meiner bisherigen Erfahrungen hierzu.
>
> Gruß,
> Stefan
>
>
> Überblick
> =========
> Die Produkte von VMware lassen sich grob in zwei Gruppen einteilen: 
> Zum einen in Produkte für End- bzw. Heimanwender und zum anderen in 
> Produkte, die für (komplexere) Unternehmensszenarien gedacht sind.
>
> Zur ersten Gruppe zähle ich "VMware Player", "VMware Workstation", 
> "VMware Fusion" (für Mac-Benutzer) und auch noch den "VMware Server". 
> Während "VMware Workstation" und "VMware Fusion" kommerzielle Produkte 
> sind, kann man sich den "VMware Player" und den "VMware Server" 
> kostenlos von der Web-Seite des Herstellers herunterladen 
> (Registrierung erforderlich). Die Weiterentwicklung des "VMware 
> Server" wurde allerdings bereits vor einer ganzen Weile eingestellt. 
> Die beiden kostenlosen Produkte weisen einen reduzierten 
> Funktionsumfang auf. Alle vier Produkte benötigen ein bereits 
> installiertes Betriebssystem.
>
> Zur zweiten Gruppe zählen ich die Virtualisierungsplattform "VMware 
> vSphere Hypervisor (ESXi)" in Verbindung mit Management-Software wie 
> dem "VMware vCenter Server". Dieses Konglomerat ist in diversen 
> Ausbaustufen kostenpflichtig erhältlich und firmiert aktuell unter dem 
> allgemeinen Begriff "VMware vSphere". Ein "VMware vSphere Hypervisor 
> (ESXi)" kann zwar auch kostenlos heruntergeladen und betrieben werden 
> (Registrierung erforderlich), stellt allerdings spezielle 
> Anforderungen an die Hardware. So ist dedizierte Hardware nötigt (kein 
> bestehendes Betriebssystem als Grundlage) und es müssen bestimmte 
> Mindest-Voraussetzungen erfüllt werden - z. B. im Bereich der 
> Netzwerk- und Festplattenhardware. Im End- bzw. Heimanwenderbereich 
> wird man es daher vermutlich eher selten mit einer "vSphere"-Umgebung 
> zu tun haben.
>
> Dies soll keine vollständige Klassifizierung der Produktpalette von 
> VMware sein, sondern lediglich eine Orientierungshilfe. Es gibt da 
> gerade im vSphere-Bereich noch eine ganze Reihe weiterer Produkte, die 
> hier nicht erwähnt werden.
>
>
> SDKs und APIs
> =============
> VMware stellt diverse Dokumentationen zu APIs und SDKs zur Verfügung 
> [1]. Im Hinblick auf Perl sind hiervon zwei Nennungen besonders 
> interessant: "VMware vSphere SDK for Perl" und "VMware VIX API".
>
> Beim "VMware vSphere SDK for Perl" handelt es sich um ein 
> client-seitiges Framework, das den Zugriff auf die "vSphere Web 
> Services API" ermöglicht. Diese "Services" sind im wesentlichen 
> Management-Funktionen wie z. B. virtuelle Maschine (Guest) hochfahren, 
> herunterfahren, auf Snapshot zurücksetzen etc. In der aktuellen 
> Version 5.0 sind allerdings auch erstmalig Funktionen integriert, die 
> Aktionen innerhalb der virtuellen Maschine ermöglichen [2]. Diese 
> umfassen Funktionen wie z. B. Dateien in die virtuelle Maschine 
> kopieren, Programme starten, Prozesse beenden etc. Hierzu müssen in 
> der virtuellen Maschine die "VMware Tools" installiert sein.
>
> Die "VMware VIX API" ermöglicht seit jeher sowohl die Ausführung von 
> Management-Funktionen als auch das Durchführen von Operationen 
> innerhalb der virtuellen Maschine. Falls jemand bei dem Begriff "VIX" 
> ins Grübeln kommt: Er steht für "Virtual Infrastructure eXtension". 
> Die "VMware VIX API" kommt nicht nur in vSphere-Umgebungen zum 
> Einsatz, sondern findet auch bei Endanwender-Produkten Verwendung. 
> Auch hier müssen in der virtuellen Maschine die "VMware Tools" 
> installiert sein, um diese API vollständig nutzen zu können. Es gibt 
> "Bindings" für verschiedenen Sprachen, u. a. auch für Perl, die die 
> Verwendung der API in eigenen Programmen/Scripten ermöglichen.
>
> In den derzeit aktuellen Version von "VMware vSphere SDK for Perl" 
> (5.0) und "VMware VIX API" (1.11) haben sich Funktionsumfang und 
> Einsatzzweck teilweise vermischt. Dies kann verwirren - es gibt 
> Beiträge, die hierzu Hilfestellung für den Durchblick geben [3].
>
>
> Installation
> ============
> Ich habe beide Produkte auf verschiedenen Betriebssystemen 
> ausprobiert. Dies erfolgte in einer vSphere 4.1 Umgebung mit 
> Management-Server. Ein Mac-System steht mir nicht zur Verfügung. Zu 
> den Installationen folgende Notizen:
>
> "VMware VIX API" unter Windows
> Nach der Installation findet sich im Installationsverzeichnis die 
> Datei "vix-perl.zip". Entpackt man diese, findet sich in der darin 
> enthaltenen README-Datei eine Anleitung zur Installation der 
> Perl-Bindings. Laut der Anleitung werden zwei Dinge benötigt: Eine 
> C-Entwicklungsumgebung und ein installiertes Perl. Die Anleitung legt 
> einem nahe ein ActivePerl in Version 5.10 sowie eine 
> Entwicklungsumgebung von Microsoft zu verwenden. Nach meinen 
> Erfahrungen kann man hier auch ein aktuelles ActivePerl 5.14 
> verwenden, die Community-Edition ist frei verfügbar [4]. Ältere 
> Versionen stehen seitens ActiveState ohnehin nur für die 
> kostenpflichtige Business-Edition zur Verfügung. Auch die 
> Entwicklungsumgebung "Microsoft Visual Studio 2008 Express Editions 
> mit SP1"  wird von Microsoft erfreulicherweise kostenlos zum Download 
> zur Verfügung gestellt [5]. In diesem Szenario funktionierte die 
> Installation unter Windows XP SP3 problemlos. Ich habe es hingegen 
> leider nicht hinbekommen, die Installation mit einer anderen 
> C-Entwicklungsumgebung (MinGW installiert durch ActivePerl) oder einem 
> Strawberry-Perl und dessen Build-Tools erfolgreich abzuschließen.
>
> "VMware VIX API" unter Linux
> Mit einem Debian 6.0 System konnte ich die Installtion zwar scheinbar 
> erfolgreich (mit Warnungen) abschließen. Allerdings konnte ich die API 
> dann in Scripten nicht benutzen - es kam immer die Meldung 
> "HostConnect() failed, 6000 The operation is not supported for the 
> specified parameters".
> Mit einem OpenSUSE-11.4-System verlief die Installtion erfolgreich. 
> Nach der Installation befindet sich die Installationsdatei für die 
> Perl-Bindings unter "/usr/lib/vmware-vix/vix-perl.tar.gz". Nach dem 
> Entpacken und Wechseln in das dabei erzeugte Verzeichnis "vix-perl", 
> kann man das Module mit den drei Schritten "perl Makefile.PL; make; 
> make install" installieren. Hierzu muss das Paket 
> "patterns-openSUSE-devel_C_C++" installier sein. Die Warnungen während 
> des "make" scheinen keine negativen Auswirkungen auf die 
> Funktionalität zu haben. Mein Testscript, das unter Debian nicht 
> funktionierte, arbeitet unter OpenSUSE ohne irgendwelche Anpassungen 
> fehlerfrei.
>
> "VMware vSphere SDK for Perl" unter Windows
> Unter Windows XP SP3 verlief die Installation der aktuellen Version 
> 5.0 problemlos. Das Setup bringt ein leicht angestaubtes ActivePerl 
> 5.8.8 mit. Die getesteten Beispiel-Scripte funktionierten auf Anhieb. 
> Ich habe die Installation nur auf einem Rechner getestet, auf dem 
> vorher noch kein Perl installiert war.
>
> "VMware vSphere SDK for Perl" unter Linux
> Mit einem Debian System konnte ich die Installation leider nicht 
> erfolgreich abschließen. Das Setup von VMware setzt anscheinend ein 
> Linux-System voraus, das mit einem RPM-basierten Paket-Manager arbeitet.
> Mit einem OpenSUSE-11.4-System verlief die Installation erfolgreich - 
> es müssen allerdings bestimmt Voraussetzungen erfüllt bzw. Kniffe 
> angewendet werden:
> a) Die Pakete "patterns-openSUSE-devel_C_C++" und "perl-libwww-perl" 
> müssen installiert sein
> b) Zugang zum CPAN muss eingerichtet sein und funktionieren
> c) Für den Zugriff auf einen vSphere-Management-Server via HTTPS muss 
> die Umgebungsvariable PERL_LWP_SSL_VERIFY_HOSTNAME mit dem Wert 0 
> exportiert werden. Ist dies nicht der Fall, aktzeptiert das zum 
> Einsatz kommende LWP::Protocol::https das selbst signierte Zertifikat 
> des Management-Servers nicht.
>
>
> Code-Beispiele
> ==============
> An dieser Stelle sei erneut auf die Dokumentation des Herstellers 
> verwiesen, über die sich auch Beispiele finden lassen [1]. Ein erster 
> Schritt könnte z. B. das Einschalten einer virtuellen Maschine über 
> die "VMware VIX API" sein [6]. Zudem sind den jeweiligen 
> Installationen ebenfalls Beispiel-Scripte beigefügt, denen man 
> Perl-Code-Schnipsel entnehmen kann.
>
>
> Fazit
> =====
> Schade ist, dass sich sowohl "VMware VIX API" als auch "VMware vSphere 
> SDK for Perl" nur unter bestimmten Betriebssystemen und in bestimmten 
> Software-Konstellationen installieren bzw. verwenden lassen. Hier wäre 
> etwas mehr Plattform-Unabhängigkeit wünschenswert. Kann man diesen 
> Umstand aber in Kauf nehmen und sich auf die funktionierenden 
> Zusammensetzungen beschränken, halten beide Produkte anscheinend, was 
> die Dokumentation verspricht. So konnte ich mittels "VMware VIX API" 
> in einem eigenen Perl-Script virtuelle Maschinen starten und Dateien 
> in die jeweilige Maschine kopieren. Ebenso funktionierte das 
> Hochfahren von virtuellen Maschinen mittels "VMware vSphere SDK for 
> Perl" und dem darin enthaltenen Script "vmcontrol.pl" problemlos. Ein 
> Verwendungszweck für die Produkte könnten z. B. Software-Tests sein, 
> bei denen sich wiederholende Abläufe automatisiert ausgeführt werden 
> müssen. Je nach zur Verfügung stehenden VMware Produkten, können API 
> und SDK hier hilfreich sein.
>
>
> Links
> =====
> [1] http://www.vmware.com/support/pubs/sdk_pubs.html
> [2] 
> http://www.virtuallyghetto.com/2011/07/automating-new-integrated-vixguest.html
> [3] 
> http://www.virtuallyghetto.com/2010/11/what-is-vmware-vix-api-and-its-future.html
> [4] http://www.activestate.com/activeperl/downloads
> [5] 
> http://www.microsoft.com/downloads/de-de/details.aspx?FamilyID=3254C868-BCB9-412C-95C6-D100C872EC60
> [6] 
> http://www.vmware.com/support/developer/vix-api/vix111_reference/lang/perl/functions/VMPowerOn.html 
>
> _______________________________________________
> Bielefeld-pm mailing list
> Bielefeld-pm at pm.org
> http://mail.pm.org/mailman/listinfo/bielefeld-pm



Mehr Informationen über die Mailingliste Bielefeld-pm