Marco Burmeister

  private Homepage



VMWare ESXi Tipps



Auf dieser Seite sammel ich Themen außerhalb der initialen Installation oder des Upgrades, die die Arbeit mit dem System vereinfachen oder die einfach nur noch sinnvoll sind sie einzustellen.
Mein konkreter Anlass war, dass ich aufgrund eines Datenträgerfehlers meine Installation neu aufbauen durfte.

Die folgenden Themen haben wir auf der Seite:

Hinweis:
Die Nutzung der hier geschilderten Anleitung geschieht auf eigene Gefahr!




top Einspielen der Lizenz

Auf der Download-Seite zum ESXi steht auf der Webseite auch der Lizenzschlüssel.

Finden des Bereichs in der Oberfläche:

  1. Aufrufen de Web-Seite http://[hostname-ESXi-Server]/ui]
  2. mit linker Maustaste auf "Host" klicken
  3. mit linker Maustaste auf "Verwalten" klicken
  4. im rechten Fenster den TAB "Lizensierung" anklicken
Anpassung Lizenz:
  1. Es gibt in dem TAB die Möglichkeit über die Menüs eine Lizenz zu entfernen oder zuzuweisen.




top SSH Login mit Public Key

Ich gehe davon aus, dass bereits ein Key-Paar bestehend aus Private und Public Key im openssh-Format vorliegt.

  1. Anmelden an ESXi Server mittels SSH (ggfs. muss auf der ESXI Konsole erstmal der SSH-Zugang aktiviert werden!)
  2. Eingabe von Nutzer und Passwort ist nun erstmal erforderlich.
  3. In der Datei
    authorized_keys
    ist der Public Key einzutragen. Die Datei ist zu finden an der unten aufgeführten Stelle. Dabei ist darauf zu achten, dass der Pfad für jeden Nutzer unterschiedlich ist und nicht wie bei Linux üblich unterhalb von
    /home/
    liegt.
    Der Pfad befindet sich bei ESXi in:
    (Anmerkung: \ = Zeilenumbruch)
    /etc/ssh/keys-<username>/authorized_keys
    
    /etc/ssh/keys-<username>\
    	/authorized_keys
    			
  4. Es muss noch die Berechtigung auf das File
    authorized_keys
    wie folgt angepasst werden
    -rw-------
  5. Nach der Eintragung ist die Anmeldung via Public Key anstatt eines Passwortes möglich.
  6. Um zu prüfen, ob ROOT-Zugang richtig aktiviert ist, muss in der Datei
    /etc/ssh/sshd_config
    für den Parameter
    PermitRootLogin
    der Wert
    yes
    stehen.
  7. Optional: Wir können nun mit einem Passwort oder dem SSH-Key einen Login durchführen. Wenn Sicherheit wichtig ist, sollte nun die Anmeldung mittels Passwort deaktviert werden. Hierzu in der Datei
    /etc/ssh/sshd_config
    die Parameter
    ChallengeResponseAuthentication
    und
    PasswordAuthentication
    auf den Wert
    no
    setzen.
    Im Anschluss muss der SSH-Daemon durchgestartet bzw neugeladen werden (alternativ Server booten):
    /etc/init.d/SSH restart
    oder
    service sshd reload




top OS Alias

Manchmal möchte ich bestimmte Befehle nicht immer eingeben oder eine Kurzschreibweise haben. Hierfür bietet sich das Alias-Kommando an. Das kann auch im ESXi-Umfeld genutzt werden.

Beispiel zur Einrichtung:

  1. Anmeldung an OS vom Server
  2. mit
    vi
    die Datei
    /etc/profile.local
    anpassen
  3. Hier nun z.B. für das Kommando
    ll
    die folgende Zeile ergänzen:
    alias ll='ls -al'
  4. Bei der nächsten Anmeldung ist der Alias dann aktiv




top Konfiguration Auslagerungbereich auf den Datenspeicherbereich

Bisher habe ich das nur während Patch-Aktionen wirklich benötigt.

Vorgehen:

  1. Anmelden an ESXi Web-Interface
  2. Menü
    Verwalten
    ->
    System
    ->
    Auslagerung
    auswählen.
  3. Im folgenden Menü auf der rechten Seite kann man nun einen Datenspeicher auswählen - es werden dort keine Daten gelöscht!




top NTP Client-Dienst einrichten

Nach der Erstinstallation findet kein Abgleich der Uhrzeit mit der Welt außerhalb des Servers statt. Damit die Uhrzeit korrekt bleibt, sollte ein NTP-Dienst eingerichtet werden.

Vorgehen:

  1. Anmelden an ESXi Web-Interface
  2. Menü
    Verwalten
    ->
    System
    ->
    Uhrzeit und Datum
    auswählen.
  3. Nun den Button
    Einstellungen bearbeiten
    anlicken
  4. Folgende Einstellung vornehmen:
    FeldWert
    NTP verwendenRadio-Button aktivieren
    Startrichtlinie für NTP-DienstMit dem Host starten und beenden
    NTP-Servereigenen NTP-Server eintragen
  5. Zum Abschluss dann noch auf den Button und die Menüpunkte
    Aktion
    ->
    NTP-Dienst
    ->
    Starten
    drücken




top Einrichtung des Oracle RAC Interconnect Netzwerks

Für die Installation eines Oracle RAC für Testzwecke, zum Beispiel zur Vorbereitung einer Zertifizierung, werden mind. zwei Netzwerke / Netzwerkkarten benötigt. In einem Homelab hat man oft aber nur eine Netzwerkkarte im Rechner und auch nur eine Netzinfrastruktur. Damit trotzdem ein Oracle RAC aufgebaut werden kann, muss eine weitere Netzwerkkarte im ESXi definiert werden. Dieses Netz benötigt keine Kommunikation außerhalb des ESXi Systems, da über dieses Netz nur die VMs untereinander kommunizieren müssen und sollen.

Vorgehen:

  1. Anmelden an ESXi Web-Interface
  2. Menübaum auf der linke Seite den Punkt
    Netzwerk
    auswählen.
  3. Nun über die rechte Maustaste den Punkt
    Standard-vSwitch hinzufügen
    auswählen
  4. Die folgenden Felder ausfüllen:
    FeldWert
    vSwitch-NamevSwitch-virtuell
    Sicherheit MAC-Adressänderungenaktivieren
    Sicherheit Gefälschte Übertragungenaktivieren
    Die Eingabe abschließen.
  5. Nun über die rechte Maustaste den Punkt
    Portgruppe hinzufügen
    auswählen
  6. Die folgenden Felder ausfüllen:
    FeldWert
    NameRAC-Interconnect
    VLAN-ID1 (neue Nummer)
    Virtueller SwichtvSwitch-virtuell
    Die Eingabe abschließen.
  7. Damit ist eine virtuelles Netzwerk erstellt, welches nur innerhalb des ESXi-Hosts kommunizieren wird.




top Not-Backup der Installation

Um die eigene Installation zu sichern, damit im Falle von Verlust des Datenträgers mit relativ geringem Aufwand die Installation wiederhergestellt werden kann, kann das dd-Kommando verwendet werden, wenn der ESXi-Rechner mit einer Linux Live-DVD gestartet worden ist.

Folgendes wird dafür benötigt:


Vorgehen:
  1. Reboot des ESXi-Rechners
  2. Beim Rechner-Start den Rechner von Linux Live-DVD booten lassen.
  3. USB-Speichermedium anschließen
  4. Wenn das Linux Live System gestartet worden ist, muss eine Kommand-Box geöffnet werden.
  5. Sicherstellen, dass USB-Speichermedium erreichbar ist
  6. Verzeichnis zum Mounten des USB-Speichermediums anlegen:
    sudo mkdir /bck
  7. Herausfinden, welchen Geräte-Namen das USB-Speichermedium hat:
    lsblk
    oder
    sudo fdisk -l
  8. USB-Speichermedium mounten (Beispiel-Mount einer Partition):
    sudo mount /dev/sdf2 /bck
  9. Eventuell sollte nun noch unterhalb von
    /bck
    noch ein Unterverzeichnis angelegt werden.
    Beispiel:
    sudo mkdir /bck/ESXibackup
  10. Ausführung des Backups mittels dd-Kommando

    ACHTUNG: Ein Fehler beim dd-Kommando kann Festplatten und damit Daten löschen!

    ACHTUNG: Der Namen vom Device und vom Backup-File muss auf das eigene Umfeld angepasst werden!


    Hier soll vom Device "/dev/sdb" ein Backup mittels dd-Kommando auf das File "esxi.dd" bzw. "esxi.dd.gz" ausgeführt werden.
    if=Quelle (input file)
    of=Ziel (output file)

    Beispiel1:
    (Anmerkung: \ = Zeilenumbruch)
    sudo dd if=/dev/sdb of=/bck/ESXibackup/esxi.dd bs=2048 status=progress
    
    sudo dd if=/dev/sdb of=/bck/ESXibackup/esxi.dd \
    bs=2048 status=progress
    			

    Beispiel2: Zunächst eine root-Session erhalten..
    (Anmerkung: \ = Zeilenumbruch)
    sudo -s
    dd if=/dev/sdb bs=2048 status=progress | gzip -c > /bck/ESXibackup/esxi.dd.gz
    
    sudo -s
    dd if=/dev/sdb bs=2048 status=progress | \
    gzip -c > /bck/ESXibackup/esxi.dd.gz
    			
  11. Optional: Ausführung des Restores mittels dd-Kommando

    ACHTUNG: Ein Fehler beim dd-Kommando kann Festplatten und damit Daten löschen!

    ACHTUNG: Der Namen vom Device und vom Backup-File muss auf das eigene Umfeld angepasst werden!


    Hier soll vom File "esxi.dd" bzw. "esxi.dd.gz" ein Restore mittels dd-Kommando auf das Device "/dev/sdb" ausgeführt werden.
    if=Quelle (input file)
    of=Ziel (output file)

    Beispiel1:
    (Anmerkung: \ = Zeilenumbruch)
    sudo dd if=/bck/ESXibackup/esxi.dd of=/dev/sdb bs=2048 status=progress
    
    sudo dd if=/bck/ESXibackup/esxi.dd \
     of=/dev/sdb bs=2048 status=progress
    			

    Beispiel2: Zunächst eine root-Session erhalten..
    (Anmerkung: \ = Zeilenumbruch)
    sudo -s
    gunzip -c /bck/ESXibackup/esxi.dd.gz | dd of=/dev/sdb bs=2048 status=progress
    
    sudo -s
    gunzip -c /bck/ESXibackup/esxi.dd.gz | \
    dd of=/dev/sdb bs=2048 status=progress
    			




