Remote Linux Installation


1. Einleitung

Dieser Text beschreibt Methoden, wie Red Hat Linux Systeme (7.3 oder höher) remote installiert werden können. Das heißt, dass die Installation (oder ein großer Teil dieser) nicht am Rechner selbst erfolgen muss. Das ist etwa dann von Vorteil, wenn es sich dabei um einen Server handelt, der in einem unbequemen Serverraum steht.

Dieser Text beschreibt ausschließlich die Installation über NFS. Dazu ist die bootnet Boot Diskette zu erstellen. Der NFS Server ist zid-luxinst.uibk.ac.at, das Installationsverzeichnis /var/admin/pub/dist/orig/iso/[version], wobei [version] die Red Hat Linux Versionsnummer ist, also beispielsweise „9“ oder „8.0“.

2. Serielle Konsole

Die allgemeine Konfiguration einer seriellen Konsole ist in einem eigenen Text dokumentiert. Hier wird nur jener Teil beschrieben, der für die Installation notwendig ist.

Um die Installation textbasiert durchzuführen und die Textausgabe während der Installation auf der seriellen Konsole anzeigen zu lassen, gibt man am Boot Prompt ein:

text console=ttyS0,9600n8

3. Remote X Display

Red Hat Linux hat ein sehr nützliches Feature, welches es erlaubt, die Installation grafisch durchzuführen, den grafischen Installationsbildschirm jedoch auf einem anderen Bildschirm zu öffnen.

Dazu gibt man am Rechner, auf dem die Installation dargestellt/bedient werden soll, Folgendes ein:

xhost +[host]

[host] ist dabei der zu installierende Rechner. Es ist darauf zu achten, dass dafür gegebenenfalls jene Firewall Regeln geändert werden müssen, welche die Ports 6000 bis 6009 sperren! Sie können diese Regel zum aktuell aktiven iptables Regelwerk hinzufügen:

iptables -I INPUT 1 -m tcp -p tcp -s 138.232.0.0/16 --dport 6000:6009 \
         --syn -j ACCEPT

Nach getaner Arbeit wird die Regel dann wieder gelöscht:

iptables -D INPUT 1

Bei der Installation gibt man am Boot Prompt ein:

linux display=[host]:0

[host] ist dabei die IP Adresse des Rechners, auf dem die Installation dargestellt wird.

4. Kickstart

Red Hat bietet mit Kickstart eine Methode an, mit der sich Teile der oder die komplette Installation automatisieren lassen. Dazu erstellt man eine Datei ks.cfg mit den entsprechenden Anweisungen und kopiert sie auf die Installationsdiskette. Der mögliche Inhalt und die genaue Syntax dieser Datei ist in der offiziellen Red Hat Linux Dokumentation sehr gut beschrieben. Hat man bereits einen Rechner installiert, so hat der Installer diese Konfiguration in der Datei /root/anaconda-ks.cfg abgespeichert (wobei allerdings die „gefährlichen“ Teile wie etwa die Partitionierung auskommentiert sind; andere Informationen, wie etwa die Netzwerkkonfiguration, werden leider gar nicht übernommen).

Eine minimale Kickstart Konfiguration, welche nur die Netzwerkkonfiguration enthält sowie auf den NFS Server zeigt, auf dem die Installationsmedien abgelegt sind (und die damit ideal für eine Kombination mit display ist), kann wie folgt aussehen:

Variante 1 (dynamische Netzwerkkonfiguration mittels DHCP):

network --device eth0 --bootproto dhcp
nfs --server zid-luxinst.uibk.ac.at --dir /var/admin/pub/dist/orig/iso/8.0

Variante 2 (statische Netzwerkkonfiguration):

Anmerkung

Alle Teile, außer nfs --server ... sind in eine Zeile zu schreiben, der „\“ ist jeweils wegzulassen!

network --device eth0 --bootproto static --ip 138.232.x.x \
--netmask 255.255.255.192 --gateway 138.232.x.x --nameserver 138.232.1.4 \
--hostname xxx.uibk.ac.at
nfs --server zid-luxinst.uibk.ac.at --dir /var/admin/pub/dist/orig/iso/8.0

Um eine Kickstart Installation zu starten, gibt man am Boot Prompt ein:

linux ks=floppy

5. ... und jetzt alle gemeinsam!

Diese Optionen können natürlich kombiniert werden. Alle Optionen zusammen verwendet würden daher so aussehen:

linux ks=floppy console=ttyS0,9600n8 display=[host]:0

Aber natürlich geht es noch eleganter - die Kickstart Datei kann auch auf einem NFS (oder HTTP) Server liegen. Dann würde dies wie folgt aussehen (192.168.0.1 ist durch die IP Adresse des NFS Servers zu ersetzen):

linux ks=nfs:192.168.0.1:/mydir/ks.cfg console=ttyS0,9600n8 display=[host]:0

Aber noch besser ist natürlich, wenn man das gar nicht mehr eingeben muss, sondern dies beim Boot der Installationsdiskette automatisch gemacht wird. Dazu editiert man die Datei syslinux.cfg auf der Diskette. Dort ändert man die Einstellung für timeout auf einen kleineren Wert (z.B. 10) und hängt unter label linux bei der Zeile, die mit append beginnt, die obigen Parameber an. Die Zeile sieht dann wie folgt aus:

Anmerkung

Beachten Sie, dass folgendes Beispiel als eine Zeile zu schreiben ist, wo bei das Zeichen „\“ weggelassen wird!

append initrd=initrd.img ... ks=nfs:192.168.0.1:/mydir/ks.cfg \
console=ttyS0,9600n8 display=[host]:0

6. finally()

Mit den neuesten Red Hat Linux Distributionen ist es auch (leichter) möglich, die Installations-CD so anzupassen, dass oben Beschriebenes auch bei einem CD-Boot möglich ist. Näheres findet sich in der Red Hat Linux Dokumentation.

Der auf der ersten Installations-CD enthaltene Rescue Modus funktioniert ebenfalls über die serielle Konsole. Hier lautet die die Zeile am Boot Prompt dann:

rescue console=ttyS0,9600n8