ESXi-Serverbereitstellung leicht gemacht: Ein Leitfaden zur Installation und Konfiguration mit ESXi-Foreman PXE Deploy
11:11, 04.04.2024
ESXi ist ein Virtualisierungstool auf Unternehmensebene. Es kann virtuelle Maschinen effizienter verwalten als einige Dienste, an die wir gewöhnt sind. Der ESXi-Server von VMware wird direkt auf dem Computer installiert, ohne das Betriebssystem des Hosts. Dann kann der Server die Hardwareressourcen steuern und Kopien der virtuellen Hardware für deren Verwaltung erstellen.
Es gibt zwei Installationsmethoden für ESXi: über Legacy oder UEFI. In diesem Leitfaden verwenden wir Legacy.
Vereinfachung der ESXi-Server-Bereitstellung: Legacy-Installationsmodus
Der Legacy-Modus muss für ältere Systeme installiert werden, die UEFI (Unified Extensible Firmware Interface) nicht unterstützen.
In diesem Schritt werden wir die Bereitstellung von ESXi-Servern durch die Installation des Legacy-Modus über einen VMware ESXi 8.0-Hypervisor angehen. Sie müssen zuvor die Foreman-Software installiert haben; falls nicht, können Sie die Anleitung zur Installation von Foreman befolgen. Wenn Sie die Software jedoch bereits installiert haben, können wir fortfahren.
Zunächst müssen wir ein Betriebssystem erstellen. Öffnen Sie Foreman, und klicken Sie auf "Betriebssystem erstellen". Fügen Sie dort das Folgende ein:
Name - ESXi-6.7.0-8169922 (ESXi-{OS Version}-{Build Number})
Major version - 6
Minor version - 7
Description - ESXi-6.7.0-8169922
Family - Redhat
Root pass hash -SHA512
Architectures - x86_64
Sie haben ein Betriebssystem-Image erstellt.
Konfigurieren mit Templates: Ein anschaulicher Ansatz
Dann müssen wir eine PXELinux-Vorlage (Name - ESXi-6.7.0-8169922) und eine Kickstart-Vorlage (Name - ESXi Minimal Kickstart) erstellen.
Für die PXELinux-Vorlage fügen Sie das Folgende ein:
DEFAULT ESXi
NOHALT 1
LABEL ESXi
KERNEL ../boot/ESXi-6.7.0-8169922/mboot.c32
APPEND -c ../boot-ESXi-6.7.0-8169922.cfg ks=<%= foreman_url("provision") %>
IPAPPEND 2
Für die Kickstart-Vorlage fügen Sie Folgendes ein:
vmaccepteula
keyboard 'US Default'
reboot
rootpw --iscrypted <%= root_pass %>
install --firstdisk --overwritevmfs --novmfsondisk
# Set the network to DHCP on the first network adapter
network --bootproto=dhcp --device=<%= @host.mac %>
%post --interpreter=busybox
# Add temporary DNS resolution so the foreman call works
echo "nameserver <%= @host.subnet.dns_primary %>" >> /etc/resolv.conf
# Inform Foreman that we are done.
wget -O /dev/null <%= foreman_url('built') %>
echo "Done with Foreman call"
Für diese Vorlage müssen Sie den Vorlagentyp auf der Registerkarte Typ der Vorlageneinstellungen in "Bereitstellungsvorlage" ändern.
Nun müssen wir beide Vorlagen als Standard festlegen, indem wir sie im Abschnitt Vorlagen auswählen.
Dann müssen wir das Image des Betriebssystems in den Foreman einspielen, aber vorher müssen wir den Inhalt dieses Images extrahieren, das im Verzeichnis /var/lib/tftpboot/tftpboot/boot/esxi/8.0 zu finden ist.
Anstatt eine separate Instanz der ESXi-Installation im Legacy-Modus zu erstellen, wurden einige Änderungen in der Konfigurationsdatei (/usr/share/foreman/app/models/concerns/pxe_loader_support.rb.) vorgenommen:
def all_loaders_map(precision = 'x64')
{
"None" => "",
"PXELinux BIOS" => "pxelinux.0",
"PXELinux UEFI" => "pxelinux.efi",
"PXELinux Alt BIOS" => "syslinux386/pxelinux.0", # Add this line
…
Die Konfigurationsdatei sieht in Legacy folgendermaßen aus:
TIMEOUT 10
DEFAULT default_PXELinux_ESXI
LABEL default_PXELinux_ESXI
KERNEL boot/esxi/8.0/mboot.c32
APPEND -c boot/esxi/8.0/boot2.cfg ks=http://address of the server from which we get the file with autosettings/unattended/provision
IPAPPEND 2
Was den Bootloader betrifft, so haben wir einen universellen verwendet, der mit verschiedenen Betriebssystemen kompatibel ist. Nach dem Neustart des Servers wird die Installation gestartet.
Das System wendet sich dann an die Kickstart-Datei des Server-Hostings (ks=http://server's address/unattended/provision), die automatische Einstellungen enthält.
Wenn ESXi Ihre Hardware unterstützt, wird die Installation reibungslos verlaufen. Am Ende erhalten Sie ein voll funktionsfähiges Betriebssystem mit zwei Benutzern mit Root-Zugriff.
Was macht die Bereitstellungsvorlage?
Die Bereitstellungsvorlage hat die folgenden Funktionen:
- Ermöglicht die Verwaltung der Netzwerkeinstellungen.
- Installiert das System auf der Festplatte.
- Ignoriert Fehler.
- Gibt den Namen des Servers und das Passwort für den Benutzer mit Root-Zugriff an.
- Ermöglicht das Hinzufügen eines weiteren Benutzers mit Root-Rechten.
- Konfiguriert die Firewall.
Rationalisierung des Prozesses: Installation von ESXi im UEFI-Modus
Das VMware ESXi-Betriebssystem kann sowohl im Legacy- als auch im UEFI-Modus installiert werden. Wenn also der Name des Betriebssystem-Images ESXi enthält, wird die Konfiguration kopiert und die LiveCD startet.
Wenn LiveCD startet, sehen Sie das Skript, das die Details der Festplatte angibt, auf der das Betriebssystem installiert werden soll. Dort müssen Sie die gewünschte Festplatte angeben (vorzugsweise nicht zu groß, aber mit mindestens 20 GB Speicherplatz) und überprüfen, ob sie Parameter namens "logisches Volumen" oder "Volumengruppe" hat - wenn sie vorhanden sind, müssen Sie sie von der Festplatte löschen.
Nachdem die Festplatte gelöscht wurde, erstellt das System eine Partition, auf der der UEFI-Bootloader ausgeführt werden kann. Die Erstellung der Partition sieht wie folgt aus:
parted -s /dev/${INST_DRIVE} mklabel gpt mkpart fat32 1MiB 1GiB set 1 esp on
EFI_PART=$(lsblk -l | grep "${INST_DRIVE}" | grep part | awk '{print $1}')
mkdir -p /mnt/{iso,efipart,wim}
wget ${medium_uri}/${branch}/esxi${os_version}pe.iso
mount -o loop esxi${os_version}pe.iso /mnt/iso
mkfs.fat -F32 /dev/$EFI_PART
mount /dev/$EFI_PART /mnt/efipart
mkdir -p /mnt/efipart/EFI/redhat/
mkdir -p /mnt/efipart/kickstart
rsync -r /mnt/iso/ /mnt/efipart/
cp /mnt/efipart/EFI/BOOT/BOOTX64.EFI /mnt/efipart/EFI/redhat/grubx64.efi
cp /mnt/efipart/EFI/BOOT/CRYPTO64.EFI /mnt/efipart/EFI/redhat/crypto64.efi
cp /mnt/efipart/EFI/BOOT/SAFEBOOT.EFI /mnt/efipart/EFI/redhat/safeboot.efi
cp /mnt/efipart/boot.cfg /mnt/efipart/EFI/redhat/boot.cfg
curl -s "<http://$>{foreman_fqdn}/unattended/provision?token=${foreman_token}" >> /mnt/efipart/kickstart/ks.cfg
tar -czf /mnt/efipart/kickstart.gz --directory=/mnt/efipart kickstart
###sed -i "s#kernelopt=runweasel cdromBoot#kernelopt=ks=file://kickstart/ks.cfg#g" /mnt/efipart/EFI/redhat/boot.cfg ##for 7.3
sed -i "s#^kernelopt.*#kernelopt=ks=file://kickstart/ks.cfg#g" /mnt/efipart/EFI/redhat/boot.cfg
sed -ie 's#^modules.*$#& --- /kickstart.gz#g' /mnt/efipart/EFI/redhat/boot.cfg
umount /mnt/iso
rm esxi${os_version}pe.iso
/usr/bin/env wget --no-proxy --quiet --output-document=/dev/null --no-check-certificate "<http://$>{foreman_fqdn}/unattended/built?token=${foreman_token}"
umount /mnt/efipart
sync
fi
reboot
Es macht folgendes:
- Es wird eine 1 GB große Partition erstellt.
- Überträgt ein ISO-Abbild nach /mnt/efipart/ und hängt es in /mnt/iso ein.
- Stellt das korrekte Funktionieren des Foreman-Laders durch eine Verzeichnisstruktur sicher.
- Extrahiert den Inhalt der Bereitstellungsvorlage in Foreman und legt ihn in der Konfigurationsdatei /mnt/efipart/kickstart/ks.cfg ab.
- Archiviert die Konfigurationsdatei und fügt sie zu den ESXi-Modulen im UEFI-Abschnitt hinzu.
- Fügt neue Modulinformationen zur Konfigurationsdatei "boot" hinzu.
- Entkoppelt die Partition und löscht ein ISO-Abbild.
- Sendet eine Anfrage an den Foreman, um den Installationsprozess zu starten.
- Leitet einen Server zum Neustart an.
Nach dem Neustart des Servers wird die UEFI-Partition zu einer vorrangigen Quelle für den Empfang von Daten. In dieser Phase beginnt Foreman mit der Suche nach der Partition (in unserem Fall ist es RedHat, die wir bei der Erstellung des Betriebssystems im Abschnitt Familie angegeben haben).
Wenn Foreman die Partition gefunden hat (in diesem Fall die RedHat-Partition), sendet es ein Signal an das System, um die ESXi-Installation zu starten. Das System beginnt dann, aktualisierte Module und Konfigurationsdateien zu entpacken, die dem System zeigen, wie es installiert und konfiguriert werden soll.
Und auch hier gilt: Wenn die Hardware vom ESXi-Hypervisor unterstützt wird, wird das System ohne Fehler installiert.
Die wichtigsten Erkenntnisse zur ESXi-Foreman PXE-Bereitstellung
Mit der ESXi-Foreman PXE-Bereitstellung ist es einfach, die Installation und Konfiguration von virtuellen ESXi-Servern zu automatisieren. Darüber hinaus bietet es eine stabile Grundlage für die Verwaltung und Kontrolle aller Bereitstellungsphasen (selbst wenn diese aus der Ferne erfolgen).
ESXi-Foreman ermöglicht die Verkürzung der Bereitstellungszeit und die Reduzierung potenzieller Fehler und bietet eine umfassende Integration mit anderen Tools und Systemen für verschiedene Virtualisierungsszenarien.