top Fehlermeldung: 'NoneType' object has no attribute 'close'

Während eines Updates/Upgrades via direktem Download der Daten aus dem Internet kann es zur folgenden Fehlermeldung kommen:

'NoneType' object has no attribute 'close'
Das liegt daran, dass vergessen wurde in der ESXi Firewall eine temporäre Freischaltung vorzunehmen. Nach der Freischaltung kann der letzte Befehl wiederholt werden und das Einspielen sollte nun funktionieren.

Vorgehen, um den konkreten Fehler zu verhindern:
  1. Anmelden an ESXi via SSH
  2. Das eigentliche Update wird Online mittels http-Zugriff in das Internet stattfinden. Daher muss http erlaubt werden:
    (Anmerkung: \ = Zeilenumbruch)
    esxcli network firewall ruleset set -e true -r httpClient
    
    esxcli network firewall ruleset \
    set -e true -r httpClient
    			
  3. Update/Upgrade durchführen/fortsetzen
  4. Der http-Zugriff ist nun nicht mehr notwendig und sollte wieder verboten werden:
    esxcli network firewall ruleset set -e false -r httpClient
    esxcli network firewall ruleset set -e \
    	 false -r httpClient




top Fehlermeldung: 'not compliant with the ImageProfile acceptance level partner'

Beim Versuch VIB-Dateien einzuspielen, kann es zu der folgenden Fehlermeldung kommen:

(Anmerkung: \ = Zeilenumbruch)

 [AcceptanceConfigError]
 VIB Realtek_bootbank_net55-r8168_8.045a-napi's acceptance level is community, which is not compliant with the ImageProfile acceptance level partner
 To change the host acceptance level, use the 'esxcli software acceptance set' command.
 Please refer to the log file for more details.
			

esxcli network firewall ruleset \
set -e true -r httpClient
 [AcceptanceConfigError]
 VIB Realtek_bootbank_net55-r8168_8.045a-napi's \
 acceptance level is community, which is not \
 compliant with the ImageProfile acceptance level\
  partner
 To change the host acceptance level, use the \
 'esxcli software acceptance set' command.
 Please refer to the log file for more details.
			

Der Meldung wird ausgegeben, wenn die zu installierende Software nicht aus dem Hause VMWare kommt. Das ist eine Schutzmaßnahme. Das Profil kann mit einem Kommando umgestellt werden.

Vorgehen, um den konkreten Fehler/die Warnmeldung zu verhindern:
  1. Anmelden an ESXi via SSH
  2. Installation von VIB-Files aus fremden Quellen erlauben.
    (Anmerkung: \ = Zeilenumbruch)
    esxcli software acceptance set --level=CommunitySupported
    
    esxcli software acceptance \
    set --level=CommunitySupported
    			
  3. Installation nochmals versuchen.




top Netzwerkkarte Realtek 8168 aktivieren

Einige Netzwerkkarten werden in privaten Homelab-Rechnern durch die ESXi Installation nicht erkannt. Hier hilft oftmals der Download und das Einspielen der Treiber aus sicheren Quellen. Das sind für mich insbesondere v-front: Download Netzwerk-Treiber-VIB (Updated driver for Realtek 8168/8111/8411/8118 based NICs) und Flings - Netzwerktreiber USB-Netzwerkkarten.
In meinem Fall wurde eine Realtek Netzwerkkarte auf meinem Motherboard nicht erkannt. Deshalb habe ich die entsprechenden Treiber von v-front heruntergeladen und installiert.

