Mit vSphere 7.0 Update 2 hat VMware eine neue Methode zum Starten des ESXi-Setups eingeführt, die natives UEFI-HTTP verwendet. Dieses bietet die Möglichkeit, ESXi über das Netzwerk zu installieren, ohne dafür die gesamte PXE-Infrastruktur (PXE-Server, TFTP und DHCP) von Auto Deploy einrichten zu müssen.
Wer PXE bzw. Auto Deploy bereits einsetzt, sollte dies auch weiterhin tun. Ein HTTP-Boot von ESXi versteht sich lediglich als weitere Option zum Starten von ESXi über das Netzwerk. Alles was Sie dazu benötigen, ist ein Web-Server und die Konfiguration einiger erweiterter VM-Parameter.
Voraussetzungen
Wer dieses Setup ausprobieren möchte, braucht einen ESXi-Host, der UEFI-Firmware mit HTTP-Support unterstützt. Ich verwende in der Lab-Umgebung dafür einen virtualisierten ESXi-Host.
Ferner benötigen wir ein aktuelles Installations-ISO mit ESXi 7.0 U2 oder höher und (optional) eine Kickstart-Datei für die unbeaufsichtigte Installation.
Web-Server vorbereiten
Zuerst extrahieren Sie das Installer-ISO für ESXi und kopieren die gesamte Verzeichnisstruktur inklusive aller Dateien in einen Ordner auf Ihrem Web-Server. Ich verwende hierzu einfach einen frisch aufgesetzten IIS. Das Zielverzeichnis ist in diesem Fall C:\inetpub\wwwroot\esxi
Dann kopieren Sie von der gerade extrahierten ISO die Datei /efi/boot/bootx64.efi in ein Verzeichnis auf Ihrem HTTP-Server und benennen Sie die Datei in mboot.efi um.
Wir verwenden für die Datei einfach dasselbe ESXi-Verzeichnis. Dann öffnen Sie die Datei /efi/boot/boot.cfg und ändern Sie einige Einträge.
Erst müssen Sie die folgende Zeile mit der URL des neu erstellten Verzeichnisses hinzufügen:
prefix=http://<IP Webserver>/esxi
Die Dateinamen in den Zeilen kernel= und modules= beginnen mit einem Schrägstrich (/). Löschen Sie dieses Zeichen dort und bei allen anderen Dateinamen.
Wenn die Zeile
kernelopt=
die Zeichenkette „cdromBoot“ enthält, dann entfernen Sie nur diesen String.
Für eine Script-gesteuerte Installation fügen Sie in der Datei boot.cfg nach dem Kernel-Befehl die Option kernelopt ein und geben Sie den Speicherort des Installations-Scripts an. Die Anweisung könnte so aussehen:
kernelopt=ks=http://www.example.com/esxi_ksFiles/ks.cfg
Tipp: UEFI-HTTP unterstützt das Starten mehrerer Versionen des ESXi-Setups. Sie verwenden dann anfänglich denselben Bootloader mboot.efi für alle Zielmaschinen, danach jedoch unterschiedliche boot.cfg-Dateien, und zwar abhängig von der MAC-Adresse der Server.
Stellen Sie sicher, dass auf Ihren Web-Server zugegriffen werden kann und er nicht durch eine Firewall blockiert wird. Auf unserem Windows-IIS erlauben wir dazu Port 80.
Virtualisierter ESXi-Host
Jetzt benötigen Sie für den Test im Lab einen virtualisierten ESXi-Host. Den können Sie wahlweise auf einem physischen ESXi-Server via Host-Client erstellen oder erstellen eine VM für einen verschachtelten ESXi. Achtung: Für Nested Virtualization gibt es keinen Support von VMware.
Wichtig ist hierbei, dass Sie im Reiter VM Optionen unter Erweitert => Konfigurationsparameter => Konfiguration bearbeiten zwei Parameter manuell hinzufügen:
networkBootProtocol - httpv4
networkBootUri - http://172.20.10.81/esxi/efi/boot/bootx64.efi