Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einführung
2 Virtuelle Maschinen im Unternehmen
3 Virtualisierungssoftware – eine Marktübersicht
4 Auswahl der möglichen virtuellen Maschine
5 Auswahl der richtigen Virtualisierungssoftware
6 Auswahl der richtigen physikalischen Infrastruktur
7 Installation und Update des Wirt-Systems
8 Verwaltung der Virtualisierungssoftware
9 Virtuelle Netzwerke
10 Virtuelle Festplatten
11 Erstellung einer virtuellen Maschine
12 Verwaltung der virtuellen Maschinen
13 VMware VirtualCenter
14 Skriptierung und Programmierung unter VMware und MS Virtual Server
15 Backup, Restore und Disaster Recovery
16 Templates (VM-Vorlagen)
17 Zusatzsoftware
18 Nützliche Adressen im Web
A Clustereinrichtung und Beispielumgebungen
B Kommandozeile und wichtige Dateien
C Häufige Fragen
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
VMware und Microsoft Virtual Server von Dennis Zimmer
Virtuelle Server im professionellen Einsatz
Buch: VMware und Microsoft Virtual Server

VMware und Microsoft Virtual Server
geb., mit CD
612 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-701-2
Pfeil 14 Skriptierung und Programmierung unter VMware und MS Virtual Server
Pfeil 14.1 VMware
Pfeil 14.1.1 Kommandozeile
Pfeil 14.1.2 VMware Scripting API
Pfeil 14.1.3 VMware CIM SDK
Pfeil 14.1.4 VMware Virtual Infrastructure SDK
Pfeil 14.2 Microsoft Virtual Server
Pfeil 14.2.1 Kommandozeile und VB Skript
Pfeil 14.2.2 COM-Schnittstelle

14 Skriptierung und Programmierung unter VMware und MS Virtual Server

Neben der manuellen Arbeit stehen Ihnen sowohl unter den VMware-Serverprodukten als auch dem Microsoft mit den Virtual Server APIs Programmierschnittstellen für die gängigen Programmiersprachen zur Verfügung, die für den »Profi« interessant sind. Sie werden um Kommandozeilentools ergänzt, mit denen ein Batch-Ablauf skriptiert werden kann.

Wie Sie in Kapitel 12, Verwaltung der virtuellen Maschinen, schon gelesen haben, können Kommandozeilen-Skripte innerhalb von virtuellen Maschinen durch die VMware Tools ausgeführt werden. Diese werden dann anlässlich bestimmter Ereignisse wie z. B. beim Herunterfahren des Gast-Betriebssystems ausgeführt. Allerdings ist dies nur die halbe Miete. Viel wichtiger kann die Skriptierung oder Programmierung der Virtualisierungsserver selbst sein, weil hier zum einen deutlich mehr Funktionen zur Verfügung stehen, zum anderen aber auch eine zentrale Steuerung von vielen und nicht nur von einzelnen VMs möglich ist.

Es gibt viele Gründe, die dafür sprechen, Arbeitsabläufe durch Automatismen zu vereinfachen. Vor allem sich zyklisch wiederholende Prozesse können durch ein Skript oder ein Programm deutlich schneller und präziser ablaufen. Gerade Administratoren haben bei manchen Ereignissen nicht die Zeit, sich noch um sämtliche Schritte eines Ablaufes zu kümmern. Aber auch seltener vorkommende Prozesse können sicherer ablaufen, wenn kein manuelles Eingreifen mehr notwendig ist.

Beispiel: Sie betreuen 20 VMware ESX Server mittels VirtualCenter und VMotion. Bei Erreichen einer bestimmten CPU-Auslastung sollen einige der virtuellen Maschinen auf einen anderen ESX Server verschoben werden und nach einer gewissen Zeit wieder zurück. Ein manueller Eingriff würde auf Dauer sehr lästig werden und viele Ressourcen binden.

