Inhaltsverzeichnis

Mithilfe von Red Hat Kickstart ist es möglich, Systeme auf einfache Art und Weise mit Red Hat Enterprise Linux aufzusetzen. So kann ein System direkt aus dem Netzwerk das Installationsprogramm booten, welches dann Red Hat inklusive Zusatzsoftware installiert und konfiguriert.

Diese Anleitung bezieht sich auf Red Hat Enterprise Linux 6 bzw CentOS 6.

Aufbau

Aufbau des Szenarios

Benötigt werden:

Der Host erhält per DHCP eine IP und bootet anschließend über PXE ein kleines Installationssystem. Dieses bezieht über HTTP die Kickstart-Konfiguration und installiert auf deren Basis Pakete von einer NFS- oder FTP-Freigabe. Diese Dienste können auf einem oder auf mehreren Hosts laufen.

In diesem Beispiel verwende ich:

Video

Ein funktionierender Kickstart-Vorgang mit erfolgreicher Installation ist in weniger als 10 Minuten durchgeführt:

Installation

NFS-Freigabe

Über eine NFS- oder FTP-Freigabe werden die RHEL-Installationsdateien zur Verfügung gestellt. Zuerst wird eine lokale Kopie der Installationsmedien angelegt, die dann über NFS lesend dem gesamten Netzbereich (192.168.178.0/255.255.255.0) zur Verfügung gestellt wird.

# mkdir /export/rhel63
# mount /dev/sr0 /media
# cp -Rv /media/* /export/rhel63
# umount /media
# vi /etc/exports
...
/export/rhel63      192.168.178.0/24(ro)
...
ZZ
# exportfs -ra
# exportfs -v
/export/rhel63  192.168.178.0/24

Kickstart und Apache

system-config-kickstart

Für den Start der Installation wird eine Kickstart-Konfiguration benötigt. Kickstart installiert dann auf Basis dieser Konfiguration ausgewählte Software-Pakete und legt auch Benutzer an.

Die Kickstart-Konfiguration kann komfortabel über das Tool system-config-kickstart vorgenommen werden. Das Tool erfordert eine grafische Oberfläche und fragt in Form eines Assistenten alle benötigen Informationen ab - dazu zählen beispielsweise:

system-config-kickstart

In diesem Beispiel wurden zwei Kickstart-Konfigurationen für einen Client (Desktop) und einen Server (Apache2 und PHP5) angelegt.

Anschließend wird der Webserver installiert und konfiguriert, bevor die Konfigurationen kopiert werden:

# yum install httpd
# chkconfig httpd on
# service httpd start
# cp ks.cfg /var/www/html/ks.cfg
# cp ks-server.cfg /var/www/html/ks-server.cfg

system-config-kickstart

TFTP-Server

Damit Hosts über das Netz booten, muss ein TFTP-Server, der einige Boot-Dateien „streamt“, aufgesetzt werden. Anschließend werden einige Dateien von der RHEL-DVD und vom lokalen Dateisystem in den TFTP-Ordner kopiert.

# yum install tftp-server
# chkconfig tftp on
# chkconfig xinetd on
# service xinetd start
# service tftp start
# cd /var/lib/tftpboot
# cp -R /export/rhel63/images/pxeboot/* .
# cp /usr/share/syslinux/vesamenu.c32 .
# mkdir pxelinux.cfg

Unterhalb des Ordners pxelinux.cfg befinden sich Konfigurationsdateien. Diese können für jeden bootenden Host unterschiedlich sein. So kann man beispielsweise einen bestimmten Rechner als Server aufsetzen lassen, während alle anderen aufzusetzenden Hosts immer als Client aufgesetzt werden. Die Dateinamen richten sich nach der MAC-Adresse oder der IP-Adresse im hexadezimalen Format:

MAC-/IP-AdresseDateinameKommentar
00:0C:29:B4:32:F101-00-0c-29-b4-32-f1Dateiname in Kleinbuchstaben mit vorangestelltem 01-!
192.168.178.20C0A8B214IP-Oktette in Hexadezimal

Der PXE-Client sucht nach der besten für ihn passenden Konfigurationsdatei (für seine IP) - findet er eine solche nicht, sucht er eine für seine IP-Adresse. Findet er auch die nicht, wird nach Dateien mit fehlenden IP-Oktetten gesucht, solange bis eine Datei gefunden wird. Zuletzt wird die Standard-Konfigurationsdatei default geladen.

Ein PXE-Client, der die IP-Adresse 192.168.178.20 und die MAC-Adresse 00:0C:29:B4:32:F1 hat würde also in der folgenden Reihenfolge nach Konfigurationsdateien suchen:

Im pxelinux.cfg-Ordner wird nun eine Standard-Konfiguration angelegt:

# vi default
default vesamenu.c32
timeout 600

menu title Welcome to Kickstart!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label local
  menu label Boot from ^local drive
  menu default
  localboot 0xffff
label ks
  menu label Install using ^Kickstart
  kernel vmlinuz
  append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=http://192.168.178.10/ks.cfg
  
ESC
ZZ

Die Konfigurationsdatei kann für den Server einfach kopiert und angepasst werden. Interessant ist in diesem Fall nur die append-Zeile, da das Installationsprogramm eine andere Kickstart-Konfigurationsdatei (aufgrund der angepassten Software-Auswahl für den Server!) verwenden muss.

# cp default 01-00-50-56-3f-4c-9f
# vi 01-00-50-56-3f-4c-9f
...
append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=http://192.168.178.10/ks-server.cfg
...

Boot-Menü mit Hintergrundbild Für das Menü lässt sich ganz einfach ein Hintergrundbild setzen - es muss ein Bild in der Größe 640×480 als PNG oder JPG erstellt werden. Anschließend wird die Konfiguration wie folgt angepasst:

# vi default
default vesamenu.c32
timeout 600

menu background back.png
menu title Welcome to Kickstart!
...

Der Pfad zum Bild erfolgt ab dem TFTP-Root, idealerweise wird das Bild also direkt unter /var/lib/tftpboot gespeichert.

DHCP-Server

DHCP-Einstellungen

Der DHCP-Server muss dahingehend konfiguriert werden, dass er BOOTP-Clients zulässt. Darüber hinaus müssen die folgenden beiden Variablen konfiguriert werden:

VariableWertBeschreibung
filenamepxelinux.0Dateiname des PXE Linux-Bootloaders
next-server192.168.178.10IP-Adresse des TFTP-Servers

Internetverweise