Tags: ESXi, Kommandozeile, SSH
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 Dienstprogramm 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 Sicherheitsrichtlinie 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.
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.
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
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
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
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
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
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 Festplatteninformationen 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.
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
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
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Verwandte Beiträge
- VMware ESXi 5.x: Warnung für SSH und Shell deaktivieren
- Mit SSH auf VMware ESXi zugreifen
- ESXi-Konfiguration sichern über vCLI, PowerCLI oder die ESXi-Shell
- Upgrade auf ESXi 6.5 / 6.7 Free direkt vom VMware Online-Depot installieren
- Ubuntu on Windows 10: bash, gcc, sed, ssh, vi nativ als ELF64 ausführen
Weitere Links