Technologieführer

Automatisierte CentOS/Fedora/Red Hat-Installation mit Kickstart

3 min read Systemadministration Aktualisiert 26 Sep 2025
Kickstart: CentOS/Fedora/Red Hat automatisch installieren
Kickstart: CentOS/Fedora/Red Hat automatisch installieren

Überblick

Kickstart ist das Red‑Hat-angelehnte Verfahren zur unbeaufsichtigten Installation von Linux-Distributionen wie CentOS, Fedora und Red Hat Enterprise Linux. Ein Kickstart-File enthält alle Installationsparameter (Partitionierung, Benutzer, Pakete) und kann Post-Install-Skripte ausführen, um zusätzliche Software oder Konfigurationen zu übernehmen.

Kurzdefinition: Kickstart ist eine Textdatei mit Anweisungen, die den Installer (Anaconda) steuert.

Voraussetzungen

  • Bootmedium (ISO, PXE, USB) mit Installer, der Kickstart unterstützt.
  • Grundkenntnisse zu Partitionierung, LVM und Paketverwaltung (yum/dnf).
  • Optional: Repository- und FTP/HTTP-Zugang für zusätzliche Pakete oder Images.

Wichtig: Entfernen Sie niemals im produktiven Template Passwörter im Klartext. Verwenden Sie verschlüsselte Passwörter (–iscrypted) und sichere Schlüsselverteilung.

Wie Kickstart funktioniert

  1. Installer lädt das Kickstart-File (lokal, über HTTP/FTP/PXE).
  2. Anaconda liest die Anweisungen und führt die Installation automatisch durch.
  3. Nach der Basisinstallation führt Anaconda die %post-Skripte aus, in denen Sie weitere Pakete installieren, Repositories einbinden oder Dienste konfigurieren können.

Vorteil: Wiederholbare, idempotente Basiskonfigurationen, die auf verschiedenen Hardwaretypen funktionieren.

Beispiel-Kickstart

Unten finden Sie das originale Kickstart-Beispiel. Es wurde in einem Real‑World‑Szenario verwendet, um Fedora-Laptops mit VMware Player und vorgefertigten VM-Images auszurollen.

text
install
cdrom
lang en_US.UTF-8
keyboard uk
timezone --utc Europe/London
rootpw  --iscrypted $$nndedddewfooofcerd3r434
selinux --disabled
# Custom user added
user --name=kevinmitnick --groups=users --password=HackThePlanet
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
firewall --service=ssh
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda
ignoredisk --only-use=sda
part /boot --fstype=ext2 --asprimary --size=500
part /OtherOS --fstype=ext4 --asprimary --size=10240
part swap --asprimary --size=2048
part pv.fedora1000 --grow --asprimary --size=500
volgroup fedora --pesize=32768 pv.fedora1000
logvol /centosVM --fstype=ext4 --name=centosVM --vgname=fedora --size=30720
logvol /home --fstype=ext4 --name=home --vgname=fedora --size=81920
logvol / --fstype=ext4 --name=root --vgname=fedora --size=25600
logvol /windowsVM --fstype=ext4 --name=windowsVM --vgname=fedora --size=40960
bootloader --location=mbr --driveorder=sda --append="nomodeset rhgb quiet"
# setup the network with DHCP
network --device=eth0 --bootproto=dhcp
# packages that will be installed, anything starting with an @ sign is a yum package group.
%packages
@admin-tools
@authoring-and-publishing
@base
@core
@development-libs
@development-tools
@dial-up
@editors
@education
@electronic-lab
@engineering-and-scientific
@eclipse
@fedora-packager
@fonts
@gnome-desktop
@gnome-software-development
@graphical-internet
@graphics
@hardware-support
@input-methods
@java
@java-development
@kde-desktop
@kde-software-development
@legacy-fonts
@office
@online-docs
@printing
@sound-and-video
@system-tools
@text-internet
@x-software-development
@base-x
kpackagekit
system-config-network
scribus
xfsprogs
mtools
gpgme
gpm
rpmdevtools
koji
mercurial
lua
pylint
rpmlint
plague-client
cmake
mock
bzr
pptp
kdeedu-marble
minicom
opencv
yum-priorities
plotutils
openoffice.org-opensymbol-fonts
qtcurve-gtk2
gvfs-obexftp
glibmm24-devel
gnome-vfs2-devel
libsigc++20-devel
libart_lgpl-devel
kdepim
konversation
ImageMagick
digikam
kipi-plugins
kdegraphics
gypsy
gpsd
hdparm
m17n-db-tamil
m17n-db-gujarati
m17n-db-kannada
m17n-db-hindi
gok
m17n-db-oriya
m17n-db-bengali
m17n-contrib-sinhala
m17n-db-assamese
m17n-db-punjabi
iok
m17n-db-telugu
m17n-db-malayalam
xorg-x11-fonts-ISO8859-1-100dpi
urw-fonts
ghostscript-fonts
kdepim
vorbis-tools
amarok
jack-audio-connection-kit
kaffeine
kdemultimedia
vbetool
gssdp
geoclue
createrepo
radeontool
PackageKit-command-not-found
obexftp
enca
festival
ntpdate
xsel
gupnp
rdesktop
fuse
ncftp
mesa-libGLU-devel
xorg-x11-apps
xscreensaver-gl-extras
gdm
xscreensaver-extras
xscreensaver-base
xterm
xorg-x11-resutils
gitk
git-gui
dia
tftp
python-crypto
boost-devel
valgrind
subversion
cvs
thunderbird-lightning
python-sqlite2
asciidoc
glibc-static
tcllib
python-psycopg*
ssh*
perl-ExtUtils-MakeMaker
perl-Net-Telnet
perl-HTML-FromText
libICE.so.6
libSM.so.6
libXmu.so.6
libXp.so.6
libXpm.so.4
libXt.so.6
help2man
cscope
ctags
git
kernel-devel
tftp-server
texlive-latex
texi2html
cmake
transfig
alsa-lib
libXScrnSaver
qt
qt-x11
libasound.so.2

libXss.so.1
libQtDBus.so.4
libQtGui.so.4
pulseaudio
alsa-plugins-pulseaudio
pulseaudio-esound-compat
pulseaudio-libs
pulseaudio-libs-glib2
pulseaudio-module-zeroconf
pulseaudio-libs-zeroconf
xmms-pulse
pulseaudio-module-gconf
wine-pulseaudio
xine-lib-pulseaudio
pulseaudio-utils
pulseaudio-module-bluetooth
padevchooser
paman
paprefs
pavucontrol
pavumeter
ncurses-devel.i686
%end
%post --log=/root/my-post-log
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration   #"
echo "################################"
# prevent future yum updates pulling down & install new kernels (and breaking VMware & video drivers).
echo "exclude=kernel*" >> /etc/yum.conf
# update the system
yum update -y 
# install rpm fusion repo
rpm -Uvh \
http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \
http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
# disable rpmfusion repo, to prevent a yum update contaminating the system with rpmfusion rpms.
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/rpmfusion-*
# install video drivers - enabling rpmfusion repos on the command line.
yum -y --enablerepo=rpmfusion-nonfree --enablerepo=rpmfusion-free  --enablerepo=rpmfusion-free-updates --enablerepo=rpmfusion-nonfree-updates install kmod-nvidia xorg-x11-drv-nvidia-libs.i686 xorg-x11-drv-nvidia-libs.x86_64 akmod-nvidia
# start akmods on boot
chkconfig akmods on
# add pcadmin to sudoers
echo "kevinmitnick ALL=(ALL)       ALL" >> /etc/sudoers
# set perms on vmware partitions so users in the users group can create vm's
chown :users /windowsVM && chmod 775 /windowsVM
chown :users /centosVM && chmod 775 /centosVM
# Make sure the system boots X by setting the system to run level 5
sed -i 's/id:3:initdefault:/id:5:initdefault:/g' /etc/inittab
# install openvpn & configure
wget ftp://$host/pub/VPN/OpenVPN/Linux/openvpnclient-custom-settings-1.6-3.i386.rpm
rpm -ivh openvpnclient-custom-settings-1.6-3.i386.rpm
cd /etc/openvpn/
rm client.conf-*
wget ftp://$host/pub/VPN/OpenVPN/Linux/64bit/client.conf-1
mv client.conf-1 client.conf-0
rm -f /openvpnclient-custom-settings-1.6-3.i386.rpm
# add Kevin Mitnick to group users
usermod -a -G users kevinmitnick
# pull down vmware images
cd /windowsVM/
wget --user=magicinstaller --password=hacktheplanet ftp://magicinstaller:fubar@ftp.$host.com/images/windowsVM.tar.gz
tar -xvzf windowsVM.tar.gz
cd /centosVM/
wget --user=magicinstaller --password=hacktheplanet ftp://magicinstaller:fubar@ftp.$host.com/images/centosVM.tar.gz
tar -xvzf centosVM.tar.gz
# create symlink as instructed
cd /usr/lib; ln -s libtinfo.so libtermcap.so.2
# confirm perms are set correctly
chown -R :users /windowsVM && chmod -R 775 /windowsVM
chown -R :users /centosVM && chmod -R 775 /centosVM
# swap to console 1
chvt 1

Erklärung wichtiger Abschnitte

  • Partitionierung: clearpart –all löscht alle Partitionen auf dem Zielgerät. Testen Sie dies vorher in einer VM.
  • %packages: Paketgruppen (mit @) vereinfachen die Installation ganzer Profile.
  • %post: Hier laufen Ihre Shell-Skripte nach der Basisinstallation. Nutzen Sie –log=DATEI, um Fehler zu debuggen.
  • rootpw –iscrypted: Verwenden Sie verschlüsselte Passwörter, niemals Klartext in öffentlichen Repos.

Hinweis: Einige Distributionen nutzen dnf statt yum; passen Sie Befehle entsprechend an.

Anpassung und Best Practices

  • Verwenden Sie Versionierung für Ihre Kickstart-Dateien (Git).
  • Ersetzen Sie harte Passwörter durch sichere Hashes oder verwenden Sie ein Konfigurationsmanagement zur Geheimnisverteilung.
  • Testen Sie Kickstarts zuerst in einer Sandbox oder VM.
  • Verwenden Sie Paket-Repositories, die Sie kontrollieren, um externe Änderungen zu minimieren.

Wichtig: Wenn Sie proprietäre Treiber installieren (z. B. NVIDIA), sperren Sie Kernel-Updates oder planen Sie Nacharbeiten, damit Module weiterhin funktionieren.

Alternative Ansätze

  • Imaging (Ghost, Clonezilla): Schnell für identische Hardware, weniger flexibel bei unterschiedlicher Hardware.
  • Konfigurationsmanagement (Ansible, Puppet, Chef): Ideal, wenn Sie laufende Systeme nachinstallieren und konfigurieren wollen.
  • WDS / RIS (Windows-Umfeld): Für Windows-basiertes Deployment; Linux-Kickstart ist plattformnäher für RHEL-Familie.

Gegenbeispiel: Wenn Hardware extrem heterogen ist oder spezielle Treiber je Gerät nötig sind, kann ein reines Image scheitern. Kickstart + Post-Skripte bietet hier mehr Flexibilität.

Entscheidungsbaum

flowchart TD
  A[Start: Neue Installation?] --> B{Ist Zielhardware homogen?}
  B -- Ja --> C[Image erstellen und ausrollen]
  B -- Nein --> D[Kickstart mit Post-Skripten]
  D --> E{Benötigen Sie laufende Konfigurationsänderungen?}
  E -- Ja --> F[Kickstart + Konfigurationsmanagement 'Ansible']
  E -- Nein --> G[Nur Kickstart]

Administrator-Checkliste

  • Kickstart-Datei versioniert (Git).
  • Keine Klartext-Passwörter im Repo.
  • %post-Log aktiviert und überprüfbar (/root/my-post-log).
  • Backup der Partitionstabelle vor Testläufen.
  • Repositories validiert und signiert.
  • Tests in VM erfolgreich abgeschlossen.

Akzeptanzkriterien

  • Das System bootet erfolgreich in das gewünschte Runlevel.
  • Benutzer, Gruppen und Dateisysteme sind korrekt angelegt.
  • Angeforderte Paketgruppen sind installiert.
  • Post-Install-Skripte haben ohne Fehler ausgeführt (Log prüfen).

1‑Zeiler Glossar

  • Kickstart: Textdatei, die die automatische Installation steuert.
  • %post: Abschnitt für Nachinstallationsskripte.

Zusammenfassung

Kickstart ist ein mächtiges Werkzeug für wiederholbare, automatische Installationen von CentOS, Fedora und RHEL. Das oben gezeigte Beispiel demonstriert komplette Automatisierung inklusive Partitionierung, Paketauswahl und umfangreichen Post-Install-Schritten. Nutzen Sie verschlüsselte Passwörter, testen Sie in VMs und kombinieren Sie Kickstart mit Configuration Management für maximale Flexibilität.

Hinweis zur Quelle: Diese Anleitung wurde bereitgestellt von www.netzensolutions.com. Kommentare und Fragen können dort hinterlassen werden.

Autor
Redaktion

Ähnliche Materialien

Facebook: Kommentare ausschalten und einschränken
Social Media

Facebook: Kommentare ausschalten und einschränken

Facebook-Verlauf löschen — PC & Mobil komplett
Datenschutz

Facebook-Verlauf löschen — PC & Mobil komplett

JW Player Videos herunterladen – Anleitung
Anleitung

JW Player Videos herunterladen – Anleitung

Abwesenheitsnotiz in Microsoft Teams einrichten
Produktivität

Abwesenheitsnotiz in Microsoft Teams einrichten

Gelöschte WhatsApp‑Nachrichten lesen – 2 Methoden
Anleitung

Gelöschte WhatsApp‑Nachrichten lesen – 2 Methoden

Dauerhaft gelöschte iCloud-Fotos wiederherstellen
Datensicherheit

Dauerhaft gelöschte iCloud-Fotos wiederherstellen