VMware vSphere-VCSA-Tipps

Teil 2: CLI-Zugang via BASH, SSH und vSphere-API

| Autor: Thomas Drilling

Drillings Open-Source-Eck
Drillings Open-Source-Eck (Bild: Thomas Drilling)

Auch ein vCenter Server lässt sich wie jeder ESXi-Host über die Kommandozeile verwalten. Allerdings hat VMware der direkten Zugänglichkeit zu Shell aus Sicherheitsgründen einige Barrieren vorgeschaltet. Dieser Beitrag zeigt, wie man den Zugang zur vCenter-Appliance VCVA freiräumt.

Wurde die VCSA-Appliance erfolgreich ausgerollt, stehen standardmäßig drei „Schnittstellen“ zum System zur Verfügung.

Eine der wichtigsten „Funktionen“ des vCenters ist das Bereitstellen des vSphere Web-Clients durch den Dienst „vsphere-client“. Der Web Client ist dann standardmäßig unter https://<IP-oder-FQDN-VCSa>/ vsphere-client verfügbar. Frühere Versionen (vor 6.0) erforderten noch das explizite Angeben des Ports 9443, bzw. 443 für SSH. Bei der aktuellen Version gilt das nicht mehr.

Übrigens lässt sich die Sprache des Webinterfaces nicht in dessen Einstellungen auswählen, sondern muss über den Browser-Kontext „angefragt“ werden. So liefert beispielsweise der Aufruf 

https://<IP-oder-FQDN-VCSa>/vsphere-client/?locale=en_US

die amerikanische Lokalisierung bei deutsch eingestelltem Browserkontext.

VAMI

Gleichzeit steht wie in Teil 1 dieses Beitrages erwähnt auf Port 5480 die von früheren Versionen bekannte VAMI-Oberfläche zur Post-Konfiguration zur Verfügung. Hier muss man sich dann allerdings mit dem Linux-root-Account anmelden. Nutzer können hier IP-, DNS- und Routing-Einstellungen nachträglich anpassen, das Zeit-Setup einrichten (z. B. durch Abfrage eines NTP-Servers), die Verfügbarkeit von Appliance-Updates prüfen und diese einspielen, das root-Passwort ändern oder den Zugriff aus das System via SSH und/oder Bash freischalten.

VCSA-VM-Konsole

Letzteres erreicht man aber auch auf andere Art und Weise. So stellt die VCSA-VM auch einen ganz normalen Konsolen-Zugang mit einer an die DCUI eines ESXI-Hosts angepassten ncurses-ähnlichen Menüoberfläche zur Verfügung. Schaltet man sich also mittels "VMRC" oder der vSphere-Client-Console auf die VCSA-VM, findet man analog zum ESXI-Host mit „F2“ Zugang zum Konfigurationsmodus.

Das Freischalten von SSH und/oder BASH ist dann unter „Troubleshooting Mode Options“ möglich.

Appliance-Shell

Standardmäßig ist die BASH nämlich deaktiviert. Ist SSH aktiviert, die Bash aber nicht, landet man an der sogenannten Appliance-Shell. Das Gleiche passiert, wenn man an der VCSA-Console „Alt+F1“ drückt. Die Appliance-Shell erlaubt aus Sicherheitsgründen nur rudimentäre API-Aufrufe. Welche das sind, finde man durch Eingeben von

help api list

sowie

help pi list

heraus. Auf diese Weise kann man z. B. mit

com.vmware.appliance.version1.services.list

alle verfügbaren Dienste der Appliance mit den zugehörigen Start/Stopp/Restart-Optionen auflisten.
Üblicherweise ist die ApplianceShell aber für API-Aufrufe gedacht. Möchte man von hier aus die Bash erreichen (ohne sie vorher aktiviert zu haben) gibt man Folgendes ein:

shell.set –enabled True

shell

Jetzt befindet man sich in der Bash. Möchte man diese „nachhaltig“ als Default-Shell für den root-User aktivieren, kann man wie unter Linux üblich die Datei „/etc/passwd“ mit "vi/vim" bearbeiten und nach der Zeile für den root-User suchen. Hier ersetzt man am Ende der Zeile „/bin/appliancesh“ durch „/bin/bash“.

Systemdienste

Da es sich bei der VCSA um ein Suse-Linux-Enterprise-System handelt, kann man selbstverständlich sämtliche Dienste der Appliance SysV-Init-like unter „/et/init.d“ einsehen und „steuern“. Der Web-Client ließe sich hier z. B. mittels

./vsphere-client restart

neu starten. Die meisten VCSA-spezifischen Dienste sind zwar am Präfix „vmware-„ zu erkennen, trotzdem braucht es Erfahrung, Services des unterliegenden Linux-Systems und der Appliance auseinander zu halten.
Daher hat VMware zu diesem Zweck eine eigene Service-Schnittstelle „service-control“ implementiert, mit der sich ausschließlich VCSA-spezifische Dienste komfortabel steuern lassen. Das Eingeben ohne Angabe eines spezifischen Dienstes listet alle verfügbaren Dienste, bzw. Kommandos auf. Hierzu man sich auch nicht im Pfad befinden.

service-control

Zum Verlassen der Bash, genügt das Eingeben von „exit“ und man landet wieder an der ApplianceShell. Noch einmal „exit“ loggt aus der ApplianceShell aus und führt wieder zum Login. Zurück zum grafischen Menü geht es wieder mit F2.

vSphere Management Assistant

Eine Vierte und die von VMware favorisierte Art für den Zugriff auf die vCenter-Shell ist der Einsatz der RemoteCLI. Diese ist für Windows und Linux verfügbar und basiert auf Perl. Die Linux-Variante hat VMware zudem in eine komfortabel als OVA ausrollbare Appliance, den „vSphere Management Assistant“ (vMA) verpack, dessen Handhabung Teil drei dieser Tipp-Reihe beschreibt.