Registrieren | Login:
Homepage  Artikel  Linux für Fortgeschrittene  Automatic Installation
Automatic Installation

FAI - Fully Automatic Installation

LUG-Balista  FAI-Howto

www.lug-balista.de

letzte Bearbeitung vom 20080324

?FAI? (Fully Automatic Installation) bietet die Möglichkeit, einzelne oder mehrere
Systeme anhand von Profilen, die auf einem Server hinterlegt sind, vollautomatisch zu installieren.

Viele Anleitungen im Netz beziehen sich noch auf Debian 3.1 sarge (oldstable).
Wir haben allerdings schon die neuere Version Debian 4.0 etch (stable) verwendet.

*****

Programmversionen:
    fai-server  3.2.4

Vorhandene Rechner:
    Spiegelserver > 192.168.1.250 server2
    FAI-Server > 192.168.1.250 faiserver
        ##Der Name "faiserver" ist nur noch statistisch. Er wird eigentlich fuer nichts
        mehr gebraucht. Das waehre nur interessant wenn Server und Fai-Server zwei unterschiedliche Rechner sind.##
    zu installierender Client > 192.168.1.40 testclient
    Gateway und Router > 192.168.1.1 ipcop
    Domain > balista.xx

Nach der Installation des Grundsystems des FAI-Servers:

#in /etc/apt/ sources.list eintragen#
#FAI
deb www.informatik.uni-koeln.de/fai/download/ etch koeln

> aptitude update
> aptitude install fai-quickstart fai-doc

dhcp-Server, usw... wird automatisch mit installiert.
Alle Abfrage mit >ok< / >Y< bestaetigen.

***

Folgende Dateien muessen noch bearbeitet werden.

/etc/fai/apt/sources.list
    > deb www.informatik.uni-koeln.de/fai/download/ etch koeln < zusaetzlich eintragen.

    Bestehende Eintraege sollten funktionieren, da sie den normalen apt-sourcen entsprechen.
    Eventuell eigenen Spiegelserver zusaetzlich eintragen.

***

Bearbeiten der Configuration fuer DEBOOTSTRAP:
(=> Erstellung der nfsroot-Umgebung, fuer den zu installierenden Client.)

/etc/fai/make-fai-nfsroot.conf

FAI_DEBOOTSTRAP="etch ftp.debian.org/debian"


        Zeile kopieren und aendern, wenn ein lokaler Spiegelserver vorhanden ist:

    > FAI_DEBOOTSTRAP="etch http: //192.168.1.250/debian"
        Laeuft bedeutend schneller als der Download aus dem Internet........

    > Zeile bearbeiten: NFSROOT_ETC_HOSTS="192.168.1.250 yourinstallserver"
        ändern auf lokale Umgebung:
        > NFSROOT_ETC_HOSTS="192.168.1.250 server2"

FAI-Setup starten:

> fai-setup -v
    Es werden ca. 330MB heruntergeladen (This may take a long time ;).
    Dann werden die Paketen entpackt, installiert usw.
    >...FAI setup finished.

Was ist passiert?:

    Es wird die Root-Umgebung fuer die Clienteninstallation im Verzeichnis
        >/srv/fai/nfsroot<
            des Servers erzeugt.
    Ebenso werden die nfs-Freigaben fuer die Root-Umgebung in der Datei
        >/etc/exports<
            generiert.

    Diese Freigaben muessen nochmal nachbearbeitet werden.
    Die Zeilen in der Datei, wie angegeben anpassen:
    > /srv/fai/config 192.168.1.30/255.255.255.0(async,ro,no_subtree_check)
    > /srv/fai/nfsroot 192.168.1.30/255.255.255.0(async,ro,no_subtree_check,no_root_sqash)
    in
    > /srv/fai/config 192.168.1.0/255.255.255.0(async,ro,no_subtree_check)
    > /srv/fai/nfsroot 192.168.1.0/255.255.255.0(async,ro,no_subtree_check,no_root_sqash)
    # Damit werden die NFS-Freigaben fuer das gesamte Subnet erstellt. #

***

Ein FAI-Bootmedium zu erstellen, gestaltet sich schwieriger als erwartet.
Dazu vielleicht spaeter mehr. (=> Floppy / CD)
Wir benutzen hier nur den Boot ueber das Netzwerk mit PXE-faehigen Netzwerkkarten!

-------------------------------------------------------------------------------

Beschreibung der Einrichtung eines DHCP Servers.
*************************************************
Die Datei ist natuerlich dem eigenen Netz anzupassen.

file: => /etc/dhcp3/dhcpd.conf

Nach der Bearbeitung den DHCP-Server mit
> /etc/init.d/dhcp3-server restart
neu starten.

