vSphere HTML5 Web Client Fling

Vor einigen Tagen haben VMware-Entwickler ein neues Fling mit dem Namen vSphere HTML5 Web Client vorgestellt. Hinter dem Namen verbirgt sich eine auf SUSE Linux Enterprise Server 12 basierte Appliance, die einen neu entwickelten Web Client bereitstellt. Im Gegensatz zum altbekannten Web Client beschränkt sich dieser auf HTML5 und JavaScript, er kommt somit ohne Beelzebub Flash aus. Damit hat eine Entwicklung begonnen, die viele Kunden erfreuen dürfte - schließlich ist seit längerer Zeit bekannt, dass Flash eine stagnierende und sicherheitskritische Technologie ist.

Eine ähnliche Entwicklung gab es letztes Jahr schon beim vSphere Client (liebevoll auch "Legacy Client" genannt). Mit dem vSphere Embedded Host Client gibt es ein Fling, welches einen ESXi-Host um eine HTML5-basierte Oberfläche erweiterte. Nach einigen Entwicklungsversionen erhielt dieser Client unter dem Namen VMware Host Client bereits Einzug in ESXi 6.0 Update 2.

Installation

Soll die Web Client-Appliance mit einer bereits vorhandenen vCenter Server Appliance (vCSA) registriert werden, so muss kurzzeitig die Login-Shell des Root-Benutzers geändert werden. Dazu werden die folgenden Kommandos über SSH abgesetzt:

1$ ssh root@myvcsa
2# shell.set --enabled True
3# grep root /etc/passwd
4root:x:0:0:root:/root:**/bin/appliancesh**
5# chsh -s /bin/bash root
6Changing login shell for root.
7Shell changed.

Das Provisionieren der Web Client-Appliance erfordert die Definition eines IP-Pools. Nach der Bereitstellung wird die Appliance wie folgt mit der vCSA verknüpft und der Web Client gestartet (das Root-Passwort lautet demova):

 1$ ssh root@wc5
 2# **/etc/init.d/vsphere-client configure --start yes --user root --vc myvcsa.domain.loc**
 3Connecting to SSO server, you will be prompted for user's credentials
 4...
 5root@myvcsa.domain.loc's password:
 6Creating /etc/vmware/vsphere-client/config directory
 7Creating /etc/vmware/vsphere-client/vsphere-client directory
 8Creating /etc/vmware/vsphereFeatures directory
 9Generating keystore file and property files.
10Generating store.jks file...
11Extract the vsphere-webclient certificate from VECS
12Extract the vsphere-webclient private key from VECS
13Extract the certificate from the TRUSTED_ROOTS VECS store
14Picked up JAVA_TOOL_OPTIONS: -Xms32M -Xmx128M
15Certificate was added to keystore
16Group the vsphere-webclient private key and certificate into a .p12 file
17Picked up JAVA_TOOL_OPTIONS: -Xms32M -Xmx128M
18Entry for alias vsphere-webclient successfully imported.
19Import command completed:  1 entries successfully imported, 0 entries failed or cancelled
20Generating webclient.properties file...
21Using myvcsa.domain.loc for generating URLs in webclient.properties
22Copy ds.properties file
23Copy vsphereFeatures.cfg file
24prepared files: store.jks, webclient.properties, ds.properties
25Downloading keystore file and property files.
26Configuration process completed! Type '/etc/init.d/vsphere-client start' to start the vSphere Client server.
27Starting vSphere Client Web Server
28vSphere Client Web Server successfully started in 100 seconds

Übrigens ist es unabdingbar, dass beide Appliances die korrekte Uhrzeit verwenden - ansonsten kommt es zu Authentifizierungsproblemen. In diesem Zuge empfiehlt es sich also, die Uhrzeiten zu überprüfen:

1vcsa # date
2w5 # date

Anschließend kann die Standard-Shell des Root-Benutzers zurückgesetzt werden:

1$ ssh root@myvcsa
2# chsh -s /bin/appliancesh root
3# logout

Die Web-Oberfläche kann danach über die folgende URL aufgerufen werden: https://:9443/ui

Note

Weitere Installationshinweise gibt es auf der Webseite des Flings.

Erster Eindruck

Der neue Web Client ist bedeutend schneller - sowohl der erste Start sowie das Navigieren agieren deutlich flüssiger als bei der aktuellen Flash-Variante. Mir persönlich gefällt die neu gestaltete Oberfläche  - insbesondere die klaren Linien sagen mir zu. Auf den ersten Blick erkennt man, dass sich VMware hier zeitgemäßer Bootstrap-Technik bedient hat. 🙂

Lobenswert finde ich, dass dennoch das Layout des altbekannten Clients aufrecht erhalten hat. Das dürfte Bestandskunden erfreuen, da es die Umstellung erleichtert. Schön wäre es, wenn die einzelnen Reiter per Drag&Drop alternativ angeordnet werden könnten - wie beim aktuellen Web Client. Vorteilhaft wäre auch, wenn sie die einzelnen Spalten ausblenden ließen, um Platz zu sparen.

Prinzipiell arbeitet der Client bisher zuverlässig - es sei denn, man editiert VM-Einstellungen. Hier stürzt mir fast jedes Mal der Web-Browser ab (Firefox ESR 38.x, CentOS 6.7).

Zahlreiche Funktionen und Einstellungsmöglichkeiten fehlen noch - was bei einer ersten Version jedoch nicht verwunderlich ist. Mir gefällt jedoch die Richtung, in die die Entwicklung des neuen Web Clients geht - und bin gespannt, wie es weiter geht.

Galerie

Anbei noch einige Screenshots des Clients:

Ideen

Beim Verwenden des Clients sind mir einige Dinge aufgefallen, die noch ergänzt werden könnten:

  • Vollständige "Responsive UI" - der Client verwendet die Bootstrap- und jQuery-Frameworks, ist aber noch nicht vollständig "responsive". Es wäre genial, wenn man die Oberfläche auch auf Smartphones und Tablets nutzen könnte.
  • Lokalisierung über URL- oder Menüpunkt ändern - beim konventionellen Web Client lässt sich die Sprache entsprechend anpassen; ideal, wenn man gerade eine Dokumentation erstellt
  • Interaktiver Datenspeicher-Browser - wie im Embedded Host Client, um Dateien zu kopieren, verschieben, umzubenennen oder VMs zu registrieren
  • Netzwerk-Topologieansicht - wie im Embedded Host Client
  • Schickere Performance-Graphen - derzeit werden die altbekannten Performance-Graphen des vCenters angezeigt. Im Embedded Host Client werden diese dynamisch über HTML5-/JS-Mittel erstellt, was deutlich ansprechender aussieht
  • Kombinierte Hosts/Cluster- und VM-/Ordner-Ansicht - auf sowas warte ich ja schon seit Jahren. Meiner Meinung nach braucht man oftmals beide Ansichten und durch eine kombinierte Übersicht könnte man sich so das lästige Wechseln sparen.

Das Entwickler-Team freut sich immer über Feedback - beispielsweise über das integrierte Formular im Client. Also, falls euch beim Testen etwas auffällt - einfach die Gedanken teilen. 🙂

Übersetzungen: