Kickstart

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Dieser Artikel ist Teil der HOWTO Sammlung

Die identische Installation von mehreren Systemen oder das Erzeugen einer gleichen Neuinstallieren eines bereits bestehenden Systems ist eine zeitintensive Angelegenheit. Mit Hilfe von Kickstart lässt sich dieser Prozess jedoch soweit automatisieren, dass man gerade noch beim Start anwesend sein muss. Im Extremfall liesse sich die Sache mit PXE auch gänzlich ohne Eingriff bewerkstelligen. Alle relevante Informationen sind in einer einzigen textbasierenden Steuerdatei zusammengefasst. Die Kickstart-Installation lässt sich mit allen angebotenen Installations-Methoden verwenden, jedoch ist sie nur bei Netzwerkinstallationen und DVD-Installationen "personalfrei", da ansonsten die CD-ROMs gewechselt werden müssen.


Inhaltsverzeichnis

Kickstart-Datei

Wie bereits erwähnt ist die Kickstart-Datei eine Text-Datei, welche alle Informationen enthält. Die Reihenfolge ist entscheidend, sonst kommt es zu Fehlern. Zum bequemen Anpassen der Kickstart-Datei kann das GUI, system-config-kickstart, unter Anwendungen -> Systemwerkzeuge -> System -> Administration -> Kickstart verwendet werden. Falls es nicht installiert ist, lässt es sich mit yum installieren.

[root]# yum install system-config-kickstart

Aber wenn mit einer bestehenden Datei aus einer existierenden Fedora-Installation gearbeiten werden will, reicht auch ein Text-Editor. Kommentar-Zeilen beginnen mit einem Hash-Zeichen ("#") und werden bei der Ausführung ignoriert.

Allgemeine Einstellungen

Als erstes wird die Installations-Art definiert, es kann install oder upgrade sein. Die upgrade-Variante benötigt weniger Informationen, mehr dazu später. Das Passwort für root muss md5-crypted sein. Der Rest dieser Punkte sind selbsterklärend oder für den erfahrenern Anwender sicher nachvollziehbar.

install
nfs --server=192.168.0.15 --dir=/data/fedora
lang de_DE.UTF-8
keyboard sg-latin1
timezone Europe/Berlin
rootpw --iscrypted $7$3wGCzzaQ$48/ALRtVx.nBowQC1KS5l.

X-Server-Einstellungen

Die Definition der Video-Einstellungen sollte eine erprobte Variante sein, sonst sitzt der Benutzer vor einem schwarzen Bildschirm.

xconfig --driver "ati" --videoram 4096 --resolution 800x600 --depth 16 --startxonboot 
monitor --hsync 30-121 --vsync 48-160

Netzwerk-Einstellungen

Hier wird mit statischer IP-Adresse gearbeitet. Die IP-Adresse, die Subnetz-Maske, der Gateway und auch der Name-Server müssen an die lokalen Gegebenheiten angepasst werden.

network --device eth0 --bootproto static --ip 192.168.0.91 --netmask 255.255.255.0 --gateway 192.168.0.11 --nameserver 192.168.0.11

Sicherheitseinstellungen

Die Firewall sollte im Normalfall auch in LANs eingeschaltet sein. Denn so ist die Sicherheit auch gewahrt, wenn sich ein Angreifer im lokalen Netz befindet. Der Einsatz von SELinux ist zu empfehlen, auch wenn es gewisse Einschränkungen in der Bedienungsfreundlichkeit des Systems mit sich bringt.

firewall --enabled --port=https:tcp --port=ssh:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing

--enableshadow sollte auch jeden Fall aktiviert werden.

Bootloader Partitionseinstellungen

Der Bootloader-Eintrag wird in diesem Fall in den Master-Boot-Record geschrieben.

bootloader --location=mbr --driveorder=sda,sdb,sdc,sdd

Wenn statt GRUB LiLO verwendet werden soll, kann dies mit der Option --useLilo gemacht werden.

Wichtig Wichtig: Bei einer Neupartitionierung werden alle Daten auf der Harddisk gelöscht, deshalb ist es wichtig, dass vorgängig eine Datensicherung gemacht wird.

Folgende Zeile löscht alle Partionen.

clearpart --all

So könnten die Partitionsinformationen aussehen, wenn ein Software-Raid gemacht werden soll und mit LVM gearbeitet wird. Beim ersten Mal sollte dieser Teil weggelassen werden und die Partitionierung der Harddisk von Hand gemacht werden.

part /boot --fstype ext3 --size=120 --ondisk=sda
part swap --size=3330 --ondisk=sdc
part /tmp --fstype ext3 --size=1000 --ondisk=sdc
part pv.34 --size=100 --grow --ondisk=sda
part raid.32 --size=100 --grow --ondisk=sdd
part raid.31 --size=100 --grow --ondisk=sdb
raid /backup --fstype ext3 --level=RAID0 --device=md0 raid.31 raid.32
volgroup VolGroup00 --pesize=32768 pv.34
logvol /var --fstype ext3 --name=LogVol02 --vgname=VolGroup00 --size=2496
logvol /usr --fstype ext3 --name=LogVol01 --vgname=VolGroup00 --size=6496
logvol /home --fstype ext3 --name=LogVol03 --vgname=VolGroup00 --size=24768
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=800

Paketauswahl

Nach %packages stehen die zu installierenden Pakete. Dieser Auswahl wird bei der Akutalisierung nicht unterstützt. Da die gewünschten Gruppen und nicht die einzelnen Pakete angeben werden müssen, vereinfacht sich das Installieren von Paketen wesentlich. Standardmässig immer die Core- und Base-Gruppen ausgewählt werden, daher ist es nicht notwendig, dass sie im Abschnitt %packages angegeben werden. Die Datei ../repodata/comps.xml beinhaltet mehr Informationen zu den Gruppen.

Beispiel eines %packages-Bereich

%packages
@admin-tools
@base-x
@editors
@german-support
@gnome-desktop
@graphical-internet
@printing
@server-cfg
@system-tools
@text-internet
comps-extras
rmt
tzdata

Wenn nicht alle Pakete aus einer Gruppe installiert werden sollen, kann nach der Gruppe das nicht zu installierende Paket mit einem vorangestellten Minus gekenntzeichnet werden

@Games and Entertainment
-kdegames

nach der Installationsbereich

Im %post-Bereich können weitere Befehle angegeben werden, die nach der Installation ausgeführt werden. Die Möglichkeiten sind extrem vielfältig und auch leistungsfähig.

Einbauen von Meldungen

Wenn die Kickstart-Installation zum ersten Mal gestartet wird, kann es praktisch sein, wenn das System mitteilt, was es gerade macht. Solche Meldungen lassen sich wie folgt machen.

echo "Dienste werden aktiviert..."

Aktivieren und Deaktivieren von Diensten

Die Dienste lassen sich wie folgt aktivieren.

/sbin/chkconfig --level 345 httpd on
/sbin/chkconfig --level 345 mysqld on

Deaktivieren

/sbin/chkconfig --level 345 telnet off
/sbin/chkconfig --level 345 bluetooth off

Installation von weiteren Paketen

Wenn bekannt, dass spezielle Pakete benötigt werden, können diese ganz einfach angegeben und installiert werden.

rpm -ihv http://rpm.livna.org/livna-release-9.rpm

Konfiguration von Netzwerk-Einstellungen

Wenn alle Informationen per DHCP verteilt werden, kann es praktisch sein, wenn die Name-Server in /etc/resolve.conf.predhclient eingetragen sind.

cat > /etc/resolve.conf.predhclient <<EON
search localdomain
nameserver 192.168.0.18
nameserver 192.168.0.19 
EON

Anpassen des System-Namens in /etc/hosts

cat >/etc/hosts <<EOFhosts
127.0.0.1               localhost.localdomain localhost
EOFhosts

Versenden eines Mail beim Erreichen des Endes

Die Möglichkeiten zum Benachrichtigen sind eine praktische Funktion, wenn nicht alle Systeme mit der gleichen Hardware ausgestattet sind und es so zu unterschiedlich langer Installationsdauer kommen kann.

mail -s "System ist installiert, aktualisiert und bereit" root@server < /dev/null

Nachrichten für root umleiten

Meistens loggt sich root nur sehr selten auf Systemen ein, deshalb sollten die E-Mails an einen Benutzer weitergeleitet werden, der regelmässig die Nachrichten liest.

RESPONSIBLE='user@localhost'
echo "\${RESPONSIBLE}" > /root/.forward

Root-Zugang per ssh mit Public Key

Diese Option ist eher für fortgeschrittene Anwender gedacht. Der passwortlose SSH-Zugang ist eine einfache Möglichkeit Angriffe auf den root-Account zu verunmöglichen.

mkdir /root/.ssh
echo "Publix-Key root@localhost" > /root/.ssh/authorized_keys

Einen neuen Benutzer hinzufügen

Das Passwort muss md5-crypted sein, welches zum Account hinzugefügt wird.

/usr/sbin/useradd hugo
/usr/bin/chfn -f "Hugo Meier" hugo
/usr/sbin/usermod -p 'f8d90g0r/ ' hugo

Kopieren von yum.repo-Files

Es ist praktisch, wenn man nach der Installation direkt ein Update durchführt, da diverse Pakete nicht mehr aktuell sind. Diese Aktion ist mit dem Servern, welche in dem Files unter /etc/yum.repos.d/ eingetragen sind, etwas langsam und benötigt viel Bandbreite. Einfacher ist es ein lokales Repository zu benutzen und die Konfigurations-Dateien entsprechend anzupassen. Die Dateien müssen aber vor der Verwendung von yum nach /etc/yum.repos.d/ kopiert werden, ebenso müssen gegebenenfalls die GPG-Keys importiert werden, speziell bei anderen Repositories als Fedora Core und Fedora Extra um Fehler zu verhindern. In diesem Beispiel sind die Dateien auf dem NFS-Server, der auch für die Installation benötigt wurde.

mkdir /mnt/temp
mount 192.168.0.15:/core5/data/yum-conf /mnt/temp
cp /mnt/temp/*.repo /etc/yum.repos.d/
rpm -ihv rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y update
umount /mnt/temp

Log auf ttyX

Mit folgendem Eintrag kann ein Log-File erzeugt werden, dass während des %post-Bereiches auf einer anderen Konsole ausgegeben wird.

exec >/tmp/ks_post_install.log 2>&1
tail -f /tmp/ks_post_install.log >/dev/tty6 &

Zeit-Abgleich

Oftmals hat die System-Uhr nicht die gleiche Zeit wie das Handy und das Handy nicht wie die Küchen-Uhr. Die System-Uhr sollte jedoch genau sein und als Referenz dienen.

/sbin/chkconfig --level 345 ntpd on
cat >> /etc/ntp.conf << EOF
server 129.132.2.21
EOF

Als Zeit-Server wurde hier ein Server der ETH in der Schweiz angegeben, dies sollte an den eigenen Standort angepasst werden.


Ausführen einer Kickstart-Installation

Die Übersicht aller Boot-Optionen stellt unter Kickstart ein Zusammenfassung der möglichen Start-Optionen zusammen.

Nach dem Booten des Installationsmedium muss in der Kommandozeile der Befehl zum Laden der Kickstart-Dateien gegeben werden. Bei der Verwendung eines NFS-Server würde der Befehl so lauten

ks=nfs:192.168.0.15:/core6/data/kickstart/ks.cfg

Sind alle Einstellungen korrekt in der Kickstart-Datei, läuft die Installation durch und am Ende hat man ein einsatzbereites System. Sind Einstellungen nicht definiert oder falsch, wartet das System auf eine Eingabe. Für das Installieren einer grösseren Umgebung sollte vor dem Einsatz auf produktiven Systemen ein Testlauf gemacht werden. Die Kickstart-Installation lässt sich auch mit anderen Boot-Optionen kombinieren, wie zum Beispiel vnc.

Upgrade anstelle einer Neuinstallation

Wenn upgrade verwendet wird, brauchen die Pakete nicht mehr angegeben zu werden, falls doch ein %packages-Bereich vorhanden ist, wird dieser ignoriert. Folgende Punkte sind erforderlich.

  • Sprache
  • Sprach-Support
  • Installationsart
  • Geräteangabe (wenn das Gerät zum Durchführen der Installation erforderlich ist)
  • Tastaturkonfiguration
  • Bootloaderkonfiguration


Siehe auch

Persönliche Werkzeuge