<<--schnipp-->>
# BeispielConf fuer den DHCP:

# dynamic dns updates
#ddns-update-style interim;

ignore client-updates;

# be the master
authoritative;

# some common options
default-lease-time 600;
max-lease-time 7200;

option domain-name "balista.xx";
option domain-name-servers 192.168.1.1;

# our subnet
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.50 192.168.1.51;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  filename "pxelinux.0";  # wird erst beim PXE BOOT interessant.#
}

# Einem bestimmten Clienten (testclient) eine IP-Adresse zuweisen.#
 host testclient {
    hardware ethernet 00:11:2F:92:ED:B0;
    fixed-address 192.168.1.40;
    }

<<--schnapp-->>

Die Datei /etc/dhcp3/dhcpd.conf noch nicht schließen, es geht weiter........

-------------------------------------------------------------------------------

PXE BOOT:

Damit ein Client via Netzwerkkarte booten kann muss folgende Optionen in der
    > /etc/dhcp3/dhcpd.conf
        global gesetzt sein:

Wenn der DHCP-Server nur an ganz bestimmte Clients IP's vergeben soll:
    > deny unknown-clients;

Damit der Client den Namen, welcher in der dhcpd.conf unter > host eingetragen
ist (testclient), auch bekommt (wichtig!):
    > use-host-decl-names on;


Unser Beispiel fuer das definierte Subnetz,
gegenlesen und ergaenzen:

# our subnet
subnet 192.168.1.0 netmask 255.255.255.0 {
#  range 192.168.1.50 192.168.1.51;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
    server-name server2;
    next-server 192.168.1.250;
  filename "pxelinux.0";
}

In dem so geaenderten Subnetz ist jetzt keine IP-Range mehr definiert, damit der Server nur bekannten Hosts, durch die MAC-Adresse definiert, IP's vergibt.

Mit
    > fai-chboot -IB 192.168.1.40
        wird die Netzwerk-Boot-Config fuer diesen Rechner gesetzt.

***

Die Zeile in der Datei > /etc/inetd.conf anpassen:
> tftp  dgram   udp wait    root    /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /var/lib/tftpboot
in
> tftp  dgram   udp wait    root    /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /srv/tftp/fai

# Damit der TFTPD die zu uebertragende Datei pxelinux.0 im richtigen Verzeichnis findet. #

***

!!!! ---- ACHTUNG ---- !!!!
Wenn kein DNS-Server zur Verfuegung steht, muessen die Rechnernamen und
zugehoerigen IP's in der Datei
    > /etc/hosts

192.168.1.250 server2
192.168.1.40 testclient (=> Rechner#10 mac= 00:06:29:4f:d7:f8)
    eingetragen werden.

***

Reboot des Servers.

Beim ersten Start des Clients bootet dieser vom Netz.
Dabei wird das Minimal-System auf dem Client installiert, inclusive HD-Partitionierung, usw...
Am Ende wird vom Client ein Reboot durchgefuehrt, dieser endet schliesslich an einem Login-Prompt.

Standarduser: root
Passwort: fai

------------------------------------------------------------------------------------

Wichtige Pfade:
> /srv/fai/nfsroot                                  => Export fuer Client
> /srv/fai/nfsroot/etc/hosts                        => TCP-IP und Namen eintragen
> /srv/fai/nfsroot/var/lib/fai/config/disk_config/FAIBASE => hier wird die HD-Einteilung
                                                             eingetragen.
> /srv/fai/config                                   => configs fuer Alles ;)
> /srv/fai/config/package_config                    => "Grundsystem"
> /srv/fai/config/package_config/FAIBASE            => hier werden die zu installierenden
                                                       Pakete eingetragen.

-------------------------------------------------------------------------------------

Hilfreiche Links bezueglich FAI:
faiwiki.informatik.uni-koeln.de

www.debiananwenderhandbuch.de/fai.html
www.informatik.uni-koeln.de/fai/

faiwiki.informatik.uni-koeln.de/index.php/User_FAQ
linuxwiki.de/FAI

www.informatik.uni-koeln.de/fai/fai-guide
faiwiki.informatik.uni-koeln.de/index.php/Main_Page
www.linuxfibel.de/autoinstall.htm

Uni Graz:
itp.tugraz.at/~ahi/admin/FullyAutomaticInstallation.html

***
----------------------------------------------------------------------------------------


Next step:
Eigene FAI Klassen definieren und Scripte schreiben =8-)
Benutzer definieren. (=> Script schreiben)


    Viel Spass beim Basteln.
        LUG - Balista

Andreas Grote
Michael Beyer
*********************************

 

letzte Änderung: 21.03.2011 | copyright by LUG-Balista Hamburg e.V. 2011