ESXi-Installation mit Kickstart automatisieren Kickstart mit Antwortdatei

Eine manu­elle Instal­lation von ESXi über das Installer-ISO führt nur zu einem rudi­mentär konfi­gurierten Host, den der Admin dann nach­träglich anpassen muss. Dagegen kann er in einer Kickstart-Antwort­datei alle mög­lichen Ein­stellungen vorab fest­legen, und diese werden dann beim Setup auto­matisch gesetzt.

Auch wenn der ESXi-Kernel gewisse Ähnlichkeiten mit Linux aufweist, was unter anderem an der Integration von Busybox liegt, so ist er dennoch eine Eigen­entwicklung von VMware. Ein netter Neben­effekt der Linux-Verwandt­schaft besteht darin, dass sich Kickstart für ESXi nutzen lässt.

Kickstart wurde ursprünglich von Red Hat entwickelt und erlaubt eine automatische Installation von Red Hat Enteprise Linux. Dabei arbeitet das Setup alle Fragen anhand einer Konfigu­rations­liste (Antwortdatei) ab, ohne dass der Benutzer eingreifen muss.

Alternative zu Auto-Deploy und Host-Profilen

Ein interaktives Einrichten von ESXi vom Installations­medium konfiguriert nur das root-Password, das Tastatur-Layout und das Management-Netzwerk per DHCP. Die weitere Anpassung erfolgt dann von Hand über die DCUI oder am Host-Client. Möchte man nicht nur die Basis­installation, sondern den kompletten ESXi-Build auto­matisieren, dann bieten sich dafür Auto-Deploy und Host-Profile an, was aber mindestens eine Enterprise-Plus-Host-Lizenz und einen einsatz­bereiten vCenter Server verlangt.

Alternativ fasst man eine Kickstart-Installation ins Auge, die sich auch mit automa­tisierter Software-Verteilung verbinden lässt. Uns sie lässt sich sogar mit dem kostenlosen vSphere Hypervisor nutzen.

Kickstart-Workflow

Zu den Vorteilen einer unbeauf­sichtigten Installation über das Netzwerk gehört zum Beispiel, dass Admins ihre ESXi-Konfiguration relativ einfach anpassen können, indem sie die Kickstart-Datei bearbeiten. Voraus­setzung dafür ist lediglich, dass der Host zur Zeit der Installation mit dem Netzwerk verbunden ist.

Die unbeaufsichtigte Netzwerk­installation via Kickstart umfasst ganz allgemein folgende Schritte:

  • Kickstart-Datei erstellen
  • Speichern der Kickstart-Datei auf einem NFS- oder HTTP-Server
  • Anpassen des Boot-Managers derart, dass dieser auf einem NFS-Server nach der Kickstart-Datei sucht
  • Booten vom ISO-Abbild unter Einbe­ziehung der Kickstart-Datei und beobachten der voll­ständigen Installation

Erstellen der Kickstart-Datei

Eine Kickstart-Datei ist eine Textdatei mit Angaben zur Konfiguration, wie sie normaler­weise für Linux-Installationen verwendet wird. Sie trägt stets die Erweiterung .cfg und ist recht einfach zu lesen und zu erstellen.

Das folgende einfache Beispiel überschreibt sämtliche vorhandenen Partitionen für das ESXi-Betriebs­system, setzt das root-Passwort und versieht das Management-Netzwerk mit einer statischen IP-Konfiguration.

Danach folgt ein erster Reboot. Im weiteren Verlauf wird ein Standard-Switch mit 4 Uplink-Adaptern angelegt und die DNS-Konfiguration mit dem Hinzufügen von zwei Name-Servern ergänzt.

#Accept the VMware End User License Agreement
vmaccepteula
# clear partitions and install
clearpart –firstdisk –overwritevmfs
install –firstdisk –overwritevmfs
#set the root password
rootpw geheim

#Host Network Settings
network –bootproto=static –addvmportgroup=1 –ip=192.168.1.77 –netmask=255.255.255.0 –gateway=192.168.1.254 –nameserver=192.168.0.12 –hostname=hv100

reboot

#Firstboot section 1
%firstboot –interpreter=busybox
sleep 30

#Enter Maintenance mode
vim-cmd hostsvc/maintenance_mode_enter

#suppress Shell Warning
esxcli system settings advanced set -o /UserVars/SuppressShellWarning -i 1
esxcli system settings advanced set -o /UserVars/ESXiShellTimeOut -i 1

#Add DNS Nameservers to /etc/resolv.conf
cat > /etc/resolv.conf << \DNS
nameserver 192.168.0.12
nameserver 8.8.8.8
DNS

#VSwitch Configurations

esxcli network vswitch standard add –vswitch-name=vSwitch0 –ports=24
esxcli network vswitch standard uplink add –uplink-name=vmnic0 –vswitch-name=vSwitch0
esxcli network vswitch standard uplink add –uplink-name=vmnic1 –vswitch-name=vSwitch0
esxcli network vswitch standard uplink add –uplink-name=vmnic2 –vswitch-name=vSwitch0
esxcli network vswitch standard uplink add –uplink-name=vmnic3 –vswitch-name=vSwitch0
esxcli network vswitch standard policy failover set –active-uplinks=vmnic0,vmnic1,vmnic2,vmnic3 –vswitch-name=vSwitch0
esxcli network vswitch standard portgroup policy failover set –portgroup-name=“Management Network“ –active-uplinks=vmnic0,vmnic1,vmnic2,vmnic3
esxcli network vswitch standard portgroup add –portgroup-name=hv100-prod0 –vswitch-name=vSwitch0
esxcli network vswitch standard portgroup remove –portgroup-name=“VM Network“ –vswitch-name=vSwitch0

#Firstboot Section 2
%firstboot –interpreter=busybox

#Disable IPv6
esxcli network ip set –ipv6-enabled=false
#Reboot
sleep 30
reboot

Die hier verwendeten IP- und Netzwerk­einstellungen sind natürlich den eigenen Gegebenheiten anzupassen. Als Versuchs­kaninchen verwende ich einen virtualisierten ESXi-Hosts mit 4 Netzwerk­karten.

Nun speichere ich den obigen Demo-Code in einer Text-Datei mit dem Namen „kickstart-hv100.cfg“ (der Name ist frei wählbar) und lege diese auf einer NFS-Freigabe ab. Es wäre aber auch möglich, sie auf einem USB-Stick, einer CD-ROM bzw. auf dem verwendeten Installations­medium selbst zu platzieren.

Dass das root-Password momentan noch im Klartext in der Kickstart-Datei steht, ist natürlich ein Sicherheits­risiko und nur der Tatsache geschuldet, dass ich mich vorerst auf den eigentlichen Workflow konzentriere.

Nun füge ich dem ESXi-Host ein virtuelles CD-Laufwerk hinzu und lege die ESXi-Installations-ISO ein.

Installations-ISO im virtuellen Host mounten.

Direkt nach der initialen Boot-Sequenz drücke ich dann, wie unten rechts angezeigt, Shift + O, was ein direktes Bearbeiten der Boot-Optionen erlaubt, um die Kickstart-Datei für die Installation angeben zu können. Hier ersetze ich den Standard-Eintrag

>cdromBoot runease1

durch

>netdevice=vmnic0 bootproto=dhcp ks=nfs:\\<Pfad zur Kickstart-Datei>

in meinem konkreten Fall also

>netdevice=vmnic0 bootproto=dhcp ks=nfs:\\10.0.0.1\volume1\NAS\ISO\kickstart-hv100.cfg

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.