[Bielefeld-pm] Perl und VMware

Renée Bäcker mailinglisten at renee-baecker.de
Sa Nov 26 06:11:39 PST 2011


Hallo Stefan,

hast Du nicht Lust, das zu einem Artikel für das Perl-Magazin auszubauen
und z.B. mit ein paar Beispielen zu versehen?

- Renée

On 25.11.2011 18:07, Stefan Oberwahrenbrock wrote:
> 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
>
>
>


-- 
Perl-Magazin: http://perl-magazin.de
Perl-Nachrichten: http://perl-nachrichten.de




Mehr Informationen über die Mailingliste Bielefeld-pm