Kickstart: Linux-Installation für faule Admins
In diesem Workshop wird eine automatisierte Installation mit Kickstart durchgeführt und schrittweise verfeinert.
Allgemeines
Inhalt
In diesem Workshop möchte eine kurze Projektbeschreibung abgeben, in der ich eine automatisierte Installation durchführe und diese schrittweise verfeinere. Dieser Workshop ist vor allem für Schulen oder Bildungseinrichtungen geeignet, die sehr oft Neuinstallationen durchführen müssen und eine zentrale Daten- und Applikationshaltung möchten.
Ausstattung
Die Clients bedürfen keinerlei besonderer Ausstattung. Allerdings ist kompatible und unterstützte Hardware sehr von Vorteil, da sie automatisch erkannt wird und die Distribution meist beiliegende Treiber dafür bereit hält. Der Server darf ruhig etwas größer dimensioniert sein, da er (bei mir) zum einen als NFS-Server (Home-Directories) und zum anderen als X-Applikationsserver dienen wird. Bei der Distribution verwende ich Red Hat, aber auch andere Distributionen unterstützen automatische Installationen. Ihr müsst also eure geliebten Boxen nicht ausradieren :-)
Kickstart
Grundlagen
Kickstart bezeichnet die automatische Installation unter Red Hat. Dabei wird ein Konfigurationsliste erstellt, auf der alle von der Installation benötigten Fragen abgearbeitet werden. Lassen wir uns doch einmal spaßeshalber diese Konfigurationsliste einmal automatisch erstellen.
mkkickstart > kickstart.txt
Sollte dies nicht funktionieren, schaut mal kurz nach, ob das RPM-Paket mkkickstart-x.x.x.rpm installiert ist [rpm -qa | grep kickstart
] und installiert es bei Bedarf nach.
Schauen wir uns das Ergebnis kurz einmal an. Es sollte ungefähr das Folgende in der Datei stehen.
lang de_DE@euro #network --bootproto static --ip 10.0.0.1 --netmask 255.255.255.0 --gateway 10.0.0.254 cdrom keyboard "de-latin1" zerombr yes clearpart --linux part swap --size 299 install mouse generic --device ttyS1 rootpw --iscrypted auth --useshadow lilo --location mbr %packages redhat-logos glibc ... [stark gekürzt] ... %post
Genau mit diesen Daten habe ich damals meine Installation durchgeführt. Auf Basis dieses Schemas werden wir nun unsere individuelle Konfiguration festlegen, womit die Clients installiert werden.
Vorbereitungen
Zuerst sollte man sich genau überlegen, über welches Medium man die Installation macht. Allgemein üblich ist die Wahl der CDROM (siehe oben). Wer allerdings schon einmal einen Raum mit mehr als 10 Clients eingerichtet hat, weiß, dass dies keine Zukunft hat. Kickstart bietet zusätzlich die Möglichkeit, eine Netzinstallation durchzuführen, bei der die Installationspakete und -daten zentral auf einem Server liegen und von dort verteilt werden können. Ob diese Methode nun über NFS, FTP oder HTTP durchgeführt wird, ist prinzipiell egal, jedoch wird die Wahl meist, aus Performancegründen, auf NFS fallen. D.h. Ihre erste Aufgabe wird sein, einen NFS-Server zu installieren und die beiden CDs in ein Verzeichnis zu kopieren. Benötigt wird die CD1 komplett und von CD2 lediglich die RPM-Pakete (/Red Hat/RPMS/*, evtl. /images auch noch - je nach Version).
Bootdiskette
Um dem Client anzugeben, dass er nicht lokal nach Daten suchen soll, müssen wir noch eine Netzboot-Diskette erstellen.
dd if=/kickstart/images/bootnet.img of=/dev/fd0
Da zusätzlich noch einiges mehr auf diese Diskette kopiert wurde, säubern wir diese noch etwas, um Platz zu schaffen. Bis auf vmlinuz, syslinux.cfg, ldlinux.sys und initrd.img kann alles andere gelöscht werden, da es nicht wesentlich für uns ist. Nun müssen wir noch die Boot-Datei syslinux.cfg bearbeiten. Kommen die verschiedenen Zeilen bekannt vor? Genau. Dies sind die verschiedenen Boot-Optionen beim Start der Installation. Auch hier bitte alle Optionen löschen, bis die Datei ungefähr folgendermaßen aussieht:
Default linux Prompt 10 Label linux Kernel vmlinuz Append initrd=initrd.img lang=de ks=floppy
Die Option
muss zusätzlich eingefügt werden, da sie noch nicht vorhanden ist. Die Zeilen dürften eigentlich selbsterklärend sein. Append bedeutet, dass diese Optionen zusätzlich als Startparameter dem Kernel mitgegeben werden. Der Parameter zeigt dem Kernel nun, dass die Konfigurationsliste auf der Bootdiskette zu finden ist.Ks.cfg
So, nun zur Konfigurationsdatei selbst. Standardmäßig heißt diese Datei ks.cfg und ist, wie bereits gesehen, nichts anderes als ein reines ASCII-File. Fangen wir nun mit den Optionen an. (Die Optionen sind erstklassig und genau unter www.linuxfibel.de beschrieben).
lang de_DE keyboard "de-latin1-nodeadkeys" mouse --device ps/2 # Vorsicht: ich hatte anfangs # keine Maus [none] angegeben, # was sich jedoch nachher bei der # X-Installation als nachteilig # herausstellte rootpw geheim auth --useshadow --enablemd5 lilo --location mbr skipx # Zuerst ohne X # Jetzt wird's wichtig! nfs --server 10.100.0.1 --dir /kickstart/ network --device eth0 # wichtig bei mehreren Devices --ip 10.100.0.2 --netmask 255.0.0.0 --hostname einstein --gateway 10.0.0.254 --nameserver 10.0.0.253 --bootproto static # erst einmal eine feste IP-Adresse # Installation install clearpart --all part swap --ondisk hda --size 128 part / --ondisk hda --grow # Pakete %packages @base # reicht erst mal zum Testen ;-)
Nachdem die Datei erstellt wurde, einfach auf die Diskette kopieren und los geht's.
Finale Grande
Einlegen und Einschalten!
Zuerst läuft alles normal ab. Der Kernel wird gebootet (mit den Parametern, die mitgegeben werden), eine Ramdisk im Speicher etabliert und unsere ks.cfg ausgelesen.
Nun wird der NFS-Server gesucht und gemountet, anschließend wird die Hardwareerkennung (Anaconda) gestartet. Sollte ein Tippfehler oder ungültiges Device angegeben sein, erfolgt hier ein Abbruch und diverse Anaconda-Fehlermeldungen erscheinen. Hier ist oftmals die Bitte der Programmierer zu lesen, dass die Fehlermeldung einzusenden wäre, jedoch liegt der Fehler zu 99% in einer fehlerhaften ks.cfg (bitte nochmals prüfen!). Kommt die Installationsroutine mit etwas nicht klar, erscheint die manuelle Installationsroutine. Auch hier sollte die Datei nochmals überprüft werden. Eine kleine Hilfe findet ihr auf den Konsolen 3 und 4, die eure Installation mitbegleiten und evtl. Hilfestellung in Form von Fehlermeldungen bieten. Nun folgt noch die Partitionierung und Installation der angegebenen Pakete. Fertig!
Nach einem Reboot sollte nun ein fertig installiertes, funktionstüchtiges System auf euch warten. Glückwunsch :-)