Vorgehen Analyse:

  1. Anmelden an ESXi via SSH
  2. Nun den folgenden Befehl ausführen, um herauszufinden, welche Netzwerkkarte verbaut ist.
    lspci -v | grep "Class 0200" -B 1
    Hier kommt für mein Motherboard z.B. die folgende Ausgabe heraus:

    (Anmerkung: \ = Zeilenumbruch)
    0000:03:00.0 Network controller Ethernet controller: Realtek Semiconductor Co., Ltd. Onboard Ethernet [vmnic1]
             Class 0200: 10ec:8168
          
    
    0000:03:00.0 Network controller \
    Ethernet controller: Realtek \
    Semiconductor Co., Ltd. Onboard \
    Ethernet [vmnic1]
             Class 0200: 10ec:8168
          
  3. Mit der PCI-ID
    10ec:8168
    nun bei v-front nachschauen, ob für die Netzwerkkarte dort unterstützte Treiber vorhanden sind.
    Stand April 2021 ist hier in dem Fall das folgende Treiber-Paket passend: net55-r8168

    Ist das der Fall, kann von dort der Treiber installiert werden. Hier gibt es drei Wege, die ich kenne:
    1. Installation via VIB-Datei (Download der Datei erforderlich - danach Ablage auf ESXi Rechner)
    2. Installation via ZIP-Datei (Download der Datei erforderlich - danach Ablage auf ESXi Rechner)
    3. Installation via direktem Web-Zugriff

Vorgehen Installation des Treibers:
  1. Anmelden an ESXi via SSH
  2. In den Wartungsmodus wechseln oder sicherstellen, dass keine VM läuft.
    Das geht entweder via Weboberfläche oder mit dem ESXi-Shell Befehl:
    (Anmerkung: \ = Zeilenumbruch)
    vim-cmd /hostsvc/maintenance_mode_enter
    
    vim-cmd \
    /hostsvc/maintenance_mode_enter
    			
  3. Installation von VIB-Files aus fremden Quellen erlauben.
    (Anmerkung: \ = Zeilenumbruch)
    esxcli software acceptance set --level=CommunitySupported
    
    esxcli software acceptance \
    set --level=CommunitySupported
    			
  4. Installation durchführen:
    1. Variante VIB-File:
      (Anmerkung: \ = Zeilenumbruch)
      esxcli software vib install -v /[voller Pfad im OS]/net55-r8168-8.045a-napi.x86_64.vib
      
      esxcli software vib install -v \
      /[voller Pfad im OS]/ \
      net55-r8168-8.045a-napi.x86_64.vib
      					
    2. Variante ZIP-File:
      (Anmerkung: \ = Zeilenumbruch)
      esxcli software vib install -d /[voller Pfad im OS]/net55-r8168-8.045a-napi-offline_bundle.zip
      
      esxcli software vib install -d \
      /[voller Pfad im OS]/ \
      net55-r8168-8.045a-napi-offline_bundle.zip
      					
    3. Variante via direktem Zugriff in das Internet:

      Das eigentliche Update wird Online mittels http-Zugriff in das Internet stattfinden. Daher muss http erlaubt werden:
      (Anmerkung: \ = Zeilenumbruch)
      esxcli network firewall ruleset set -e true -r httpClient
      
      esxcli network firewall ruleset \
      set -e true -r httpClient
      					

      Installation:
      (Anmerkung: \ = Zeilenumbruch)
      esxcli software vib install -d https://vibsdepot.v-front.de -n net55-r8168
      
      esxcli software vib install -d \
      https://vibsdepot.v-front.de \
      -n net55-r8168
      					

      Der http- Zugriff ist nun nicht mehr notwendig und sollte wieder verboten werden:
      esxcli network firewall ruleset set -e false -r httpClient
      esxcli network firewall ruleset set -e \
       false -r httpClient
  5. Installationsergebnis, wenn das Ergebnis erfolgreich war:
    (Anmerkung: \ = Zeilenumbruch)
    
    	Installation Result
    Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
    Reboot Required: true
    VIBs Installed: Realtek_bootbank_net55-r8168_8.045a-napi
    VIBs Removed:
    VIBs Skipped:
    			
    
    	Installation Result
    Message: The update completed \
    successfully, but the system \
    needs to be rebooted for the \
    changes to be effective.
    Reboot Required: true
    VIBs Installed: Realtek_bootbank\
    _net55-r8168_8.045a-napi
    VIBs Removed:
    VIBs Skipped:
    			
  6. Maintenance-Mode deaktivieren.
    Das geht entweder via Weboberfläche oder mit dem ESXi-Shell Befehl:

    (Anmerkung: \ = Zeilenumbruch)
    vim-cmd /hostsvc/maintenance_mode_exit
    
    vim-cmd \
    /hostsvc/maintenance_mode_exit
    			
  7. Rechner rebooten




top Links zum Thema

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!