Skip to the main content.

ScriptRunner Blog

Get-View in PowerCLI – so verwaltest du deine VMware-Infrastruktur noch effizienter (Teil 3)

Inhaltsverzeichnis

 

 

Post Featured Image

Teil 3 dieser Serie liefert Praxisbeispiele für den Get-View Befehl. So lässt sich Zeit sparen. 

 

PowerCLI ist eine äußerst nützliche Erweiterung der PowerShell, die speziell für die Verwaltung von VMware-Infrastrukturen entwickelt wurde. Sie ermöglicht es Administratoren, eine Vielzahl von Verwaltungs- und Automatisierungsaufgaben schnell und effizient auszuführen. In diesem Artikel werden wir uns auf den Get-View Befehl konzentrieren, der eine leistungsfähige Möglichkeit bietet, auf erweiterte Informationen über virtuelle Maschinen (VMs) zuzugreifen, diese zu filtern und zu sortieren.

Die Serie setzt sich aus den folgenden Artikeln zusammen:

  • Einleitung und Themenfeld VM-Inventory-Management (Teil 1)
  • Snapshots und VMware-Templates erstellen (Teil 2)
  • Allgemeine VMware Navigation und erweiterte Informationen (Teil 3)

 

 

Grundlagen von Get-View

Der Get-View Befehl ist ein zentrales Element der PowerCLI, das den Zugriff auf erweiterte Informationen und Funktionen der VMware vSphere API ermöglicht. Im Gegensatz zum Get-VM Befehl, der häufig für grundlegende Verwaltungsaufgaben verwendet wird, bietet Get-View eine höhere Leistung und Flexibilität, insbesondere wenn es um komplexe Abfragen und Automatisierungsskripte geht.

Ein Beispiel dafür, wie Get-View verwendet werden kann, um schnell auf erweiterte Informationen zuzugreifen, ist der folgende Befehl:


$vmView = Get-View -ViewType VirtualMachine -Filter @{"Name"="WebServer01"}

Dieser Befehl gibt eine umfangreiche Liste von Informationen zur VM "MyVM" zurück, die über die vSphere API abgerufen werden.

 

Praxisbeispiele und Anwendungsfelder

Get-View ist besonders nützlich, wenn du erweiterte Informationen über deine VMs abrufen oder diese Informationen gezielt filtern und sortieren möchtest. Zum Beispiel kannst du mit Get-View den Arbeitsspeicher (RAM) und die CPU-Auslastung aller VMs in deiner Umgebung abrufen:


$vmViews = Get-View -ViewType VirtualMachine
foreach ($vmView in $vmViews) {
$vmName = $vmView.Name
$vmMemory = $vmView.Summary.Config.MemorySizeMB
$vmCpuUsage = $vmView.Summary.QuickStats.OverallCpuUsage
Write-Output "VM Name: $vmName"
Write-Output "Memory: $vmMemory"
Write-Output "CPU Usage: $vmCpuUsage MHz"
}

Dieses Skript gibt den Namen, den Arbeitsspeicher und die CPU-Auslastung jeder VM in deiner Umgebung aus.

Du kannst auch Get-View verwenden, um VMs basierend auf bestimmten Kriterien zu filtern, z. B. VMs, die älter als 30 Tage sind:


$limitDate = (Get-Date).AddDays(-30)
$allVMs = Get-View -ViewType VirtualMachine

$oldVMs = $allVMs | Where-Object { $_.Config.CreateDate -lt $limitDate }

foreach ($oldVM in $oldVMs) {
Write-Host "Old VM Name: $($oldVM.Name)"
}

Get-View kann auch in Automatisierungsskripte integriert werden, um beispielsweise regelmäßig Berichte zu erstellen oder Wartungsaufgaben durchzuführen. Du könntest Get-View in Kombination mit Automatisierungs-Lösungen wie ScriptRunner verwenden, um regelmäßige Aufgaben zu planen und auszuführen, ohne manuellen Eingriff.

Ein weiteres Praxisbeispiel für den Einsatz von Get-View ist die Überwachung des Zustands der VM-Speicherplatznutzung. Du könntest ein Skript erstellen, das VMs mit einem hohen Anteil an verwendetem Thin-Provisioned-Speicher identifiziert und diese Informationen zur späteren Überprüfung oder Optimierung speichert:



$vmViews = Get-View -ViewType VirtualMachine
$threshold = 80

foreach ($vmView in $vmViews) {
$vmName = $vmView.Name
$vmProvisionedSpace = $vmView.Summary.Storage.Committed
$vmUsedSpace = $vmView.Summary.Storage.Uncommitted
$vmTotalSpace = $vmProvisionedSpace + $vmUsedSpace
if ($vmTotalSpace -ne 0) {
$vmUsedPercentage = ($vmUsedSpace / $vmTotalSpace) * 100
if ($vmUsedPercentage -gt $threshold) {
Write-Output "VM Name: $vmName"
Write-Output "Used Space Percentage: $vmUsedPercentage %"
}
}
}

Dieses Skript gibt den Namen und den Prozentsatz des verwendeten Speicherplatzes jeder VM aus, bei denen der Schwellenwert von 80 % überschritten wurde.

 

Tipps und Tricks für die Verwendung von Get-View

Bei der Verwendung von Get-View solltest du beachten, dass einige Eigenschaften nicht direkt im View-Objekt verfügbar sind. Du musst möglicherweise zusätzliche Objekte abrufen oder Methoden aufrufen, um die gewünschten Informationen zu erhalten. Die vSphere API-Dokumentation ist eine hilfreiche Ressource, um zu erfahren, welche Eigenschaften und Methoden für jedes Objekt verfügbar sind.

Ein weiterer wichtiger Aspekt ist die Leistungsoptimierung. Bei großen Umgebungen mit vielen VMs können Get-View-Abfragen zeitaufwändig sein. Um die Leistung zu verbessern, verwende Filter, um die Ergebnisse auf die für deine Aufgabe relevanten VMs zu beschränken. Du kannst auch die -Property -Option verwenden, um nur die benötigten Eigenschaften abzurufen, was die Menge der zurückgegebenen Daten reduziert. Folgendes Code-Beispiel zeigt die Verwendung des Property-Parameters. Es werden nur die Eigenschaften "Name", "Summary.Storage.Committed" und "Summary.Storage.Uncommitted" abgerufen. Durch die Verwendung des Filters und der -Property-Option wird die Menge der zurückgegebenen Daten reduziert und die Abfrageleistung verbessert.


$vmNameFilter = "TestVM*" 
$requiredProperties = @(
"Name",
"Summary.Storage.Committed",
"Summary.Storage.Uncommitted"
)
$ params = @{
ViewType = 'VirtualMachine'
Filter = @{"Name" = $vmNameFilter}
Property = $requiredProperties
}
$ vmViews = Get-View @params

 

Fazit

Zusammenfassend bietet der Get-View Befehl in PowerCLI Administratoren eine leistungsfähige Möglichkeit, auf erweiterte Informationen über ihre VMware Infrastrukturen zuzugreifen und diese effizient zu verwalten. Durch die Kombination von Get-View mit Automatisierungsskripten und Lösungen wie ScriptRunner können Administratoren Zeit sparen und den Aufwand für die Verwaltung ihrer Umgebungen reduzieren.

 

 

Good2know

VMUG: Webcast

Es lohnt sich, bei der VMware User Group (VMUG) vorbeizuschauen. Am 17. Mai waren wir in der Reihe der Webcasts dabei: 

sr-webinar-vmware

 

Die Verwaltung von vSphere-Umgebungen kann eine Herausforderung sein, aber mit der richtigen Automatisierungslösung muss sie das nicht sein. PowerShell und das PowerCLI-Modul sind großartig, werden aber in der Regel nur von Skripting-Experten verwendet.

Wie wäre es, PowerShell nicht nur dazu zu verwenden, die wiederkehrenden Verwaltungsaufgaben zu standardisieren und zu automatisieren, sondern diese auch an Helpdesk-Teams zu delegieren und sogar auf der Grundlage eigener Skripte Self-Services für Endbenutzer zu erstellen? Auf diese Weise werden Anwender in die Lage versetzt, Snapshots zu verwalten, VMs neu zu konfigurieren, ihre VMs zu stoppen/starten oder Infrastrukturberichte zu erstellen.

Natürlich ist nicht jeder mit der Befehlszeile vertraut, und Anwender sollen keinen privilegierten Zugriff auf die VMware-Umgebung erhalten.

Was ist also erforderlich, um wiederkehrenden Aufgaben im Unternehmen mit PowerShell effizient und sicher zu automatisieren und zu delegieren?

 

 

Hier entlang zum Webcast!

 

 

 

 

 

Weiterführende Links

Über den Autor: