In Umgebungen mit zahlreichen Hosts lassen sich Hosts mit Skripts schneller und fehlerfreier verwalten als über den vSphere Client.

vSphere umfasst mehrere Skriptsprachen für die Hostverwaltung. In der ESXCLI-Dokumentation und der vSphere API/SDK-Dokumentation finden Sie Referenzinformationen und Programmiertipps. VMware-Communitys können weitere Tipps für die Verwaltung mit Skripts geben. In der vSphere-Administratordokumentation wird hauptsächlich die Verwendung des vSphere Client für die Verwaltung beschrieben.
VMware PowerCLI

VMware PowerCLI ist eine Windows PowerShell-Schnittstelle zur vSphere API. VMware PowerCLI enthält PowerShell-Cmdlets für die Verwaltung von vSphere-Komponenten.

VMware PowerCLI enthält Hunderte von Cmdlets, eine Reihe von Beispielskripts und eine Funktionsbibliothek für die Verwaltung und Automatisierung. Weitere Informationen hierzu finden Sie unter https://developer.vmware.com/powercli.

ESXCLI
ESXCLI enthält eine Reihe von Befehlen für die Verwaltung von ESXi-Hosts und virtuellen Maschinen. Weitere Informationen hierzu finden Sie in der ESXCLI-Dokumentation.

Sie können auch eine der Skriptschnittstellen zum vSphere Automation SDK, wie beispielsweise vSphere Automation SDK for Python, verwenden.

Prozedur

  1. Erstellen Sie eine benutzerdefinierte Rolle mit eingeschränkten Berechtigungen.
    Sie können z. B. eine Rolle erstellen, die eine Reihe von Berechtigungen für die Hostverwaltung, aber keine Berechtigungen für die Verwaltung von virtuellen Maschinen, Speicher oder Netzwerken besitzt. Wenn das Skript, das Sie verwenden möchten, nur Informationen extrahiert, können Sie eine Rolle mit Lesezugriff für den Host erstellen.
  2. Erstellen Sie über den vSphere Client ein Dienstkonto und weisen Sie ihm die benutzerdefinierte Rolle zu.
    Sie können mehrere benutzerdefinierte Rollen mit unterschiedlichen Zugriffsebenen erstellen, wenn der Zugriff auf bestimmte Hosts stark eingeschränkt werden soll.
  3. Schreiben Sie Skripts zum Prüfen oder Ändern von Parametern und führen Sie sie aus.
    Sie können z. B. die interaktive Shell-Zeitüberschreitung eines Hosts wie folgt prüfen oder festlegen:
    Sprache Befehle
    ESXCLI
    esxcli <conn_options> system settings advanced get /UserVars/ESXiShellTimeOut
    esxcli --formatter=csv --format-param=fields="Path,Int Value" 
    system settings advanced list | grep /UserVars/ESXiShellTimeOut
    PowerCLI
    #List UserVars.ESXiShellInteractiveTimeOut for each host
    Get-VMHost | Select Name,
     @{N="UserVars.ESXiShellInteractiveTimeOut";E={$_ 
    | Get-AdvancedSetting -Name UserVars.ESXiShellInteractiveTimeOut
    | Select -ExpandProperty Value}}
    
    # Set UserVars.ESXiShellTimeOut to 900 on all hosts
    Get-VMHost 
    | Foreach { Get-AdvancedSetting -Entity $_ -Name UserVars.ESXiShellInteractiveTimeOut | Set-AdvancedSetting -Value 900 }
    
  4. Erstellen Sie in großen Umgebungen Rollen mit unterschiedlichen Zugriffsrechten und gruppieren Sie Hosts gemäßen den Aufgaben, die Sie ausführen möchten, in Ordnern. Anschließend können Sie Skripts für unterschiedliche Ordner mithilfe verschiedener Dienstkonten ausführen.
  5. Stellen Sie sicher, dass die Änderungen nach der Ausführung des Befehls vorgenommen wurden.