Zwar kommen Sie in diesem Beispiel zu einem großen Teil mit Bordmitteln (Event-Steuerung des VirtualCenters) aus, aber spätestens beim zeitgesteuerten Zurückschieben wird es knifflig. Hier würde ein Programm helfen, das die Server überwacht und dem VirtualCenter den Befehl zum Verschieben und Zurückschieben geben würde. Natürlich muss es nicht immer so komplex werden. Einfachere Beispiele wären die Sicherung einer laufenden VM eines ESX Servers mittels REDO Log. Hier wird ein REDO Log über die Kommandozeile an die Festplattendatei angehängt, das die Originalfestplattendatei ihren Leseschutz verlieren lässt, wodurch wir sie dann sichern können. Sobald gesichert wurde, wird das REDO Log mit der Originalfestplattendatei verschmolzen. Diese Prozedur jedes Mal manuell durchzuführen, wäre unnötige Zeitverschwendung. Es gibt viele dieser Beispiele, und mit eine wenig Fantasie und den Erkenntnissen der folgenden Seiten werden Ihnen wohl auch genügend einfallen.

Aber auch Microsoft stellt Administratoren und Programmierern mächtige Programmierschnittstellen zur Verfügung, um kleinere und größere Abläufe zu automatisieren. Ebenso sind durch die Schnittstellen eigene Verwaltungsprogramme möglich, mit denen beispielsweise eine einheitliche Oberfläche für die Administration von VMware und Virtual Server eingerichtet werden könnte, was allerdings schon durch manchen Drittanbieter geschehen ist.


Rheinwerk Computing - Zum Seitenanfang

14.1 VMware Zur nächsten ÜberschriftZur vorigen Überschrift

VMware stellt Ihnen neben verschiedenen Kommandozeilenprogrammen je nach Serverprodukt bis zu drei Programmierschnittstellen zur Auswahl, Virtual Infrastructure SDK, CIM SDK und die Scripting API. Die Dokumentationen und die zugehörigen Installationsdateien finden Sie unter http://www.vmware.com/support/developer/.

Einzige Ausnahme ist die Scripting API, die Sie beim VMware GSX Server nur direkt über die Installationsroutine installieren können und beim VMware ESX Server über die ESX Download-Webseite. Diese ist unter http://www.vmware.com/download/esx_download.html zu finden.

Ganz gleich, für welche Schnittstelle Sie sich entscheiden, es ist nicht erforderlich, die Programme auf dem VMware Server selbst auszuführen. Alle vorhandenen Programmiermöglichkeiten können remote, also über das Netzwerk ausgeführt werden. Einzige Voraussetzung ist, dass auf dem ausführenden System die Interpreter (z. B. Perl) und die APIs installiert sind.

Abbildung 14.1 VMware Support-Webseite für Anwendungsentwickler. Hier finden sich die APIs, FAQs und Dokumentationen der einzelnen Schnittstellen.


Rheinwerk Computing - Zum Seitenanfang

14.1.1 Kommandozeile Zur nächsten ÜberschriftZur vorigen Überschrift

Alle Kommandozeilenprogramme werden mit der Software selbst installiert, und zwar in den Programmverzeichnissen des VMware GSX bzw. ESX Servers. In Anhang A finden Sie eine Auswahl von wichtigen Linux- und VMware-Befehlen, mit denen ein automatisierter Ablauf über Batchdateien realisiert werden kann. Zwei der wichtigsten Kommandos sind vmware-cmd und vmkfstools (VMware ESX) bzw. vmware-vdiskmanager (VMware GSX), mit denen virtuelle Maschinen und virtuelle Festplatten verwaltet werden können. Die Kommandozeilen-Skripte können auch, bei vorhandener Unterstützung durch das Betriebssystem, um VB-Skripte oder Perl-Skripte erweitert werden. Gerade die Nutzung von Perl ist bei VMware integraler Bestandteil mitgelieferter Skripte und Befehle. Sehr gut kann man das am vmware-cmd-Befehl erkennen, der unter einer Windows-Basis einfach ein Perl-Skript mit Parametern ausführt. Diese mitgelieferten Perl-Skripte benutzen im Endeffekt auch die VMware Scripting API, allerdings müssen keine Perl-Skripte selbst geschrieben werden, daher führe ich z. B. vmware-cmd hier als Kommandozeilenprogramm auf.

