FAI

Aus Doku-Wiki
Zur Navigation springenZur Suche springen

Anmerkung

Vorgabe ist, eine vollautomatisierte Debian Linux Client-Installation mit
unterschiedlicher Soft- und Hardwareausstattung der Clients.

Die Lösung wird mit einem Fai-Server umgesetzt.

Version und Voraussetzungen

Linux : Debian Sarge
Grundinstallation linux26
Fai :
fai-client 2.10.1
fai-doc 2.10.1
fai-kernels 1.10.3
fai-quickstart 2.10.1
fai-server 2.10.1

BUG

Beim Start von fai-setup bzw. make-fai-nfsroot kommte es zu fehlern die zu Abruch führen. Folgende Änderungen habe ich im Script /usr/sbin/make-fai-nfsroot vorgenommen:

- original Text
+ geänderter bzw. hinzugefügter Text 
Kernel wird nicht ins NFSROOT installiert

Der Kernel im Paket Fai-Kernels v1.10.3 heisst nicht mehr "kernel-image-xxx" sondern "linux-image-xxx". Folgenden Änderungen habe ich vorgenommen:

      local package=$1
 -    KERNELVERSION=`dpkg --info $package | grep "Package: kernel-image" | sed -e 's/.*kernel-image-'//`
 +    KERNELVERSION=`dpkg --info $package | grep -E "Package: (kernel|linux)-image" | sed -e 's/.*\(kernel\|linux\)-image-'//`
Im NFSROOT wird etc/fai nicht kopiert

Es soll aus /etc/fai/* alle Dateien nach $NFSROOT/etc/fai/ kopiert werden. Da dass Verzeichnis fai in $NFSROOT/etc nicht vorhanden ist, schlägt der Versuch fehl Meine Änderungen am Script make-fai-nfsroot:

-   cp -Rpv $cfdir/* $NFSROOT/etc/fai
+   cp -Rpv $cfdir $NFSROOT/etc/
Link auf etc/rcS kann nicht angelegt werden
Paket fai-nfsroot kann nicht Installiert werden.

Grund: Statt im $NFSROOT auf die Datei .THIS_IS_THE_FAI_NFSROOT zu matchen, wird diese direkt unter / gesucht

Fai-Server (Fully Automatic Installation)

Fai ist ein Installationsserver für Automatisierte Linux-Installation.
In diesem Artikel wird die Installation des Fai-Servers und den benötigten Diensten erklärt.
Homepage von [Fai ]
Wiki von [Fai ]

Debian-Pakete installieren

Nach eienem Eintrag in der "source.list" des Debianservers können die Debian-Pakete des Faiservers mit "apt-get" installiert werden.

# vi /etc/apt/source.list
  
deb http://www.informatik.uni-koeln.de/fai/download sarge koeln

Fai

Nach dem Eintrag kann man mit "apt-get" die Fai-Pakete installieren.

# apt-get update
# apt-search fai
# apt-get install fai-doc fai-client fai-server fai-kernels fai-quickstart

NFS-Server

# apt-get install nfs-common nfs-kernel-server debootstrap

Zusätliche Software

# apt-get install tftpd-hpa gcc vim mknbi rsh-server rsh-client ntpdate

NFS-Server einrichten

Folgende Konfigurationsdateien müssen angepasst werden:

/etc/export       | Freigabe der NFS-Shares für die Clients frei
/etc/netgroup     | Legt fest, welche Client-PCs zugreifen dürfen

Beispiel-Conf /etc/exports

 # /etc/exports: the access control list for filesystems which may be exported
 #		to NFS clients.  See exports(5).
 #
 /files/scratch 172.27.0.0/255.255.0.0(ro) 127.0.0.1(ro)
 /files/scripts 172.27.0.0/255.255.0.0(ro) 127.0.0.1(ro)
 /usr/local/share/fai @faiclients(ro) 172.27.0.0/255.255.0.0(ro) 127.0.0.1(ro)
 /usr/lib/fai/nfsroot @faiclients(ro,no_root_squash) 172.27.0.0/255.255.0.0(ro,no_root_squash) 127.0.0.1(ro)
 

Beispiel-Conf /etc/netgroup

# etc/netgroup 
#
# Einzelne Client-Def.
#
li-sua-101 (li-sua-101,,)
li-sua-102 (li-sua-102,,)
debian-fai (debian-fai,,)

# Gruppe
li-sua-clients li-sua-101 li-sua-102 

# Fai-Clients
faiclients li-sua-clients
 

Jetzt noch die Freigaben anlegen, falls noch nicht vorhanden

# mkdir -p /files/scratch
# mkdir -p /files/scripts
# mkdir -p /usr/local/share/fai
# mkdir -p /usr/lib/fai/nfsroot

Erstes starten des NFS-Servers

# rpc.mountd
# rpc.nfsd
# /etc/init.d/nfs-common start
# /etc/init.d/nfs-kernel-server start

Nach dem start sollte folgende Ausgabe auf der Console zu sehen sein:

  Export list for fai-sarge:
     /files/scripts        172.27.0.0/255.255.0.0
     /files/scratch        172.27.0.0/255.255.0.0
     /usr/lib/fai/nfsroot  @faiclients,172.27.0.0/255.255.0.0
     /usr/local/share/fai  @faiclients,172.27.0.0/255.255.0.0

Fai-Server einrichten

Konfigurationsdateien des FAI-Servers :

  • /etc/fai/fai.conf
  • /etc/fai/make-nfs-root.conf
  • /etc/fai/source.list

/etc/fai/

Grundkonfiguration anpassen.
!!! Achtung !!!
Wenn in diesen Dateien Änderungen vorgenommen werden,
muss danach fai-setup bzw. make-fai-nfsroot
aufgreufen werden. Sonst werden die Änderungen nicht wirksam.

fai.conf

Diese Eintsellungen müssen vorgenommen werden. Optionale Einstellungen werden hier nicht aufgeführt

  • Der INSTALLSERVER muss über DNS aufgelöst werden
installserver=INSTALLSERVER
  • Wird zum erzeugen des nfs-root benötigt
mirrorhost=ftp.debian.org
  • Wenn der Fai-Server mehrere Netwerkkarten
SERVERINTERFACE=eth0
  • Zum speichern der Installations-Logfiles
FAI_REMOTESH=rsh
FAI_REMOTECP=rcp
  • Pfadt zu den Scripten für die Clientinstallaton
FAI_CONFIGDIR=/usr/local/share/fai
FAI_LOCATION=$installserver:$FAI_CONFIGDIR
  • Pfadt des nfsroot-Verzeichnisses
NFSROOT=/usr/lib/fai/nfsroot
  • Konfigurationsverzeichnis auf dem Client
FAI=/fai
make-nfs-root.conf

Anpassungen des Basispaketes im nfs-root Auch hier nur die Einstellungen die angepasst werden müssen

  • Mirror-Server (z.B. Siegel oder Apt-Proy)
FAI_DEBOOTSTRAP="sarge http://$mirrorhost/debian"
  • Root-Passwort (fai)
FAI_ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
  • Bootkernel der Clients
KERNELPACKAGE=/usr/lib/fai/kernel/linux-image-2.6.16-fai-kernels_1_i386.deb
  • Exportiert die nfsroot für die angegebene Netzgruppe
FAICLIENTS="172.27.0.0/16"
  • Pakete die nicht benötigt werden.
FAI_DEBOOTSTRAP_OPTS="--exclude=pcmcia-cs,ppp,pppconfig,pppoe,pppoeconf,dhcp-client
                       exim4,exim4-base,exim4-config,exim4-daemon-light,mailx,at 
                       fdutils,info,modconf,libident,logrotate,exim"


  • Pakete die zusätzlich zur nfs-root hinzu gefügt werden
packages="fai-nfsroot module-init-tools dhcp3-client ssh rdate lshw hwinfo portmap
bootpc rsync wget rsh-client less dump reiserfsprogs usbutils
psmisc pciutils hdparm smartmontools parted mdadm lvm2
dnsutils ntpdate dosfstools cvs jove xfsprogs xfsdump
sysutils dialog discover mdetect libnet-perl netcat libapt-pkg-perl
console-tools"
source.list

In diesem Beispiel wird ein APT-Proxy eingebungen.

Beispiel

# These lines should work for many sites
# A more comprehensive example can be found in /usr/share/doc/fai/examples/etc
#
# Internet
##########
# deb http://ftp.debian.org/debian sarge main contrib non-free
# deb http://ftp.debian.org/debian sarge-proposed-updates main contrib non-free
# deb http://security.debian.org/debian-security sarge/updates main contrib non-free
#
# Debian-Proxy local
####################
deb http://fai-sarge:9999/debian stable main contrib non-free
deb-src http://fai-sarge:9999/debian stable main contrib non-free
deb http://fai-sarge:9999/debian-non-US stable/non-US main contrib non-free
deb-src http://fai-sarge:9999/debian-non-US stable/non-US main contrib non-free
deb http://fai-sarge:9999/security stable/updates main contrib non-free

DHCP3-Server einrichten

Fai Client-Installation

Fai-Client