Ich bin immer sehr interessiert an neuartigen Ansätzen zum Management und Reporting von VMware vSphere Umgebungen. Besonders herausgestochen ist da in letzter Zeit für mich der OpBot vSphere PowerCLI Operations Ansatz der Firma Opvizor. Sie nennen ihr ChatOps Produkt OpBot for vSphere.
Dabei wird der Team Messenger Dienst Slack in der ersten Version als Medium für API Calls gegen die VMware vSphere Umgebung verwendet. Die vSphere API Calls sind hierfür in ein sehr simples Befehlsschema abstrahiert um dem Benutzer die Bedienung so einfach wie möglich zu gestalten. Mit PowerCLI Core hat sich dann für dieses Produkt in der Version 2.0 eine ganz neue Welt an Möglichkeiten aufgetan. Nun kann neben den vSphere API Calls auch die VMware PowerCLI verwendet werden um die notwendigen Informationen zu erhalten.
Ich habe mich sehr gefreut, als Dennis Zimmer von Opvizor mich angesprochen hat, ob er nicht eine meiner PowerCLI Funktionen in dem Produkt verwenden kann. Aber dazu später mehr.
OpBot vSphere PowerCLI Operations in Aktion
Für erfahrene Nutzer von Slack oder von Messenger Diensten im Allgemeinen ist es eine Sehr intuitive Nutzung und der Einstieg fällt alles andere als schwer.
Einen ganz guten Einblick gibt dieses Video:
Wie funktioniert OpBot for vSphere
Der ChatBot, hier OpBot wird als virtuelle Appliance ausgeliefert. In der Appliance läuft ein abgespecktes Ubuntu Linux mit allen notwendigen Komponenten um die vSphere API und PowerCLI Core zu nutzen. Auf der anderen Seite verbindet sich die Appliance mit der Slack API um Befehle entgegen zu nehmen und zu beantworten.
Vorteile einer solchen Umsetzung:
- Keine Einwahl notwendig
- Nutzung auf allen Geräten
- Sehr geringe Bandbreite notwendig
- Aktionen in „Channels“ für alle Kollegen sichtbar
OpBot vSphere PowerCLI Operations in der Praxis
Meiner Vorliebe für PowerCLI geschuldet möchte ich hier nur auf die neue PowerShell (PowerCLI Core) Implementierung eingehen und ein paar der Usecases aufzeigen.
Alle ESXi Hosts auflisten
Auflistung aller ESXi Hosts im verbundenen vCenter, sortiert nach CPU Nutzung.
Nicht eingeschaltete VMs auflisten
Auflistung aller VMs, welche nicht den Status „PoweredOn“ haben, also z.B. ausgeschaltet oder pausiert sind.
Snapshots älter als 14 Tage auflisten
Auflistung aller Snapshots, welche älter als 14 Tage sind. Eine Sehr übliche und sinnvolle Abfrage.
Get-VM | Get-Snapshot | Where-Object {$_.Created -lt (Get-Date).AddDays(-14)} | Select-Object VM, Name, Created, SizeMB
Datastores mit geringer Restkapazität aufflisten
Auflistung der Datastores mit weniger als 100 GB freiem Speicher.
Get-Datastore | Select-Object Name, Type, @{N="CapacityGB";E={[math]::Round($_.CapacityGB,2)}}, @{N="FreeSpaceGB";E={[math]::Round($_.FreeSpaceGB,2)}}, PercentFree | Sort-Object PercentFree| Where-Object { $_.PercentFree -lt 20 }
Komplexe Skripte
Aber natürlich ist nicht nur der Aufruf simpler Commandlets möglich, auch komplexe Skripte können ausgeführt werden.
$View = @() foreach ($myVM in Get-VM){ $VMDKs = $myVM | get-HardDisk foreach ($VMDK in $VMDKs) { if ($VMDK -ne $null){ [int]$CapacityGB = $VMDK.CapacityKB/1024/1024 $Report = [PSCustomObject] @{ Name = $myVM.name PowerState = $myVM.PowerState Datastore = $VMDK.FileName.Split(']')[0].TrimStart('[') VMDK = $VMDK.FileName.Split(']')[1].TrimStart('[') StorageFormat = $VMDK.StorageFormat CapacityGB = $CapacityGB } $View += $Report } } } $View | Sort-Object VMname, PowerState, Datastore, VMDK, StorageFormat, CapacityGB
Eingebundene PowerCLI Funktionen
Die Verwendung von komplexen Skripten bringt mich dann auch zum Einsatz meiner Funktion „Recommend-Sizing“ (GitHub) in OpBot 2.0.
Ich gehe davon aus, dass der übliche Einsatz von OpBot for vSphere nicht die Ausführung komplexer Skripte sein wird, sondern wohl primär verwendet werden wird um schnell an relevante Informationen zu gelangen.
Hier ist die Einbindung meiner Funktion „Recommend-Sizing“ als „Cluster-Summary“ ein sehr gutes Beispiel, viele relevante Informationen über die Umgebung können somit schnell aufgerufen werden.
Wunschliste für OpBot for vSphere
Ich vermisse mit der Einbindung von PowerShell Core eigentlich nicht mehr viel.
Community für weitere Funktionen
Es wäre schön, wenn noch mehr PowerCLI Funktionen in das Produkt Einzug halten würden, somit könnten dem Nutzer noch mehr Informationen schneller zugänglich gemachen werden. Speziell die Nutzung über das Smartphone würde dadurch enorm erleichtert. Eventuell wäre es auch denkbar den Nutzern zu ermöglich Ihre Installation selbst zu erweitern um Ihre eigenen PowerCLI Funktionen, angepasst an die spezifischen Bedürfnisse.
Automatisierte ChatBot Meldungen
Als Nutzer dieses Produktes würde ich mir wünschen, dass bestimme Ereignisse oder Situationen gemeldet würden (Neue Alarme, Datastore unter 20% Restkapazität), sozusagen eine Art Event Trigger.
Eine Tägliche Nachricht wie nach dem Beispiel von vCheck for vSphere wäre sicher auch sehr Hilfreich.
OpBot for vSphere selbst testen
Opvizor bietet die Möglichkeit das Produkt kostenlos zu testen. Einfach hier registrieren: