Fully Automatic Installation (FAI)

Table of Contents

Uplink und Dokumentation

Alternativen zu FAI

Diese Möglichkeiten leiden alle unter dem Problem, daß man sich für einen Referenzrechner (golden client) entscheiden muß, von dem die Konfiguration geklont wird.

Installation von FAI

Die vorhandene Infrastruktur zu DHCP und DNS soll erhalten bleiben; aber NFS und TFTP von einem Rechner (faepop01, meine WS) mit FAI aus versorgt werden:

sudo apt-get install fai-server fai-doc fai-client debmirror \
     nfs-kernel-server tftpd-hpa syslinux apt-move

Änderungen an der Konfiguration

/etc/fai/apt/sources.list:

deb     http://faepsv04.tu-graz.ac.at:3142/security.debian.org   wheezy/updates main contrib non-free
deb     http://ftp.tu-graz.ac.at/mirror/debian/  wheezy  main non-free contrib
deb     http://faepsv04.tu-graz.ac.at:3142/ftp.at.debian.org/debian/  wheezy        main non-free contrib
deb     http://itp.tugraz.at/Comp/debian/  wheezy  main system backports
deb     http://itp.tugraz.at/Comp/debian/  squeeze main system backports
deb     http://itp.tugraz.at/Comp/debian/  lenny   main system backports
deb     http://fai-project.org/download wheezy koeln

/etc/fai/fai.conf: (bleibt zur Zeit unverändert) ???

# installserver=faepop01.tu-graz.ac.at
# mirrorhost=ftp.tu-graz.ac.at/mirror

/etc/fai/nfsroot.conf:

FAI_DEBOOTSTRAP="wheezy http://ftp.at.debian.org/debian"

Erzeugen des NFS-Roots

Setup ausführen: erzeugt das über NFS exportierte root filesystem

sudo rm -rf /srv/fai/.will-now-be-deleted/nfsroot/
sudo fai-setup -v -f
# diff -u SETUP/fai.conf /srv/fai/nfsroot/etc/fai/fai.conf
# sudo cp SETUP/fai.conf /srv/fai/nfsroot/etc/fai/fai.conf
wget -O - http://fai-project.org/download/074BCDE4.asc                  | sudo chroot /srv/fai/nfsroot/ apt-key add -
wget -O - --no-check-certificate https://itp.tugraz.at/~ahi/gpg-key.asc | sudo chroot /srv/fai/nfsroot/ apt-key add -

TODO eigener Kernel

http://wiki.fai-project.org/Using_customized_kernels_with_FAI

Im sonst verwendeten Kernel-Paket (siehe Debian) wird die Unterstützung für Module abgeschaltet (Loadable module support —> Enable loadable module support). Die Optionen für IP-Autokonfiguration (Networking —> Networking options —> IP: kernel level autoconfiguration + IP: DHCP support) und root over NFS (File systems —> Network File Systems —> Root file system on NFS) werden aktiviert.

Zusätzlich: “aufs” einpatchen (zur Zeit reicht das aufs-Paket aus debian testing)

CONFIG_NFS_COMMON=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_ROOT_NFS=y

Kompilieren und installieren des Kernels mit dem Eintrag “linux-image-xxxxx” in der Datei /etc/fai/NFSROOT

sudo make-fai-nfsroot

oder beser gleich mit GRML-Kernel:

Booten über PXE

DHCP

Wo ist die Konfiguration für den DHCP Server? Was solls - Ergänzung in der DHCP-Konfiguration:

group {
  next-server faepop01 ;
  filename "pxelinux.0";
  use-host-decl-names on;
  host faeppc## {hardware ethernet 00:0C:6E:8F:06:96; fixed-address 129.27.161.##;}
  host ....
}

TFTP

Für den zweiten Tei des Bootens übers Netz ist TFTP zuständig; das funktioniert hier leider nur zuverlässig; wenn es nicht über den inet-Superdaemon ausgeführt wird.

Installieren über

apt-get install tftpd-hpa # oder atftpd

und einstellen der Parameter für den start als eigenständiger Daemon in “/etc/default/tftpd-hpa”:

RUN_DAEMON="yes"
OPTIONS="-l -v -s /srv/tftp"

alternativ:

“/etc/inetd.conf”

tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /srv/tftp

FAI

Dann wird noch

sudo fai-chboot -IFv -s2.6.32.7       faepop.. # install
sudo fai-chboot -IFv -s2.6.33-grml64  faepnb.. # install
sudo fai-chboot -SFv -s2.6.33-grml64  default  # sysinfo
/usr/sbin/fai-chboot -L

ausgeführt, PXE-Boot läuft.

Abhilfe durch eine PXE-Floppy?

Das “alte” Etherboot funktioniert nicht mit nicht mit “3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12) - 10b7:1700” - allerdings ist das durch gPXE sehr viel besser geworden.

Booten vom USB-Stick als USB-Floppy (funktioniert nicht)

IMG=$(mktemp -u /tmp/fai.img.XXXXXXXXXX)
sudo make-fai-bootfloppy -B -f ${IMG} -F \
   "nfsroot=/srv/fai/nfsroot,v3,rsize=32768,wsize=32768 FAI_ACTION=install"
dd if=${IMG} of=/dev/sda && rm -f ${IMG}

Booten von CD (funktioniert nicht)

fai-mirror -v /tmp/mirror
fai-cd -m     /tmp/mirror fai.iso
#ai-cd -m     /tmp/mirror -u DIRECTORY

make-fai-bootfloppy -f /tmp/fai_floppy.img -i /tmp/fai_iso.img -F \
   "nfsroot=/srv/fai/nfsroot,v3,rsize=32768,wsize=32768 FAI_ACTION=install"

neu:

Basiskonfiguration

sudo mkdir -p /usr/local/share/fai/
sudo cp -a /usr/share/doc/fai/examples/simple/* /usr/local/share/fai/

[….]

Installationsversuch

[….]

Probleme nach der Installation

  • in /etc/udev/rules.d/70_persistent-net.rules werden 2 Ethernet-Schnittstellen eingetragen, davon ist nur die zweite (eth1) korrekt?
  • die Datei /etc/X11/default-desktop-manager hindert kdm am laufen - anscheinend nicht immer?
  • Konfiguration für die ConfigurationEngine wird noch nicht automatisch übertragen.

Manuelle Nacharbieten

Einige der Schritte sind zur Zeit noch nicht in FAI integriert, daher sind folgende Aktionen manuell auszuführen.

vor dem Installieren sind am SERVER folgende Schritte nötig

  • Löschen der alten Keys der Configuration Engine:
rm -f /var/lib/cfengine/ppkeys/root-129.27.XXX.XXX.pub

nach dem Installieren sind am SERVER folgende Schritte nötig

  • Neuscannen der SSH-Keys
  • Erzeugen und Übertragen eines Kerberos-Hostkeys:
make -C ~/ITP/Config/files SSH install ; sudo cfagent -qK
krb5_hostkey_generator.pl <neuer_rechner>

nach dem Installieren sind am CLIENT folgende Schritte nötig

  • cfengine laufen lassen (geht zu nächsten Stunde aber auch automatisch)
  • Installation aller Pakete für Workstations
  • Konfiguration von X11
ssh root@<neuer_rechner> /afs/itp.tugraz.at/common/scratch/debian-postinstall

Author: Andreas Hirczy

Created: 2017-11-08 Mit 18:14

Validate XHTML 1.0