Howto: ESXi auf der Kommandozeile über SSH verwalten

Einen ESXi Host von der Kommandozeile aus zu administrieren, ist eigentlich nicht vorgesehen und eröffnet auch für Kommandozeilenprofis nur sehr eingeschränkte Möglichkeiten. Aber ein paar hilfreiche Befehle gibt es dennoch, mit denen man beispielsweise eine VM starten oder stoppen kann.

20. Jun 2012 20:14

Für die Verwaltung eines ESXi Hosts steht eine Client Anwendung (vSphere Client) zur Verfügung. Wer (wie ich häufig, eigentlich immer) diesen Client auf einer VM des betreffenden Hosts installiert und vergisst, diese VM in den Autostart zu legen, der hat nach einem Neustart des Hosts (beispielsweise nach einem Stromausfall) eigentlich verloren, es sei denn, die Option, sich auf dem ESXi Host via SSH anzumelden, ist aktiviert.

In diesem Fall ist es möglich, die virtuellen Gastsysteme mit Hilfe der Kommandozeile zu starten. Dazu besorgt man sich zunächst die ID (Vmid) jeder virtuellen Maschine, die auf dem ESXi Host abgelegt ist:

vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
160 sample [vm] sample/sample.vmx winXPProGuest vmx-07


Um die virtuelle Maschine einzuschalten, auszuschalten oder sich Details der Konfiguration anzusehen:

# einschalten:
vim-cmd vmsvc/power.on 160
# ausschalten:
vim-cmd vmsvc/power.off 160
# config details anzeigen
vim-cmd vmsvc/get.summary 160


In den Details der Konfiguration werden die Werte angezeigt, die zur Laufzeit im Host für diese VM zutreffend sind, d.h. nicht nur der Inhalt der vmx-Datei.

In diesem Zusammenhang werde ich übrigens oft gefragt, ob es nicht einfacher ist, sich die für den vSphere Client zur Administration nötigen Ports einfach über einen SSH-Tunnel zu öffnen und dann mit dem lokal installierten vSphere Client zu arbeiten. Das geht zwar, aber es ist nicht (!) einfacher, denn VMware hat dem Administrator freundlicherweise auch hier ein paar Stolpersteine in den Weg gelegt.

 
π