C:\Programme\VMware\VMware GSX Server>vmware-cmd –l 
C:\Virtual Machines\w2kpro1\win2000Pro.vmx 
C:\Virtual Machines\w2kpro2\win2000Pro.vmx 
C:\Virtual Machines\win2000Pro\win2000Pro.vmx 
D:\vms\W2k3-vm1\winNetStandard.vmx 
D:\vms\sles1\sles.vmx

Wie Sie am Beispiel des vmware-cmd –l Kommandos sehen, werden Ihnen hier alle lokalen virtuellen Maschinen, genauer deren Konfigurationsdatei inklusive Pfad, angezeigt. Hier können Sie dann weitere Zeilen einbauen, um beispielsweise VMs herunterzufahren oder neu zu starten. Dies kann vor allem bei einer automatischen Sicherung der virtuellen Maschine sinnvoll sein, um die VM als Ganzes mit Konfigurationsdatei und Festplattendateien zu sichern.

Ohne Ihr Zutun können Sie im Gegensatz zur Scripting API diese Befehle nur lokal auf dem VMware Server ausführen. Mehr ist aber auch nicht notwendig, da sie normalerweise nur zur lokalen Verwaltung des Servers eingesetzt wird. Beispiele hierfür wären zeitgesteuerte Sicherungs-Skripte oder Kopier-Skripte für Konfigurationsdateien.


Rheinwerk Computing - Zum Seitenanfang

14.1.2 VMware Scripting API Zur nächsten ÜberschriftZur vorigen Überschrift

Der wichtigste Punkt vorweg: Die VMware Scripting API ist mit jedem VMware-Serverprodukt verwendbar. Sie müssen lediglich auf die passende API zur Version Ihres GSX oder ESX Servers achten. Um die VMware Scripting API nutzen zu können, müssen Sie diese auf dem System, das die Skripte ausführt, installieren. Ein Perl-Interpreter wird automatisch mitgebracht, alles weitere müssen Sie jedoch gesondert installieren (bsp. VisualBasic IDE).

Wie schon in im Kommandozeilenteil erwähnt, werden von VMware schon eigene Skripte mitgeliefert, die auf die VMware Scripting API zurückgreifen. Sogar ganze Befehle wie z. B. vmware-cmd werden über diese Methode realisiert. Um dies ein wenig zu untermauern, folgt hier ein Auszug aus dem vmware-cmd-Skript, das den Aufruf vmware-cmd –l zeigt.

sub do_list { 
    my $vms = connect_server_local(); //Verbindung VMServer 
 
    my @list = $vms->registered_vm_names(); //Abruf VMs 
 
    if (!@list) { 
        my ($err, $errstr) = $vms->get_last_error(); 
    if ($err != 0) { 
        print STDERR "VMControl error $err: $errstr\n"; 
            # cleanup object's resources 
        undef $vms; 
        exit(-$err); 
    } 
    } 
 
    while($_ = shift @list) { 
        print $_,"\n"; //Ausgabe VMs 
    } 
    # cleanup object's resources 
    undef $vms; 
}

Warum zeige ich Ihnen nun ausgerechnet ein schon von VMware mitgebrachtes Skript? Ganz einfach, es ist eine sehr gute Basis, um eigene Skripte zu schreiben oder die vorhandenen um eigene Funktionen zu erweitern. Achten Sie jedoch gerade bei der Erweiterung der von VMware ausgelieferten Skripten, dass diese bei einem Versionswechsel vielleicht überschrieben werden. Mittels Perl können Sie ganze Abläufe wie beispielsweise die Sicherung im laufenden Betrieb automatisieren. Gerade zur Sicherungm und Rücksicherung gibt es ein fertiges Perl-Skript, das stetig verbessert wird (http://www.vmts.net). Da das Backup-Skript schon äußerst komplex und vollständig ist, kann man es auch sehr gut als Beispiel für eigene Skripte nutzen. Sie können von VMware auch ein Beispielprogramm für VisualBasic herunterladen, das eine kleine MUI (MiniMUI) für die VMware Server bereitstellt.

Laut VMware dient diese Schnittstelle entweder der Automatisierung von Verwaltungsabläufen der virtuellen Maschinen oder kleineren Anwendungen, die interaktiv durch den Benutzer ausgeführt werden können. Zum Leistungsumfang gehört das Starten und Stoppen virtueller Maschinen ebenso wie das Registrieren von VMs auf dem VMware Server. Diese Aktionen können je nach Programmierung lokal oder aus der Ferne auf dem VMware Server angestoßen werden.

Abbildung 14.2 Verbindung über die VmCOM oder VmPerl API je nach Client-System

Die VMware Skripting API kann jedoch nicht nur aus Perl heraus angesprochen werden, sondern auch über das von Microsoft bekannte COM (Component Object Model) Interface. Daher ist es möglich, mit jeder Programmiersprache, die COM unterstützt, die VMware API zu nutzen. Dazu gehören Jscript, VBScript und Visual Basic, zu denen Sie auch Beispielprogramme in den VMware Scripting API-Installationsdateien und in den Handbüchern finden.

In Abbildung 14.2 sehen Sie eine solche Verbindungsstruktur über die beiden APIs VmCOM und VmPerl. Sowohl der GSX Server mit ihren unterschiedlichen Wirt-Betriebssystemen als auch der ESX Server kann über beide APIs angesprochen werden. Jedoch unterstützt nur ein Windows-System auf der Client-Seite die VmCOM API und kann damit arbeiten.

Generell ist die Dokumentation der Programmierschnittstellen von VMware umfassend. Vielleicht hat ja auch schon jemand in der Community ein ähnliches Vorhaben realisiert, und Sie müssen nur danach suchen. Gerade in diesem Zusammenhang will ich Ihnen das Community-Forum ans Herz legen, da Sie hier nicht nur sehr viel Fertiges finden können, sondern auch schnelle Antwort auf Ihre Fragen erhalten.


Rheinwerk Computing - Zum Seitenanfang

14.1.3 VMware CIM SDK Zur nächsten ÜberschriftZur vorigen Überschrift

Das VMware CIM SDK besteht aus einem Programmierhandbuch und einer vollständigen Funktionsreferenz. Auf der Basis der Pegasus CIMOM-Schnittstelle können Sie damit die VMware ESX Server ab Version 2.5 über verschiedene Programmiersprachen, die diese CIMOM-Schnittstelle unterstützen, abfragen. Die Verwaltungsmöglichkeiten für ESX Server und die darauf laufenden virtuellen Maschinen mittels der CIM-Schnittstelle sind enorm und würden den Rahmen dieses Buches bei weitem sprengen. Es sei daher an dieser Stelle auf die Dokumentation in der SDK verwiesen. Falls Sie keine Programmiersprache kennen, welche die CIMOM-Schnittstelle nutzen kann, sollten Sie sich die folgenden Open Source Tools ansehen:

  • OpenPegasus (C++)
  • WBEM Services (Java)
  • OpenWBEM (C++)
  • SBLIM (C)

Abbildung 14.3 Darstellung der Verbindung über die CIM-Schnittstelle

Abbildung 14.3 zeigt den Verbindungsvorgang eines Managementsystems, das über den VMware ESX Server, genauer über dessen Pegasus CIMOM-Schnittstelle, auf die virtuellen Maschinen zugreift und diese verwalten kann. Die ganze Kommunikation läuft entweder über eine unverschlüsselte HTTP- oder eine verschlüsselte HTTPS-Verbindung ab, die Sie vom Surfen im Intranet oder im Internet her kennen sollten.

Allerdings ist aus Sicherheitsgründen der Pegasus CIMOM-Dienst auf jedem ESX Server zwar installiert, er wird aber nicht automatisch gestartet. Um dies zu ändern, müssen Sie auf die Service Console des ESX Servers wechseln (z. B. mit Putty über SSH) und im Verzeichnis /etc/init.d die den Befehl ./pegasus -status ausführen. Zum einmaligen Starten (bis zum nächsten Reboot) können Sie ./pegasus -start, zum dauerhaften Starten /sbin/chkconfig --add pegasus ausführen. Sobald der CIMOM-Dienst gestartet ist, läuft er auf den Ports 5988 (HTTP) und 5989 (HTTPS). Zum Verbinden mittels Client oder CIM Browser müssen Sie einfach die Netzwerkadresse des ESX Servers und den Namespace /vmware/etc angeben.


Rheinwerk Computing - Zum Seitenanfang

14.1.4 VMware Virtual Infrastructure SDK topZur vorigen Überschrift

Falls Sie VMware VirtualCenter einsetzen, ist die Programmierschnittstelle eine der interessantesten und umfangreichsten Schnittstellen zu den VMware-Serverprodukten. Es werden alle Funktionen des VirtualCenters inklusive der virtuellen Maschinen auf den VMware Servern GSX und ESX in sehr großem Umfang unterstützt. Auch Highlights wie VMotion oder Erstellung einer VM über Templates kann über diese Schnittstelle realisiert werden. Die API steht Ihnen mit einem laufenden VirtualCenter Server direkt zur Verfügung und kann mit einem berechtigten Benutzer über den so genannten »WebService« angesprochen werden. Das bedeutet allerdings im Umkehrschluss, dass Sie die Virtual Infrastructure API nur in Verbindung mit VirtualCenter nutzen können.

Der Webservice selbst läuft, falls Sie den Port nicht während der Installation des VirtualCenter Servers angepasst haben, über das https-Protokoll auf Port 8443. Zum Testen der Funktionalität müssen Sie einfach im Browser https://virtualcenter-IP:8443 eingeben, und Sie werden eine XML-Datei des Inhalts »permission denied« erhalten, wenn die Verbindung funktioniert.

Abbildung 14.4 Verbindung über das Virtual Infrastructure SDK im Vergleich zum VirtualCenter Client

In Abbildung 14.4 sehen Sie den Verbindungsweg von einem VirtualCenter Client und einem Client oder Programm, das über die Virtual Infrastructure SDK zugreift. Während die Verbindung des VirtualCenter Clients ein VMware-proprietäres Protokoll direkt zum VirtualCenter Server benutzt, wird die SDK-Verbindung über SOAP/HTTPS zum Webservice auf dem VirtualCenter Service realisiert.

Der Webservice stellt Ihnen, nach erfolgreicher Anmeldung, eine Vielzahl von Objekten zur Verwaltung bereit. Zu diesen Objekten gehören Tasks, Scheduler-Einträge, Events, Performancedaten, virtuelle Maschinen, Farmen, Farmgruppen, VM-Gruppen und Host-Systeme. Im Endeffekt alle Objekte, die in Kapitel 13, VMware VirtualCenter, schon besprochen worden sind. Die dort erwähnte hierarchische Struktur wird beibehalten und mit Hilfe von Pfaden abgebildet. Ein solcher Pfad könnte beispielsweise /vcenter/farm1/host1 lauten, wohinter sich dann eine XML-Datei mit den entsprechenden Werten verbirgt.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Vmware und Microsoft Virtual Server
Vmware und Microsoft Virtual Server


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Vmware vSphere 5.5






 Vmware vSphere 5.5


Zum Rheinwerk-Shop: Vmware vSphere 5.5






 Vmware vSphere 5.5


Zum Rheinwerk-Shop: Vmware View






 Vmware View


Zum Rheinwerk-Shop: Microsoft Hyper-V






 Microsoft Hyper-V


Zum Rheinwerk-Shop: Office 365






 Office 365


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern