VMware vSphere CLI „Connect to failed. Server SHA-1 thumbprint FF…

Problem

Die neuen VMware vSphere CLI Tools ab Version 6.0+ (Download v6.5) möchten nicht mehr „einfach so“ eine ESXcli Verbindung aufbauen. Wenn man einen Befehl startet, kommt sofort die Fehlermeldung „Server SHA-1 thumbprint <not trusted>“.

C:\>esxcli -s <SERVER> -u root -p <PASSWORT>

Connect to <SERVER> failed. Server SHA-1 thumbprint: F5:CE:AF:AF:D2:13:48:3D:C2:FB
:EE:C9:22:BE:B8:39:20:09:9D:B5 (not trusted).
C:\>

Das passiert, weil vSphere heute ganz spontan noch total viel sicherer ist als früher. Blöderweise laufen alle möglichen Scripts damit nun ins leere. Selbstverständlich gibt ESXCLI trotz des Fehlers den Errorlevel 0 („Erfolg“) zurück *seufz*

Lösung

Die schnellste und einfachste Möglichkeit: Den Fingerabdruck des Server an der Kommandozeile mitgeben.

C:\>esxcli -s <SERVER> -u root -p <PASSWORT> --thumbprint <THUMBPRINT>

Eine ‚permanente‘ Lösung ist dann (zum Beispiel), gar nicht direkt mit dem ESX-Host zu sprechen sondern über den vCenter Server über den Parameter ‚vihost‘ mit dem Host. Das erlaubt es, das vCenter Server Zertifikat vorher in den lokalen Zertifikatsspeicher zu importieren und somit der Maschine zu vertrauen.

  1. Die lokalen vSphere root-Zertifikate herunterladen und in den Stammzertifizierungsstellen-Speicher importierenvmware-root-zertifikat-herunterladen
  2. C:\>esxcli -s <VCENTER-SERVER> -u root -p <PASSWORT> --vihost <ESX-HOST>

 

vmWare vSphere 5.5 vCenter/VCSA administrator SSO-Kennwort (administrator@vsphere.local) zurücksetzen

Unter vmware vSphere 5.1/5.5 nutzt der schnelle Admin in kleineren Umgebungen gerne das root-Kennwort oder die lokale Benutzerstruktur des vCenter Servers, respektive der vCenter Server Appliance (vCSA). Das Single-Sign On (SSO) System ist zwar recht nett, aber für kleine und übesichgtlinbe Netze oft etwas überdimensioniert. Beim Upgrade (oder der SSO-Verbindung) wird das Kennwort aber zwingend benötigt.

vsphere-sso-kennwort-zuruecksetzenAdministrator-Kennwort der vCenter Server Appliance (VCSA) zurücksetzen

  1. SSH-Verbindung zur vCenter Server Appliance öffnen
  2. Ausführen:
    vcenter55:~ # /usr/lib/vmware-vmdir/bin/vdcadmintool
  3. Im Admin-Tool „3“ drücken („Reset account password“)
  4. Den DN des administrators eingeben. In der Standarteinstellung lautet dieser:
    cn=administrator,cn=users,dc=vSphere,dc=local
  5. Fertig, es wurde ein neues Kennwort generiert.

Achtung! Wenn das generierte Kennwort ein Ausrufezeichen enthalten sollte („!“), funktioniet die Kennwortänderung in der Weboberfläche nicht mehr. Die Admins raten dazu, einfach ein neues zu generieren, bis kein ausrufezeichen mehr drin ist …

Administrator-Kennwort unter vCenter Server (Windows) zurücksetzen

Auf dem vCenter SSO-Server anmelden (RDP oder Console). Meistens sind vCenter und SSO auf einer Maschine installier.

  1. CMD als Administrator (!) öffnen
  2. Ausführen:
    c:\> CD "%ProgramFiles%\VMware\Infrastructure\VMware\CIS\vmdird"
    C:\Program Files\VMware\Infrastructure\VMware\CIS\vmdird> vdcadmintool.exe
  3. … ab hier den Anweisungen oben unter der VCSA ab Punkt 3 folgen 🙂

Achtung! Auch unter Windows dringend Ausrufezeichen und Emojies in Kennwörtern vermeiden. Dinge explodieren sonst später mit absurden Fehlermeldungen.

VMWare ESXi: „Es wurde kein Ziel für Coredumps konfiguriert. Derzeit können keine Coredumps für den Host gespeichert werden.“

Es wurde kein Ziel für Coredumps konfiguriert. Derzeit können keine coredumps für den Host gespeichert werden

Es gibt zwei Möglichkeiten, die Meldung „Es wurde kein Ziel für Coredumps konfiguriert. Derzeit können keine coredumps für den Host gespeichert werden“ los zu werden. Es gibt den „sauberen“ Weg, der ein neues Ziel für die Kerneldumps angibt, den schnellen und einfachen Weg Coredumps ganz abzuschalten und die schnelle „Hackery“ Die Warnung (pro Host) zu entfernen.

Möglichkeit 1 (korrekt): Neues Ziel für coredumps konfigurieren

1) Per SSH am Server anmelden und die coredump Konfiguration anschauen:

~ # esxcfg-dumppart -l
Configured Dump Partition Not Found, Skipping

3) Freie Partitionen für Coredumps anschauen:

~ # esxcfg-dumppart -f

4) Die passende Partition zur coredump config hinzufügen:

~ # esxcfg-dumppart -s name

Zum Beispiel: esxcfg-dumppart -s naa.444408f4444000071c57384957867ee:7

Danach steht in der Ausgabe von esxcfg-dumppart -l in der Spalte „Is Active“ bei der entsprechenden Partiton ein „Yes“ und die Meldung im vSphere Client ist verschwunden.

Möglichkeit 2 (naja): Coredumps abschalten

Die coredump.Funktion des Kernels lässt sich auch komplett deaktivieren. Das geht unter Konfiguration -> Erweiterte Einstellungen -> VMKernel. Danach ist ein Host-Reboot notwendig.

es-wurde-kein-ziel-fuer-coredumps-konfiguriert-abschalten

Möglichkeit 3 (Hackery): Coredump-Warnung abschalten

Diese Eintellung ist pro Host möglich und verhindert die gelbe Warnmeldung. Die Einträge im Logfile bleiben vorhanden.

Host > Konfiguration > Erweiterte Einstellungen > UserVars > UserVars.SuppressCoredumpWarning auf 1 stellen

kein-coredump-ziel-konfiguriert-warnung-ausschalten

vmWare Gast VM ohne vCenter von einem Host auf einen anderen verschieben

Problem

Auf QUELLHOST ist eine VM die auf ZIELHOST verschoben werden soll. Es gibt kein Shared Storage, kein vCenter und keine sonstigen Werkzeuge.

Lösung

Es gibt zwei ganz gute Möglichkeiten eine VM von ESX-zu-ESX zu kopieren. Einmal das ovftool (schnell) und scp (im Lieferumfang). Ersteres berücksichtigt die VM(X) selbst, also auch die Einstellungen wie verbundene Netzwerke und VMDKs die in anderen Ordnern liegen. SCP dagegen kann „nur“ stumpf Dateien kopieren, ist dafür aber in jedem SSH-Paket (auf jedem ESX/i) enthalten.

Virtuelle Maschine mit OVFTool kopieren

  1. Das vmware „OVF Tool“ herunterladen und auf einem Rechenr (Windows/Linux/Mac …) installieren: https://www.vmware.com/support/developer/ovf/
  2. Syntax:
    ovftool -ds="ZIELDATASTORENAME" "vi://root@QUELLHOST/VMNAME" "vi://root@ZIELHOST"

Es gibt einige mögliche Fehler die hierbei öfters auftreten:

Error: No network mapping specified OVF networks

Die Quellmaschine ist mit einem virtuellen Netzwerk verbunden, das der Zielhost nicht kennt. Entweder das Quellnetz umbenennen, NIC entfernen oder das Zielnetz anpassen. Es gibt auch die Möglichkeit das Ziel an der Kommandozeile anzupassen, aber da wir das in diesem Fall nicht brauchten, müsst ihr selber in die Dokumentation schauen 🙂

The operation is not supported on the object. Completed with errors

vmware-maschine-ohne-vcenter-kopierenAuf Quelle und Ziel müssen die SSH/HTTP/HTTPS-Dienste sowohl gestartet als auch in der Firewall freigegeben sein. In diesem Fall war es der SSH-Client, bzw. dessen ausgehende Verbindung. Alle ESX-Server haben auch ausgehende (!) firewall aktiv. Zudem muss die zu kopierende Maschine ausgeschaltet sein.

Virtuelle Maschine mit SCP kopieren

  1. Auf der Quellmaschine ausgehende SSH-Verbindungen („SSH-Client“) in der Firewall erlauben und dne SSH-Server starten.
  2. Auf dem Zielserver SSH-Server starten und eingehende Verbindungen erlauben (standart)
  3. SCP Syntax auf dem Quellhost:
     # scp -r /vmfs/volumes/QUELLDATASTORE/QUELLMASCHINE root@ZIELHOST:/vmfs/volumes/ZIELDATASTORENAME

Die Übertragung ist verschlüsselt, sicher und sehr zerlässig. Leider nicht wahnsinnig schnell. Auf einem aktuellen Host habe ich soeben einige Maschinen mit 30-40Mb/S umgezogen. Innerhalb des Clusters, über das vCenter, lief die Kopie mit rund 160Mb/s. Wenn das durchgelaufen ist, gibt es die Maschine zweimal (SCP heisst „Secure copy“, nicht move), also die Quelle danach natürlich löschen.

VMware vCenter Server Appliance Upgrade 5.5 auf 6.0 schlägt fehl: File /usr/lib/vmidentity-firstboot.py (2119876)

Problem

Der Upgrade Assistent in Form des netten HTML-Setups is ausgefüllt, alle Eingaben sind validiert und das Setup legt los. Nach (gefühlten) 10 Minuten steht die Migration still und es erscheint diese unfreundliche Fehlermeldung:

Firstboot script execution error: 
Encountered an internal error. Traceback (most recent call last): File "/usr/lib/vmidentity-firstboot.py", line 202, in main vmidentityFB.boot()
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 180, in boot self.dolmport()
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 1369, in dolmport self.doLSImport()
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 1411, in dolSImport returncode = self.runShellCommand(command, True)
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 1515, in runShellCommand args = shlex.split(command)
File "/opt/vmware/lib/python2.7/shlex.py", line 279, in split return list(lex)
File "/opt/vmware/lib/python2.7/shlex.py", line 269, in next token = self.get_token()
File "/opt/vmware/lib/python2.7/shlex.py", line 96, in get_token raw = self.read_token()
File "/opt/vmware/lib/python2.7/shlex.py", line 172, in read_token raise ValueError, "No closing quotation" ValueError: No closing quotation 

This is an unrecoverable error, please retry install.
If you run into this error again, please collect a support bundle and open a support request.

Lösung

Das Kennwort für root und den SSO-Adminbenutzer dürfen keine Sonderzeichen enthalten (/\+()“ Leereichen und so weiter). Einfach eine neues Kennwort nur aus Buchstaben und Zahlen vergeben, schon läuft der Assistent *kopfschüttel*

Das gilt für den root und administrator@vsphere.local, wenn SSO nicht eingerichtet ist.

Update: vmware hat dieses Verhalten zwar nicht gefixt, aber Dokumentiert: https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2119876

Howto: vmware vSphere vCenter 5.5 mit Active Directory einrichten

Die Einrichtung des vCenter Servers mit dem Active Directory als Identitätsquelle ist etwas umständlich zu erledigen als unter 4.x/5, aber der Aufwand lohnt sich. Das SSO-Backend unter vSphere 5.5 ist praktisch komplett neu geschrieben und daher deutlich gradliniger als das SSO-Gebastel von früher. Leider ist dabei einiges an Adminfreundlichkeit auf der Strecke geblieben.

Ziel dieses Artikels: Ein vCenter Server soll gegen ein Active Directory („Windows Sitzungs-Anmeldedaten verwenden“) authentifizieren. Netzwerkdaten, DNS, Hostnamen und so weiter sind korrekt eingerichtet und der vCenter Server läuft soweit.

1. vCenter zum Active Directory hinzufügen

vCenter Verwaltungs-Weboberfläche (https://vcenter55:5480) öffnen.

  1. Als root anmelden
  2. Tab vCenter Server -> Authentication den Haken bei „Active Directory Enabled“ setzen und passende Domänenanmeldedaten eingeben
  3. „Save Config“
  4. Unter „SSO“ den Usernamen für den SSO-Login merken und ein Kennwort konfigurieren
    vcenter-active-directory-sso-username
  5. vCenter Server neu starten: System -> Reboot

vcenter-active-directory-enable

2. Identitäsquelle hinzufügen

  1. In den vSphere Webclient als der (oben gemerkte) SSO-Administrator einloggen (https://vcenter55.wittgastec.de:9443/vsphere-client)
  2. Verwaltung -> Konfigurationvcenter-active-directory-hinzufuegen
  3. Oben links auf das grüne Plus, die Identitätsquelle hinzufügen und das Fenster ausfüllenvcenter-active-directory-aktivieren
  4. Domäne auswählen und „Als Standartdomäne festlegen“
    vcenter-ad-sso-standart

3. Rechte für Domänen-Benutzer oder Domänen-Gruppen hinzufügen

Der Einfachheit halber nutze ich jetzt den guten alten vSphere (C#-) Client. Flash ist für die Weboberfläche ja ein dermaßen üble Wahl, das ich soweit möglich beim Client leiben werde. Aus Abwärtskompatibilitätsgrünen kann man als Admin darauf ja eh nicht wirklich verzichten. Also Client auf und als root am vCenter anmelden.

  1. Den vCenter Server auswählen -> Berechtigungen -> unten rechte MT und „Berechtigungen hinzufügen“
  2. Einen neuen Benutzer „Hinzufügen“ und in dem Hinzufügen-Fenster oben die Domäne auswählen vcenter-active-directory-benutzer-auswaehlen
  3. Gewünschte Rechte vergeben
    vcenter-active-directory-rechte

Schon fertig 🙂

VMware vCenter Server – SQL Datenbank voll („An unrecoverable problem has occurred“)

Problem:

Der vCenter Server wird standardmäßig mit einem SQL-Express ausgeliefert, hierbei ist (unter 2008 R2) die Datenbank auf maximal 10GB limitiert.
Wenn diese Größe erreicht wird, gibt es verschiedene Symptome. z.B. ist keine Anmeldung am vCenter Server mehr möglich, (Veeam)-Sicherungen schlagen fehl, der Dienst „VMware VirtualCenter Server“ ist beendet oder in der Ereignisanzeige tauchen folgende einträge auf:

An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error[VdbODBCError] (-1) "ODBC error: (42000) - [Microsoft][SQL Server Native Client 10.0][SQL Server]Could not allocate space for object 'dbo.VPX_HOST_VM_CONFIG_OPTION'.'PK_VPX_HOST_VM_CONFIG_OPTION' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup." is returned when executing SQL statement "INSERT INTO VPX_HOST_VM_CONFIG_OPTION WITH (ROWLOCK) (HOST_ID, CONFIG_OPTION_VER, DATA, ARRAY_INDEX, CONFIG_OPTION_DESC, CREATE_SUPPORTED_FLG, DEFAULT_CONFIG_OPTION_FLG, RUN_SUPPORTED_FLG, UPGRADE_SUPPORTED_FLG) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"

(Event-Quelle: MSSQL$SQLINSTANZ; Event-ID: 1827)
Could not allocate space for object 'dbo.VPX_HOST_VM_CONFIG_OPTION'.'PK_VPX_HOST_VM_CONFIG_OPTION' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

(Event-Quelle: VMware VirtualCenter Server; Event-ID: 1000)

Lösung:

  1. Zunächst die Datenbankaufbewahrungsrichtlinie anpassen
    1. Falls eine anmeldung am vCenter Server noch möglich ist mit dem vSphere Client verbinden, unter Verwaltung -> vCenter Server-Einstellungen die Datenbankaufbewahrungsrichtlinie anpassen und danach den VMware VirtualCenter Server-Dienst beenden vcenter_datenbankaufbewahrungsrichtline_client
    2. Ist eine Anmeldung nicht mehr möglich, z.B. weil der Dienst nicht gestartet werden kann, muss die Änderung direkt in der Datenbank vorgenommen werden:
      1. Mit einem SQL Management Studio auf den SQL-Server verbinden
      2. Im Objekt Explorer die Punkte Datenbanken, VIM_VCDB (standardmäßig), Tabellen erweitern
      3. Rechtsklick auf die Tabelle dbo.VPX_PARAMETER -> Oberste 200 Zeilen bearbeiten
      4. event.maxAge und task.maxAge anpassen und event.maxAgeEnabled und task.maxAgeEnabled auf true setzen
  2. Spätestens jetzt wird das SQL Management Studio benötigt: Datenbanken -> VIM_VCDB (standardmäßig) -> Programmierbarkeit -> Gespeicherte Prozeduren erweitern
  3. Rechtsklick auf dbo.cleanup_events_tasks_proc -> Gespeicherte Prozedur ausführen… und das nächste Fenster mit OK bestätigen
  4. Die ausführung kann je nach größe der Datenbank einige Zeit in Anspruch nehmen
  5. Danach Rechtsklick auf die Datenbank VIM_VCDB -> Tasks -> Verkleinern -> Datenbank und nächstes Fenster mit OK bestätigen
  6. Auch dieser Schritt kann einige Zeit in Anspruch nehmen
  7. Die Datenbank sollte nun wieder einiges an Platz haben
  8. Der Dienst kann wieder gestartet werden und die Datenbankaufbewahrungsrichtlinie kann zurück auf den Standard gesetzt werden (180 Tage / deaktiviert für Aufgaben und Ereignisse)

VMware ESX 6.0 Host UI funktioniert nicht „503 Service Unavailable“

Problem

Nach dem Update von vSphere 5.x auf 6.0 funktioniert das coole neue Webbaierte Host-UI nicht. Stattdessen erscheint die Fehlermeldung:

503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http16LocalServiceSpecE:0xffa014e8] _serverNamespace = /ui _isRedirect = false _port = 8308)

Lösung

  1. SSH auf dem betroffenen Host aktivieren, einloggen
  2. ein Backup der Reverse-Proxy Config endpoints.conf erstellen
    # cp /etc/vmware/rhttpproxy/endpoints.conf /etc/vmware/rhttpproxy/endpoints.conf.backup
  3. die Datei /etc/vmware/rhttpproxy/endpoints.conf bearbeiten
    # vi /etc/vmware/rhttpproxy/endpoints.conf
  4. Diese Zeile entfernen (in vi durch drücken von d+d in der Zeile):
    /ui    local    8308    redirect    allow
  5. Die rhttpproxy-Dienste neu starten:
    # /etc/init.d/rhttpproxy restart
  6. Fertig. Jetzt klappt der Zugang über https://<ip>/ui wieder.

VMWare vCenter Appliance (VCSA) hängt beim booten bei „Starting VMware Log Browser“

Problem

Eine VCSA5 (VMWare vCenter Appliance 5.5*) startet nicht sauber neu und hängt beim booten bei der Meldung „Starting VMWare Log Browser“. Die VPX-Dineste der Appliance kommen nicht hoch, das vCenter ist nicht zu gebrauchen.

Lösung

Per SSH auf die Maschine und alle Dateien sowie Ordner (und enhaltene Dateien) aus /var/log/vmware/logbrowser/ löschen. Reboot, fertig.