Tags: ESXi, OS Deployment, PXE
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
Ist das erledigt, können Sie die VM starten (ohne ein Installations-ISO eingelegt zu haben) und der ESXi-Host sollte problemlos in den Installer booten.
Hinweis von VMware: Neuere Versionen von mboot.efi können im Allgemeinen ältere Versionen von ESXi booten, aber ältere Versionen von mboot.efi möglicherweise keine neueren ESXi. Wenn Sie mehrere Hosts konfigurieren möchten, um verschiedene Versionen des ESXi-Installationsprogramms zu starten, verwenden Sie daher mboot.efi aus der neuesten Version.
Täglich Know-how für IT-Pros mit unserem Newsletter
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Verwandte Beiträge
Weitere Links