ESXi-Kommandozeile: Die 25 wichtigsten esxcli-Befehle


    Tags: , ,

    Kommandozeile (Commandline)ESXi-Hosts lassen sich komfortabel über die Web-GUI des vSphere- oder des Hosts-Clients verwalten. Einige Aufgaben gehen aber schneller von der Hand, wenn man dafür das Dienst­programm esxcli verwendet, und manche lassen sich nur damit erledigen. Die folgende Übersicht stellt häufig benötigte esxcli-Befehle zusammen.

    Für den Start müssen Sie wissen, dass esxcli-Befehle von der ESXi-Shell ausgeführt werden. Daher müssen Sie diese, falls noch nicht geschehen, auf der DCUI aktivieren. Dazu brauchen Sie entweder Tastatur und Bildschirm am ESXi-Server oder eine Software für das Remote-Server-Management, die auf IPMI basiert.

    Shell und SSH aktivieren

    Lässt es die Sicherheits­richtlinie Ihres Unternehmens zu, dann schalten Sie bei der Gelegenheit auch gleich den SSH-Zugang frei. Sie können esxcli dann nicht nur lokal an der ESXi-Shell (Alt + F1), sondern auch remote benutzen.

    Für das Aktivieren der zwei Features melden Sie sich an der DCUI mittels F2 an, navigieren zu Troubleshooting Options und drücken Enable ESXi Shell und Enable SSH. Sind beide bereits aktiviert, lauten die Menüpunkte entsprechend Disable ESXi Shell und Disable SSH.

    ESXi-Shell über die DCUI aktivieren

    Gruppierung von Befehlen über Namespaces

    esxcli bietet zwar nicht den IntelliSense-Komfort einer PowerShell, Sie können aber durch Anhängen von Namespaces an das Kommando nach diesem Muster leicht durch die hierarchische Struktur navigieren:

    esxcli [namespace] Befehl

    Sie bekommen auf jeder Ebene auch kontextabhängige Hilfen und Erklärungen angezeigt. Führen Sie esxcli ohne Parameter aus, dann erhalten Sie einen Überblick, welche Namespaces verfügbar sind.

    Übersicht über alle esxcli-Namespaces

    Häufig benötigte esxcli-Befehle

    So erhält man einen vollständigen Überblick über alle verfügbaren esxcli-Befehle:

    esxcli esxcli command list

    Systembezogene Befehle

    Build- und Versionsnummern von ESXi anzeigen:

    esxcli system version get

    Hostnamen, Domäne und FQDN für den Host ausgeben:

    esxcli system hostname get

    System-Informationen mittels esxcli ausgeben

    Ermitteln von Datum und Uhrzeit der ESXi-Installation:

    esxcli system stats installtime get

    Folgender Befehl versetzt ESXi in den Wartungsmodus (oder hebt diesen mit false wieder auf):

    esxcli system maintenanceMode set -enable true

    Mit folgendem Befehl können Sie ESXi neu starten oder herunterfahren. Der Parameter -d ist ein Countdown-Timer. Der Mindestwert beträgt 10 Sekunden. ESXi muss sich im Wartungsmodus befinden, bevor Sie den Befehl ausführen können:

    esxcli system shutdown reboot -d 10 -r "Patch Updates"

    User-Management

    Auflisten aller auf dem ESXi-Host lokal erstellen Benutzer:

    esxcli system account list

    Mit esxcli kann man auch lokale ESXi-Benutzer anlegen. Alle Parameter aus dem folgenden Beispiel sind obligatorisch, unter anderem auch -c für Password Confirmation:

    esxcli system account add -d “Max Muster” -i mmuster -p Pa55w.rd1234 -c Pa55w.rd1234

    Benutzerverwaltung mit esxcli

    Software-bezogene Befehle

    Auflisten aller derzeit installierten VIBs auf ESXi:

    esxcli software vib list

    Mit folgendem Befehl können Sie ein installiertes VIB aktualisieren. Beachten Sie, dass mit dem Befehl keine neue Software installiert, sondern nur das vorhandene VIB aktualisiert wird. Der Parameter -d gibt den vollständigen Pfad zu dem Paket an:

    esxcli software vib update -d "/tmp/update.zip"

    Zum Installieren neuer Software würden Sie

    esxcli software vib install

    verwenden.

    Befehle für die Arbeit mit virtuellen Maschinen

    Die World-ID beim Auflisten aller ausgeführten VMs benötigt man in verschiedenen anderen esxcli-Befehlen, um VM-bezogene Aufgaben zu erledigen:

    esxcli vm process list

    Mit dem folgenden Befehl können Sie eine VM beenden, falls diese etwa nicht mehr auf Befehle aus dem vSphere Client reagiert. Dazu müssen Sie die World-ID der VM mit dem Parameter -w übergeben. Der obligatorische Parameter -t <soft | hard | force> legt die Art des Kill-Vorgangs fest.

    Beginnen Sie mit soft, damit die VM sauber herunterfährt:

    esxcli vm process kill -w 69237 -t soft

    Wenn dies nicht funktioniert, versuchen Sie es mit der harten Option, welche die VM-Prozesse sofort beendet, so wie in kill -9. Der Force-Typ sollte nur als letztes Mittel verwendet werden, falls sonst nichts funktioniert.

    Netzwerkspezifische Befehle

    Mit diesem Befehl können Sie den Status der ESXi-Firewall ermitteln. Die Standardaktion ist das Verwerfen des Datenverkehrs, es sei denn, er wird durch eine bestimmte Firewall-Regel zugelassen. Das Feld Enabled gibt an, ob die Firewall aktiviert ist. Das Feld Loaded signalisiert, ob das Firewall-Modul aktiv ist oder nicht:

    esxcli network firewall get

    Mit diesem Befehl können Sie die ESXi-Firewall zur Fehlerbehebung deaktivieren:

    esxcli network firewall set -enabled true | false

    Allerdings rät VMware außer zu Diagnosezwecken dringend davon ab.

    Folgendes Kommando generiert eine Liste sämtlicher aktivierter Firewall-Regeln. Durch eine Weiterleitung der Ausgabe (Pipe) an grep und ein Matching auf "true" erreichen Sie, dass nur aktivierte Regeln angezeigt werden:

    esxcli network firewall ruleset list | grep true

    Aktive Firewall-Regeln ausgeben

    Mit dem folgenden Kommando zeigt man die IPv4-Konfiguration für alle auf ESXi-Host vorhandenen Kernel-Adapter an:

    esxcli network ip interface ipv4 get

    IP4-Einstellungen der Kernel-Adapter ermitteln

    Die Standard-Routen für alle Interfaces lassen sich so anzeigen:

    esxcli network ip route ipv4 list

    Der folgende Aufruf gibt die Standard-vSwitches auf dem ESXi-Host mit ihren jeweiligen Port-Gruppen aus:

    esxcli network vswitch standard list

    Ausgabe der auf einem Host konfigurierten vSwitches samt ihrer Port-Gruppen

    Speicherbezogene Befehle

    Der folgende Befehl zeigt eine Liste der vorhandenen VMFS-Datastores mit der jeweiligen VMFS-ID und der im Backend vorhandenen Gerätenamen:

    esxcli storage vmfs extent list

    Die Infos zu allen Volumes oder Datenspeichern, auf die der ESXi-Host zugreifen kann, enthalten den Dateisystemtyp, die Festplatten­informationen sowie den Volume-Namen, den Pfad und die UUID:

    esxcli storage filesystem list

    So erfährt man, welche Software-iSCSI-Adapter auf dem Host vorhanden sind:

    esxcli iscsi adapter list

    Das folgende Kommando besteht aus zwei verketteten Befehlen (&&). Der erste Teil aktiviert den Kernel-basierten iSCSI-Software-Adapter und der zweite Teil prüft, ob der Vorgang funktioniert hat:

    esxcli iscsi software set -enabled true && esxcli iscsi software get

    Die Metriken für den angegebenen iSCSI-Adapter umfassen Strom-, Minimal- und Maximalwerte und ob die aufgeführten Parameter konfiguriert werden dürfen oder nicht. Den Namen des iSCSI-Adapters, der abgefragt werden soll, gibt man über den Parameter -A an:

    esxcli iscsi adapter param get -A vmhba65

    Den Adapternamen ermittelt man mithilfe der esxcli-iscsi-Adapterliste oder im vSphere Web Client.

    iSCSI-Adapterliste abrufen

    Das Auflisten der vSAN-Datastores erfolgt mit

    esxcli vsan datastore list

    Und so zeigt man die für den vSAN-Cluster verwendeten Kernel-Adapter, einschließlich Witness, an:

    esxcli vsan network list

     Die von vSAN verwendeten Kernel-Adapter anzeigen

    Zusammenfassung

    VMwares Hypervisor lässt sich nicht nur über die bekannten Web-GUIs von vCenter und Host-Client verwalten, sondern auch via Kommandozeile. Das Dienstprogramm esxcli bietet einen großen Befehlsumfang, der zahlreiche Aufgaben abdeckt. Darunter sind auch solche, die sich über den Browser nicht so ohne weiteres erledigen lassen.

    Voraussetzung für den Einsatz von esxcli ist jedoch, dass man die Shell bzw. SSH auf dem Host aktiviert, was in manchen Umgebungen aus Sicherheitsgründen nicht erwünscht ist.

    Anhang: Übersicht der Namespaces

    Folgende Tabelle listet alle verfügbaren Namespaces auf.

    Befehl Beschreibung
    esxcli device Listet die Beschreibungen von Gerätebefehlen auf
    esxcli elxnet Zeigt Beschreibungen für Befehle an, mit denen Emulex elxnet-Treiber verwaltet werden
    esxcli esxcli Listet Beschreibungen von esxcli-Befehlen auf
    esxcli fcoe FCOE-Befehle (Fibre Channel over Ethernet)
    esxcli graphics Befehle für das Grafiksystem
    esxcli hardware Der Hardware-Namespace wird hauptsächlich zum Extrahieren von Informationen über das aktuelle Setup verwendet.
    esxcli iscsi Namespace für die Überwachung und Verwaltung von Hardware- und Software-iSCSI.
    esxcli network Namespace für die Verwaltung virtueller Netzwerke, einschließlich virtueller Switches und VMkernel-Netzwerkschnittstellen
    esxcli nvme Befehle für die Verwaltung von NVMe-Geräten
    esxcli rdma Befehle zur Überwachung von RDMA-Geräten
    esxcli sched Befehle zur Verwaltung des gemeinsam genutzten systemweiten Auslagerungsspeichers.
    esxcli software Enthält Befehle zum Verwalten und Installieren von Image-Profilen und VIBs
    esxcli storage Enthält Core-Storage-Befehle und andere Speicherverwaltungsbefehle
    esxcli system Systemüberwachungs- und Verwaltungsbefehl
    esxcli vm Namespace zum Auflisten virtueller Maschinen und zu ihrem erzwungenen Herunterfahren.
    esxcli vsan Namespace für Virtual-SAN-Verwaltungsbefehle.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Drilling
    Thomas Drilling arbeitet seit mehr als 20 Jahren selb­ständig als Redakteur und Autor für viele ehe­malige und aktuelle IT-Magazine sowie Blogs. Thomas ist zudem Buch­autor und IT-Consultant. Seit 5 Jahren ist Thomas neben seiner journa­listischen Tätig­keit haupt­beruflicher, selb­ständiger IT-Trainer für VMware und Microsoft.

    Seine Themen­schwer­punkte sind Virtua­lisierung und Cloud Com­puting, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zerti­fi­zierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausge­zeichnet.

    Thomas ist außerdem zertifi­zierter AWS Solu­tions Archi­tect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Admini­strator.

    Thomas führt aktuell jeden zwei­ten Mon­tag einen 4-tägigen Grund­lagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Infor­mationen und Anmel­dung über sein AWS-Blog.

    Verwandte Beiträge

    Weitere Links