View
2.362
Download
4
Embed Size (px)
DESCRIPTION
„Scripting in VMware-Umgebungen - praxisorientierte Vorstellung gängiger Lösungen".• Agenda:o Die Rolle der vSphere API (ESX, ESXi, vCenter)o Einblick in das Schaltwerk mit dem Managed Object Browsero Intuitives Orchestrieren mit VMware Powershell cmdlets aka PowerCLIo VMware Scripting auch für *nix-Plattformen, Perl SDK, vMA und vCLIo Performance-Kniffe beim Scripting (sowohl für Perl SDK als auch fürPowerCLI)
Citation preview
Scripting in VMware UmgebungenEffiziente Adminstration mit Powershell und Perl
Sebastian Kayser & Daniel Reinold, ConSol* GmbH
22.07.10 2 www.consol.de
• ConSol* - Wer sind wir?
• Klassische Administration vs. Scripting
• vSphere Web Services & SOAP
• Scripting mit Powershell: PowerCLI
• Scripting mit Perl: Perl SDK
• Performance-Überlegungen
Agenda
24.06.2010 www.consol.de
22.07.10 4 www.consol.de
Webcast SerieGet Virtual – Virtualisierung erfolgreich gestalten
http://www.flickr.com/photos/ppym1/93571524/
• Folge 1: Desktop Virtualisierung
• Folge 2: Infrastruktur-Virtualisierung: vSphere4, vCenter, ESX-Server u.a.
• Folge 3: Performance und Dimensionierung von virtuellen Umgebungen
• Folge 4: Scripting in VMware-Umgebungen on air
• Folge 5: Backup in Vmware-Umgebungen Ende August / Anfang September
22.07.10 5 www.consol.de
Disclaimer
Wir sind:IT Consultants und VMware Spezialisten ... keine Entwickler(auch wenn wir für harte Fälle genügend im Haus sitzen haben)
http://www.flickr.com/photos/ppym1/93571524/
22.07.10 6 www.consol.de
Klassische vSphere Administration
• Point & Click mit vSphere Client
• Verwaltet einzelne ESX Server oder via vCenter mehrere ESX Server
22.07.10 7 www.consol.de
Problem?
22.07.10 8 www.consol.de
Problem?
• Aufwand entspricht O(n)
• Konsistenz nicht gewährleistet
• Informationssuche mitunter schwer
22.07.10 9 www.consol.de
Alternativer Ansatz: Scripting
• Aufwand einmal pro Skript
• Konsistente Änderungen
• Kann gezielt Informationen auslesen(auch bei vielen VMs)
• Was ist Ihr größter Zeitfresser?→ Automatisieren!
22.07.10 10 www.consol.de
Scripting-Infrastruktur
• Nicht limitiert auf das Wrappen von Service-Konsolen-Kommandos
• ESX und vCenter exportieren SOAP-basierte Web-Services zur Instrumentierung
• Konsumenten:vSphere Client, vSphere CLI, PowerCLI, vSphere SDK for Perl, 3rd Party Hersteller, u.v.m.
SOAP
22.07.10 11 www.consol.de
SOAP?
22.07.10 12 www.consol.de
Scripting-Infrastruktur: SOAP
vSphere Client Login bei 6 ESX Hosts, ca. 150 VMs produziert ~ 650 KByte (!) SOAP Datenhttp://akutz.wordpress.com/2010/03/10/how-to-vsphere-client-to-vcenter-using-http/
22.07.10 13 www.consol.de
Scripting-Infrastruktur: Die Tools
SOAP ist der Unterbau, Tools und Frameworks abstrahieren
• vSphere CLI (ehemals RCLI):Kommandos zur Remote-Administration
• vSphere PowerCLI (ehemal VI Toolkit):Powershell Cmdlets für vSphere
• vSphere SDK for Perl:Perl Interface für Unix/Linux Plattformen
• vSphere Management Assistant (vMA, ehemals VIMA):Vorinstallierte Linux VM Appliance mit vSphere CLI und Perl SDK
http://www.vmware.com/support/pubs/sdk_pubs.html
22.07.10 14 www.consol.de
Nicht kompatibel mit VMware ServerESXi mit Lizenz → okESXi ohne Lizenz→ read-only
http://www.flickr.com/photos/adobemac/294078052/#/
22.07.10 15 www.consol.de
Tools: vSphere CLI
• Für Windows, Linux oder via vMA: esxcfg-*, vicfg-*
• Besonders wichtig für ESXi Deployments ohne Service Console
• Nur die Linux Version hat derzeit resxtop! (Stand vCLI 4.1)
• Kommandos:
esxcfg-* obsolet
22.07.10 16 www.consol.de
Tools: PowerCLI (1)
• vSphere cmdlets für PowerShell (W7 & W2008R2 haben PowerShell pre-installed)
• Gebaut speziell für Administratoren, nicht für Entwickler
• Paradigma intuitive Nutzung: <verb>-<aktion>, z.B. „get-vm“
• 237 cmdlets verfügbar (PowerCLI 4.1)
• Kommandos suchen: „get-vicommand | select-string <suchbegriff>“
• Hilfe eingebaut: „help <kommando>“, „help <kommando> -examples“
• Abstrahieren vSphere API → „nicht machbar“ gibt es nicht
Nicht nur VMware selbst bietet cmdlets, sondern auch 3rd Party Hersteller für ihre ProdukteLernenswert: Microsofts Common Engineering Criteria → PowerShell cmdlets für jedes Produkt
22.07.10 17 www.consol.de
Tools: PowerCLI (2)
• Anwendungsbeispiel: Auf der Suche nach dem Silent Datastore Killer … Snapshots
• Name, Description, PowerState … Sind das alle Attribute die zur Verfügung stehen?
• Vollständige Attributlist über get-member/select-object oder format-list
• Filterbar nach Kriterien: get-vm | get-snapshot | where { $_.Created -lt ((Get-Date).AddDays(-7)) }
22.07.10 18 www.consol.de
Tools: PowerCLI (3)
Weitere Beispiele:
• Changed Block Tracking (CBT) aktivieren, insofern Backup-SW das nicht machthttp://ict-freak.nl/2009/12/14/powercli-enable-changed-block-tracking/
• vCenter Rollen & Berechtigungen dokumentierenhttp://www.wekabyte.co.uk/2010/02/powercli-documenting-vcenter-permissions-part-1/
• Scripts en masse im VMware Powerpack (ehemal Virtu-Al Powerpack):http://www.virtu-al.net/featured-scripts/vmware-powerpack/
• ESX Deployment http://www.ivobeerens.nl/?p=509, u.v.v.v.m.
Links:
• http://vmware.com/go/powercli, http://blogs.vmware.com/vipowershell/
• http://www.virtu-al.net/, http://get-admin.com/blog/, http://www.peetersonline.nl/, http://www.lucd.info/
• Link zu cmdlets Poster und PowerCLI Intro:http://blog.consol.de/virtualisierung/2010/04/02/vmware-powercli-auch-fur-perl-sdk-ler/
22.07.10 19 www.consol.de
Tools: vSphere SDK for Perl (1)
• Perl Bindings/Module/Framework zum Arbeiten mit der vSphere API
• Weniger abstrahiert als PowerCLI, nahe an der API, daher weniger intuitiv/deklarativ
• Beispiel: Get-VM übersetzt in Perl
• Geeignet in Unix/Linux-zentrierte Umgebungen oder für Nagios-Checks
22.07.10 20 www.consol.de
Tools: vSphere SDK for Perl (2)
• Deployment anfänglich einfachst mit dem vMA
• Credentials cachen, zwei Varianten
• 30 Minuten: /usr/lib/vmware-vcli/apps/session/save_session.pl
• Dauerhaft: vifp addserver, vifpinit (Achtung: Sicherheitsanforderung bedenken
• Deployment anfänglich einfachst mit dem vMA
• Credentials cachen, zwei drei Varianten
• 30 Minuten: /usr/lib/vmware-vcli/apps/session/save_session.pl
• Dauerhaft: vifp addserver, vifpinit (Achtung: Sicherheitsanforderung bedenken
Neu mit vMA 4.1: AD Authentifizierunghttp://www.virtuallyghetto.com/2010/07/vma-41-active-directory-intergration.html
22.07.10 21 www.consol.de
Tools: vSphere SDK for Perl (3)
Anschauungsmaterial:
• Alle vicfg-Kommandos vom vSphere CLI bauen auf dem Perl SDK auf
• Beispiel-Skripte unter: /usr/share/doc/vmware-vcli/samples, /usr/lib/vmware-vcli/apps
Links:
• Programming Guide:http://www.vmware.com/support/developer/viperltoolkit/
• Community: Skripte:http://communities.vmware.com/community/developer/codecentral/vsphere_perl
22.07.10 22 www.consol.de
Problem #1: vSphere API
• Woher weiss man, welche Objekte, Methoden und Attribute zur Verfügung stehen?
• Programming Guides, PowerCLI → get-member, Perl → Data::Dumper
• Offizielle SDK Doku: http://www.vmware.com/support/developer/vc-sdk/ → API Reference
• Meist schneller: Der Managed Object Browser, verfügbar auf jedem ESX und vCenter Hosthttps://<hostname>/mob/
22.07.10 23 www.consol.de
Problem #2: Laufzeit der Skripte (1)
• Selbst vermeintlich simple Abfragen wie Get-VM „brauchen lange“
• Bei größeren Umgebungen Laufzeiten bis zu 30 Sekunden oder mehr
• Ursache: Ohne genauere Spezifizierung werden
a) ein Großteil der Attribute ausgelesen und aufbereitet
b) potentiell mehr Objekte abgerufen, als benötigt
• Beides sehr aufwendig (Client- & Server-seitig), beim Perl SDK z.B. Accessor Methoden Konstruktion
• Beispiel: get_vms.pl, ca. 150 VMs, Laufzeit 15 Sekunden, 4,5 MB (!) an SOAP Daten,
22.07.10 24 www.consol.de
Problem #2: Laufzeit der Skripte (2)
• Besser: vorher überlegen welche Daten benötigt werden!
• Perl SDK: find_entity_views() um „filter“ und „properties“ ergänzen
• PowerCLI: Anstatt Get-VM, Get-View mit -property verwenden
• Beispiel: get_vms.pl, ca. 150 VMs, Einsatz von „properties“
• Laufzeit um ca. 85% von 15 Sekunden auf 2 Sekunden reduziert
• SOAP Daten um ca. 98% von 4,5 MB auf 60 KByte reduziert
Achtung: Abwägen zwischen Pragmatismus/Zweck und Aufwand
22.07.10 25 www.consol.de
Problem #3: Webcast-Zeit limitiert ...
… deswegen nähern wir uns jetzt dem Ende. ;)
http://www.flickr.com/photos/carbonnyc/64581364/
22.07.10 26 www.consol.de
Fazit
• Scripting übernimmt server-übergreifend wiederkehrende Aufgaben
• Nicht alles muss geskriptet werden. Was frisst am meisten Zeit?
• Vielseitige Tools, Windows & Linux
• Eingewöhnungsphase notwendig, enorm viele Informationen online verfügbar
• Auch Unix-Admins können/sollten bei PowerCLI reinschnuppern
• Runterladen, ausprobieren!
22.07.10 27 www.consol.de
FRAGEN
Besuchen Sie uns online:
blog.consol.de/virtualisierung/www.consol.de/virtualisierung/
Oder kontaktieren Sie uns:
[email protected]+49-89-45841-100
ConSol* Consulting & Solutions Software GmbHFranziskanerstr. 38D-81669 München