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

Warum und wann dieser Vorgang ausgeführt wird

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

vSphere PowerCLI

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

vSphere PowerCLI enthält über 200 Cmdlets, eine Reihe von Beispielskripts und eine Funktionsbibliothek für die Verwaltung und Automatisierung. Weitere Informationen finden Sie in der vSphere PowerCLI-Dokumentation.

vSphere Command-Line Interface (vCLI)

vCLI enthält eine Reihe von Befehlen für die Verwaltung von ESXi-Hosts und virtuellen Maschinen. Das Installationsprogramm, mit dem auch das vSphere SDK for Perl installiert wird, kann auf Windows- oder Linux-Systemen ausgeführt werden und installiert ESXCLI-Befehle, vicfg- -Befehle und eine Reihe anderer vCLI-Befehle. Weitere Informationen finden Sie in der Dokumentation zur vSphere Command-Line Interface.

Ab vSphere 6.0 können Sie auch eine der Skriptschnittstellen des vCloud Suite SDK verwenden, z. B. das vCloud Suite SDK for Python.

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 Web 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

    vCLI (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.