Dies ist eine alte Version des Dokuments!
Installation mit Hilfe eines Kickstartfiles für CentOS 8.x (PXE-Server)
Kurz mal einen Testrechner auf diesem Wege zu installieren, wie im Kapitel Installation von CentOS 8.x via PXE beschrieben, mag ja noch als praktikabel angesehen werden. Will man aber mehrere Duzend oder gar hunderte von Systemen installieren, wird man sehr schnell feststellen, dass diese Variante noch nicht wirklich das Mittel der Wahl sein kann und wird.
Viele wertvolle Hinweise zur Erstellung und zu den Optionen rund um PXE1) finden sich in der Original-RedHat-Dokumentation Performing an advanced RHEL installation im Kapitel Chapter 3. Kickstart installation basics
Ergänzend finden sich auch noch wertvolle Hinweise zum Thema Creating Kickstart files in der aktuellen CentOS 8.0.1905 documentation.
Installationsscript für CentOS Installationen
Für die weitgehende Automatisierung der Installation unserer Rechner greifen wir auf ein Installationsscript zurück, welches uns entsprechend unterstützen wird. Diese Datei enthält Angaben zu den einzelnen Installationschritten, die wir bei einer manuellen Installation immer angeben oder anklicken müssten. Im Wesentlichen sind dies Angaben zu:
- Systemsprache
- Tastaturlayout
- Netzwerkdefinitionen
- Installationsquelle
- Zeitzone
- Paketauswahl
- u.s.w.
Erstellen von Kickstart-Dateien
Kickstart-Dateien kann mit einer der folgenden Methoden erstellen:
- Verwenden des RHEL Kickstart-Online-Konfigurationswerkzeuges
- Voraussetzungen:
- Man hat ein Red Hat-Kundenportal-Konto und ein aktives Red Hat-Abonnement.
- Vorgehensweise:
- Öffnen der Informationsseite zum Kickstart-Generator-Labor unter https://access.redhat.com/labsinfo/kickstartconfig
- Menüpunkt Go to Application links neben der Überschrift anwählen und warten bis die nächste Seite geladen ist.
- Im Dropdown-Menü den Punkt Red Hat Enterprise Linux 8 auswählen und erneut warten bis die Seite aktualisiert wird.
- Nun das zu installierende System anhand der Felder im Formular beschreiben.
- Die links auf der linken Seite des Formulars helfen um schnell zwischen den Abschnitten des Formulars zu navigieren.
- Zum Download der generierte Kickstart-Datei auf die rote Schaltfläche Download oben auf der Seite klicken.
- Der Webbrowser speichert die Datei dann in derm lokal gewähltenVerzeichnis.
- Kopieren und editieren einer bestehenden Kickstart-Datei, die als Ergebnis einer manuellen Installation erstellt wurde.
- Schreiben Sie die gesamte Kickstart-Datei manuell von „the scratch“
- Wichtiger Hinweis : Das Bearbeiten einer bereits vorhandenen Datei mit den anderen Methoden ist in der Regel schneller, weshalb diese Methode auch nicht zu empfehlen ist.
Ferner ist zu beachten, dass viele sehr individuelle Konfigurationswünsche, wie z.B. LVM-Konfigurationen bzw, aufwändige Partitionierungen meist nur manuell in einer Kickstart-Datei konfiguriert werden können! Nich alles lässt sich mittels automatisierter GUIs abbilden!
Bsp. 1: bestehende Kickstart-Datei
Erzeugung und Berabeitung
In folgendem Beipiel wollen wir uns die manuelle Erstellung und Bearbeitung einer Kickstart-Datei einer zuvor ertellen Installation etwas genauer ansehen.
Der empfohlene Ansatz zur Erstellung von Kickstart-Dateien ist die Verwendung der Datei, die bei einer manuellen Installation von CentOS 8 erstellt wurde. Nach Abschluss einer Installation werden alle während der Installation getroffenen Entscheidungen in einer Kickstart-Datei mit dem Namen anaconda-ks.cfg
gespeichert, die sich im Verzeichnis /root/ auf dem installierten System befindet. Diese Datei können wir nun verwenden, um die Installation auf die gleiche Weise wie zuvor zu reproduzieren. Alternativ können wir diese Datei kopieren, alle erforderlichen Änderungen vornehmen und die resultierende Konfigurationsdatei für weitere Installationen anschließend verwenden.
- Vorgehensweise:
- Wir installieren ein CentOS 8-System mit den gewünschten grundsätzlichen Standardkonfigurationsoptionen, wie z.B. hier beschrieben.
- Neben dem Passwort für den Benutzer root legen wir auch unser Admin-User-Konto an.
- Nach erfolgter installation starten wir das System neu.
- Dann melden wir uns an dem System an.
- Abschließend kopieren wir die Datei
/root/anaconda-ks.cfg
auf unseren Installationshost(Repo-Server in das Verzeichnis../kickstart/ks_centos_8_x86_64_dmz.cfg
.WICHTIG:
Die Datei enthält Informationen über Benutzer und Kennwörter!# less ../kickstart/ks_centos_8_x86_64_dmz.cfg
#version=RHEL8 ignoredisk --only-use=vda autopart --type=lvm # Partition clearing information clearpart --all --initlabel --drives=vda # Use graphical install graphical repo --name="AppStream" --baseurl=http://10.0.0.57/centos/8/BaseOS/x86_64/os/../../../AppStream/x86_64/os/ # Use network installation url --url="http://10.0.0.57/centos/8/BaseOS/x86_64/os/" # Keyboard layouts keyboard --vckeymap=de-nodeadkeys --xlayouts='de (nodeadkeys)' # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=ens3 --ipv6=auto --activate network --hostname=vml000058.dmz.nausch.org # Root password rootpw --iscrypted $6$Z46HtZ/aLHbA19p$WVsutOEqe0m0e97lgEreKUzfkAEFzFSR0Hj8RFN8MHqWjPqk7PkJeQ9mIcTGtdutFnFVdFzFSR0KhrdGwUdAn01 # X Window System configuration information xconfig --startxonboot # Run the Setup Agent on first boot firstboot --enable # System services services --enabled="chronyd" # System timezone timezone Europe/Berlin --isUtc --ntpservers=vml000027.dmz.nausch.org user --name=django --password=$6$2.fGKBeQa18GE6XwDMXG6$QX/j.TfZXk0bBuoJ8GE6XMXRZYz/4pEE6PuwkubaDmteRAAerLVKK69EF30d1K/f1d/sUEqbF9FJBulc/ --iscrypted --gecos="Bastard Operator from Hell" %packages @^graphical-server-environment kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end
- Dort können wir die Datei unseren Wünschen nach entsprechend noch final anpassen.
- anschließend passen wir dann noch die Konfigurationszeile unseres PXE-Bootmenüs passend an und vermerken dort sowohl
ks
(Host und Pfad der Kickstartdatei) als auch die Optionksdevice
(Netzwerkgerät über die die Kickstart-Datei geladen werden kann). Bsp.:... LABEL 3 MENU LABEL ^3) Installation von CentOS 8 (64 Bit) KERNEL images/centos/8/x86_64/vmlinuz APPEND ks=http://10.0.0.57/kickstart/ks_centos_8_x86_64_dmz.cfg initrd=images/centos/8/x86_64/initrd.img ksdevice=eth0 ip=dhcp --hostname=vml000250.dmz.nausch.org method=http://10.0.0.57/centos/8/BaseOS/x86_64/os/ SERVERNAME= ...
Überprüfung
Nach umfangreichen Änderungen enpfiehlt es sich, die gemachten Änderungen an der Kickstartdatei entsprechend zu validieren. Hierzu verwenden wir das Programm ksvalidator
aus dem RPM pykickstart
.
Zunächst installieren wir uns dieses Paket.
# dnf install pykickstart -y
Zum Syntax-Check unserer Kickstartdatei rufen wir dann das Programm gefolgt mit dem Pafd und Dateinamen unserer Kickstart-Datei auf, wie z.B. im folgenden Beispiel:
# ksvalidator /srv/kickstart/ks_centos_8_x86_64_dmz.cfg
Passt der Syntax wir nichts zurück gegeben. Hat sich aber ein Syntaxfehler eingeschlichen wird uns ausgegeben, wo der Fehler liegt, wir im folgenden Beispiel - hier wurde statt keyboard das Wort falsch geschrieben: keiboard:.
# ksvalidator /srv/kickstart/ks_centos_8_x86_64_dmz.cfg
The following problem occurred on line 12 of the kickstart file: Unknown command: keiboard
Das Validierungstool selbst kann natürlich nicht garantieren, dass die Installation später auch wirklich erfolgreich sein wird! Es stellt nur sicher, dass die Syntax korrekt ist und dass die Datei keine veralteten Optionen enthält. Es wird dabei nicht versucht, die Abschnitte %pre
, %post
und %packages
der Kickstart-Datei zu validieren!
do gehds weida!