Netzwerkinstallation über PXE

Automatische Installation von Suse Linux 9.3 über LAN , mithilfe von PXE

1. Grundlage / Innovation

Es soll ein Server für eine automatische netzwerkbasierte Installation von Linux auf den neu gebauten Servern eingerichtet werden. Zweck dieser Maßnahme ist es, eine Zeitersparnis bei der Vor – Installation der Server zu erreichen.

2. Hardware

Voraussetzung hierfür sind clientseitig PXE – bootfähige Netzwerkkarten und eine Verbindung zum Installationsserver über LAN.
Beim Server ist nat. die Ausfallsicherheit zu gewährleisten. (Raid, Redundanz, ….).
Ansonsten gibt es keine hardwareseitigen Voraussetzungen.

3. Server Installation

a. Installation Suse Linux 9.3

Zu Beginn ist ein einfaches Suse Linux System zu installieren. Es gibt hierbei noch keine Besonderheiten, die zu beachten sind. Es sollte wenn möglich ein graphisches System installiert werden, da später YAST2 benötigt wird. Die benötigten Server (DHCP, TFTP, NFS) sind bei der Installation schon mit dabei (falls nicht, bitte betreffende Pakte nachinstallieren)

b. Einrichten DHCP Server

Zuerst wird die Netzwerkkarte des Servers eingerichtet, und eine feste IP vergeben. In diesem Fall 10.10.10.5. Falls der Server über 2 Netzwerkkarten verfügt, am besten 1 deaktivieren, falls diese nicht gebraucht wird. Dies verhindert eventuelle Störungen der IP Adressverteilung.
Als nächstes ist der DHCP Server für die automatische IP Adressverteilung einzurichten.
Editieren der Datei /etc/dhcpd.conf wie folgt:

Bsp: vi /etc/dhcpd.conf

# Standardeinstellungen
option broadcast-address 10.255.255.255;
option subnet-mask 255.0.0.0;
option domain-name „PXEServer“;
option domain-name-servers 10.10.10.5;
option routers 10.10.10.5;
allow bootp;
allow booting;
allow unknown-clients;
ddns-update-style none;
default-lease-time 14400;
#Gruppe der PXE Clients
subnet 10.0.0.0 netmask 255.0.0.0 {
range dynamic-bootp 10.10.10.50 10.10.10.100;
next-server 10.10.10.5; #PXEServer
server-name „10.10.10.5“;
filename „/pxelinux.0“;
get-lease-hostnames true;
use-host-decl-names on;
}

Erläuterungen zur dhcpd.conf – Datei:
• allow booting ; allow bootp ermöglicht das Booten vom Netz und den Empfang einer IP Adresse
• Standardeinstellungen = globale Einstellungen des Netzwerks
• option domian-name ==> Installationsserver = PXEServer
• ddns-update-style none ==> DHCP arbeitet ohne dynamische Updates
• PXE Gruppe = PXE – Clients
• range dynamic-bootp ==> Adressbereich für Clients
• filename = Lage der Datei pxelinux.0 im Ordner tftpboot, welche von PXE gebraucht wird

Wenn die Einstellungen in der dhcpd.conf passen wird der DHCP Server Dienst mit

rcdhcpd restart

neu gestartet, um die neuen/geänderten Einstellungen zu übernehmen.
Alternativ können die DHCP Servereinstellungen auch mit YAST konfiguriert werden.

Tipp !

Es ist sinnvoll gleich jetzt die Funktionalität des DHCP Servers zu testen. Am besten einen anderen PC mit dem Server über LAN verbinden und schauen, ob der PC eine IP Adresse vom PXE – Server erhält. Am PC muss „IP Adresse automatisch beziehen“ an der Netzwerkkarte eingestellt werden.

c. Einrichten NFS Server

Danach muss ein NFS Server installiert werden.
Der NFS Server stellt Verzeichnisse bereit, von denen aus später die Installation durchgeführt wird. Zu diesem Zweck wird ein neuer Ordner erstellt, in den dann alle Suse Linux 9.3 CDs kopiert werden. Der neue Ordner kann in jedem beliebigen Verzeichnis erstellt werden. Zu beachte ist, dass diese Pfadangabe dann auch in allen folgenden Einstellungen übernommen werden muss. (z.B in der Datei default)

mkdir NeuerOrdner
mount /media/dvdrecorder
cp –av /media/dvdrecorder/* /NeuerOrdner

Die komplette Suse9.3 DVD (oder alle CD´s) (und evtl. benötigte zusätzliche Treiber) wird komplett ins Verzeichnis srv/SuseBoot/ (= NeuerOrdner) kopiert.
Dieses Verzeichnis wird dann als NFS Verzeichnis freigegeben. Dies kann man anhand der Datei /etc/exports erledigen, oder auch wieder alternativ mit YAST das NFS Verzeichnis freigeben.

Bsp: vi /etc/exports

/srv/SuseBoot/ *(rw,no_root_squash,sync)

Erläuterungen zur exports – Datei:
• Freigabe Verzeichnis: /root/SuseBoot/
• Erlaubte Server: * = jeder Server
• rw = Lese – und Schreibrecht für den Ordner
• sync = Synchronisation

Der NFS Server wird mit dem Befehl

rcnfsserver restart

neu gestartet, dadurch werden die aktuellen Einstellungen übernommen und der Zugriff über NFS sollte funktionieren.

Tipp !

Am besten hier mit einem anderen Linux Rechner schon die Funktionalität von DHCP – und NFS – Server testen. Am Linux Rechner ein NFS Client einrichten (YAST2) und probieren , ob das vom Server freigegebene Verzeichnis erreicht werden kann.
Wenn der Rechner hier eine IP Adresse bekommt und auf das NFS Verzeichnis zugreifen kann, kann mit dem nächsten Schritt fortgefahren werden.
mögliche Fehlerquellen:
• Firewall deaktivieren oder Einstellungen anpassen
• Netzwerkkarte ist aktiviert (ifup eth0)
• DHCP Server läuft nicht (dhcpd restart)
• NFS Server läuft nicht (nfsserver restart)
• Einstellungen in /etc/dhcpd.conf überprüfen
• Einstellungen in /etc/exports überprüfen
• Kabel, Switch, Netzwerkkarte
• DHCP Server Einstellungen nochmals überprüfen (dhcpd.conf)

d. Einrichten TFTP Server

Der TFTP Server dient zur Datenübertragung (Kernelbootimages) zwischen Server und
PXE – Clients.
Es muss auch hier wieder ein Verzeichnis für den TFTP Server angelegt werden und mit „tftpboot“ benannt werden. Der Ordner kann auch in einem beliebigen Verzeichnis erstellt werden, vorzugsweise aber unter /srv/tftpboot.
Zum Aktivieren des TFTP Servers die Datei /etc/xinitd.d/tftp ändern:
• disable = yes  disable = no
• server_args : – Schalter –s = relativer Pfad (tftpboot)
– Pfadangabe zu pxelinux.0

Bsp: vi /etc/xinitd.d/tftp

# default: off
# description: tftp service is provided primarily for booting or when a
# router need an upgrade. Most sites run this only on machines acting as
# „boot servers“.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /srv/tftpboot/
disable = no
}

Der TFTP Server wir mit den initd Diensten gestartet. D.h. mit dem Kommando

/etc/initd/xinitd restart

wird der TFTP Server gestartet.

Tipp !

Auch hier ist es ratsam gleich die TFTP Funktionalität mit einem anderen Rechner zu testen.

e. Syslinux und Bootloader

Danach geht es an die Einstellungen des Bootloaders. Hierzu muss das Paket Syslinux installiert sein. Normal ist Syslinux unter /usr/share/syslinux zu finden.
Falls Syslinux nicht installiert ist, kann man das Paket unter http://syslinux.zytor.com/index.php herunterladen und nachinstallieren.
Danach wird die Datei pxelinux.0 aus dem Syslinux Paket in das tftpboot Verzeichnis kopiert:

cp –a /usr/share/syslinux/pxelinux.0 /srv/tftpboot/

Ins Verzeichnis /srv/tftpboot/ wechseln und einen neunen Ordner pxeliunx.cfg erstellen:

cd /srv/tftpboot/
mkdir pxelinux.cfg

Danach wird die Datei isolinux.cfg von der ersten Suse CD (Pfad=/boot/loader/isolinux.cfg) in das Verzeichnis /srv/tftpboot/pxeliunx.cfg kopiert und in default umbenannt.

cp /media/dvdrecorder/boot/loader/pxelinux.cfg /srv/tftpboot/pxelinux.cfg/default

Jetzt werden die zum Booten benötigten Dateien (linux, initrd, message) noch ins tftpboot Verzeichnis kopiert.

cp –a /media/dvdrecorder/boot/loader/linux /srv/tftpboot
cp –a /media/dvdrecorder/boot/loader/initrd /srv/tftpboot
cp –a /media/dvdrecorder/boot/loader/message /srv/tftpboot
cp –a /media/dvdrecorder/boot/loader/memtest /srv/tftpboot

Danach nach /srv/tftpboot/pxelinux.cfg wechseln, und die Datei default wie folgt editieren.

Bsp: vi /srv/tftpboot/pxelinux.cfg/default

label suse_s # SCSI / SATA
kernel linux
append initrd=initrd ramdisk_size=65536 splash=0 vga=normal textmode=1 insmod=e100 insmod=e1000 insmod=rtl8139 insmod=tulip install=nfs://10.10.10.5/srv/SuseBoot/ autoyast=nfs://10.10.10.5/srv/SuseBoot/autoinst_sata.xml

label suse_i # IDE
kernel linux
append initrd=initrd ramdisk_size=65536 splash=0 vga=normal textmode=1 insmod=e100 insmod=e1000 insmod=rtl8139 insmod=tulip install=nfs://10.10.10.5/srv/SuseBoot/ autoyast=nfs://10.10.10.5/srv/SuseBoot/autoinst_ide.xml

implicit 1
display message
prompt 1
timeout 2000

Erläuterung zur default Datei:
• In den append Zeilen können mit insmod=… Treiber eingebunden werden.
• Mit install=nfs… wird das NFS Verzeichnis mit den Linux CD´s angegeben.
• autoyast=nfs…zeigt auf die autoinst.xml, welche die Yast Installationsinfos enthält.

f. YAST Autoinstaller

Nun wird die eigentliche Installations- und Konfigurationsdatei mit der die Grundeinstellungen am System vorgenommen werden mit YaST2 erzeugt.
Nach dem Aufruf von

YaST -> Verschiedenes -> Automatische Installation

können alle Optionen angepasst werden.
Das Ergebnis wird als autoinst.xml im Ordner mit den Linux CDs (/srv/SuseBoot/) gespeichert.
Es können auch mehrere solcher autoinst.xml Dateien erzeugt werden, die sich aber im Namen unterscheiden müssen.
In unserem Fall werden 2 Konfigurationsdateien erzeugt, eine für SATA / SCSI und eine für IDE Systeme.
Die zweite Datei auch im selben Ordner (SuseBoot – Verzeichnis), aber unter anderem Namen abspeichern. Es ist auch die default Datei dementsprechend anzupassen.

4. Client

Am Client ist die Bootreihenfolge so einzurichten, dass als erster Bootdevice die PXE Netzwerkkarten eingestellt sind. Ansonsten sind keine weiteren Einstellungen vorzunehmen.
Nach dem PXE Start kommt man ins Auswahlmenü für die verschiedenen Suse Versionen.
(IDE bzw. SATA/SCSI Systeme). Nach der Auswahl beginnt die automatische Installation, es sind später nur noch 2 mal die Einstellungen zu bestätigen.

5. Bootvorgang

Der Client erhält über DHCP eine IP Adresse und über TFTP wird pxelinux.0 aus tftpboot geladen. Wenn alles funktioniert, sollte die angepasste message aus tftpboot erscheinen.
Entsprechend der Boot – Message wird dann das zu installierende System ausgewählt.
Danach folgt die Systeminitialisierung unter Linux und nach erfolgreichem Ablauf kommt man ins YaST Menü. Hier kann man das System noch indivuduell einrichten, oder aber auch die automatische Installation wählen, welche ein Minimalsystem Linux installiert.
Der Installationsvorgang läuft bis auf 2 Bestätigungen automatisch bis zur ersten Anmeldung durch.

6. Abschluss

Nun kann auf alle Server über LAN und PXE Boot Linux automatisch installiert werden.

Die Installation sollte unbeaufsichtigt ca. 10-12 Minuten dauern.

Originalbeitrag von www.administrator.de

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert