Scripting in VMware Umgebungen Effiziente Adminstration mit Powershell und Perl Sebastian Kayser & Daniel Reinold, ConSol*...
<ul><li>ConSol* - Wer sind wir? </li></ul><ul><li>Klassische Administration vs. Scripting </li></ul><ul><li>vSphere Web Se...
 
Webcast Serie Get Virtual – Virtualisierung erfolgreich gestalten http://www.flickr.com/photos/ppym1/93571524/ <ul><ul><li...
Disclaimer Wir sind: IT Consultants und VMware Spezialisten ...  keine  Entwickler (auch wenn wir für harte Fälle genügend...
Klassische vSphere Administration <ul><ul><li>Point & Click mit vSphere Client </li></ul></ul><ul><ul><li>Verwaltet einzel...
Problem?
Problem? <ul><ul><li>Aufwand entspricht O(n) </li></ul></ul><ul><ul><li>Konsistenz nicht gewährleistet </li></ul></ul><ul>...
Alternativer Ansatz: Scripting <ul><ul><li>Aufwand einmal pro Skript </li></ul></ul><ul><ul><li>Konsistente Änderungen </l...
Scripting-Infrastruktur <ul><ul><li>Nicht  limitiert auf das Wrappen von Service-Konsolen-Kommandos </li></ul></ul><ul><ul...
SOAP?
Scripting-Infrastruktur: SOAP <ul><li>vSphere Client Login bei 6 ESX Hosts, ca. 150 VMs produziert ~  650 KByte  (!) SOAP ...
Scripting-Infrastruktur: Die Tools <ul><li>  SOAP ist der Unterbau, Tools und Frameworks abstrahieren </li></ul><ul><ul><l...
Nicht kompatibel mit VMware Server ESXi mit Lizenz -> ok ESXi ohne Lizenz-> read-only http://www.flickr.com/photos/adobema...
Tools: vSphere CLI <ul><ul><li>Für Windows, Linux oder via vMA: esxcfg-*, vicfg-* </li></ul></ul><ul><ul><li>Besonders wic...
Tools: PowerCLI (1) <ul><ul><li>vSphere cmdlets für PowerShell (W7 & W2008R2 haben PowerShell pre-installed) </li></ul></u...
Tools: PowerCLI (2) <ul><ul><li>Anwendungsbeispiel: Auf der Suche nach dem  Silent Datastore Killer  … Snapshots </li></ul...
Tools: PowerCLI (3) <ul><li>Weitere Beispiele: </li></ul><ul><ul><li>Changed Block Tracking (CBT) aktivieren, insofern Bac...
Tools: vSphere SDK for Perl (1) <ul><ul><li>Perl Bindings/Module/Framework zum Arbeiten mit der vSphere API </li></ul></ul...
Tools: vSphere SDK for Perl (2) <ul><ul><li>Deployment anfänglich einfachst mit dem vMA </li></ul></ul><ul><ul><li>Credent...
Tools: vSphere SDK for Perl (3) <ul><li>  Anschauungsmaterial: </li></ul><ul><ul><li>Alle vicfg-Kommandos vom vSphere CLI ...
Problem #1: vSphere API <ul><ul><li>Woher weiss man, welche Objekte, Methoden und Attribute zur Verfügung stehen? </li></u...
Problem #2: Laufzeit der Skripte (1) <ul><ul><li>Selbst vermeintlich simple Abfragen wie Get-VM „brauchen lange“ </li></ul...
Problem #2: Laufzeit der Skripte (2) <ul><ul><li>Besser: vorher überlegen welche Daten benötigt werden! </li></ul></ul><ul...
  Problem #3: Webcast-Zeit limitiert ... <ul><li>…  deswegen nähern wir uns jetzt dem Ende. ;) </li></ul>http://www.flickr...
Fazit <ul><ul><li>Scripting übernimmt server-übergreifend wiederkehrende Aufgaben </li></ul></ul><ul><ul><li>Nicht alles m...
FRAGEN Besuchen Sie uns online: blog.consol.de/virtualisierung/ www.consol.de/virtualisierung/ Oder kontaktieren Sie uns: ...
Nächste SlideShare
Wird geladen in …5
×

Webcast - VMware Scripting

2.672 Aufrufe

Veröffentlicht am

„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 Browser
o Intuitives Orchestrieren mit VMware Powershell cmdlets aka PowerCLI
o VMware Scripting auch für *nix-Plattformen, Perl SDK, vMA und vCLI
o Performance-Kniffe beim Scripting (sowohl für Perl SDK als auch für
PowerCLI)

0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.672
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
70
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Wer sind wir: ConSol Consulting &amp; Solutions beschäftigt sich mit Vorort- und Remote-Betrieb seit 1984. Ein weiteres Streckenpferd ist die Lösungsentwicklung in diversen Einsatzgebieten und mittels unterschiedlichster Programmiersprachen. Zuletzt ist aus Eigeninitiative der Mitarbeiter die Business Unit Virtualisierung entstanden. Diese macht es sich zur Aufgabe, zusammen mit Kunden Lösungen zu entwickeln und zu implementieren. Zusätzlich werden verschiedene Betriebsvarianten bis zum 24x7 Support mit strikten Reaktions- und Lösungszeiten angeboten. Herr Geierhos und ich sind Teil dieses Teams und möchten Ihnen heute über Lösungsansätzen zu einem Problem berichten, das uns selbst regelmäßig wieder begegnet. Die Dimensionierung virtueller –oder zukünftig virtueller- Umgebungen.
  • Webcast - VMware Scripting

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

    ×