2. Installation FAI

2.1. Prérequis

Les points suivants sont nécessaires pour une installation avec FAI.

Un ordinateur

l'ordinateur doit avoir une carte d'interface réseau. Un disque dur local est aussi nécessaire, sauf pour une installation sans disque. Aucune disquette ni CD-ROM n’est nécessaire. Le clavier ou la carte graphique ne sont pas obligatoires.

Un serveur DHCP ou BOOTP

les clients ont besoin d'un de ces démons pour obtenir l'information de boot. Mais vous pouvez aussi mettre toute cette information sur la disquette de boot.

Un serveur TFTP

le démon TFTP est utilisé pour transférer le noyau aux clients. C'est nécessaire uniquement en boutant à l'aide d'une carte réseau disposant d’un boot PROM.

Point de montage racine client

c'est un répertoire pouvant être monté, qui contient le système de fichiers complet pour les clients, pendant l'installation. Il sera créé pendant l'installation du paquet FAI et est aussi appelé nfsroot.

Miroir Debian

l'Accès à un miroir Debian est nécessaire. Un miroir local incluant tous les paquets Debian ou un apt-proxy[ (8)] est recommandé si vous installez plusieurs ordinateurs.

Noyau d’installation

une image de noyau qui supporte la carte réseau et monte son système de fichiers racine via NFS. Le paquet Debian fai-kernels fournit un noyau par défaut pour FAI.

Espace de configuration

Cet ensemble de répertoires qui contiennent les données de configuration est monté via NFS par défaut. Mais vous pouvez aussi obtenir ce répertoire à partir d'un système de gestion de versions comme CVS.

Le démon TFTP et le serveur NFS seront activés automatiquement lors de l’installation du paquet FAI. Tous les clients doivent avoir une carte réseau qui est reconnue par le noyau d'installation.

2.2. Comment créer un miroir Debian local

Le script mkdebmirror[3] peut être utilisé pour créer votre propre miroir Debian local. Ce script utilise le script debmirror[4] et le protocole rsync[ (1)]. Un miroir Debian 3.0 (Woody) partiel, pour l'architecture i386, sans les paquets source a besoin de 9.0GB d'espace disque. L'accès au miroir via NFS sera la méthode normale et la plus rapide dans la plupart des cas. Pour voir plus de messages lors de l’exécution du script, tapez mkdebmirror --debug. Vous n'avez pas besoin d’utiliser le compte root pour créer et maintenir le miroir Debian. Pour utiliser l'accès HTTP au miroir Debian local, il faut installer un serveur Web et créer un lien symbolique vers le répertoire local où vous avez placé le miroir :

          # apt-get install apache
          # ln -s /files/scratch/debmirror /var/www/debmirror

Créez un fichier sources.list[ (5)] dans /etc/fai qui donne accès à votre miroir Debian. Un exemple est disponible dans /usr/share/doc/fai/examples/etc. Ajoutez aussi l'adresse IP du serveur HTTP à la variable NFSROOT_ETC_HOSTS dans /etc/fai/make-fai-nfsroot.conf si le client n'a pas d'accès au DNS.[3][4]

2.3. Installation de FAI

Avant l'installation de FAI, vous devez installer le paquet fai-kernels, qui contiennent les noyaux d'installation par défaut pour FAI. Vous pouvez installer les deux paquets en utilisant packageinstall.

Si vous voulez installer tous les paquets qui sont utiles pour FAI, utilisez la commande suivante :

# apt-get install mknbi dhcp3-server tftpd-hpa rsh-server wget syslinux

Vous pouvez aussi obtenir la dernière version de FAI et des fai-kernels sur la page de téléchargement de FAI et installer les paquets en utilisant la commande dpkg.

La configuration pour le paquet FAI (pas les données de configuration pour les clients) est définie dans /etc/fai/fai.conf. Les définitions qui ne sont utilisées que pour la création de la nfsroot se trouvent dans /etc/fai/make-fai-nfsroot.conf. Comme FAI n'utilise pas encore debconf, éditez ces fichiers avant d’exécuter fai-setup.

Les variables importantes suivantes sont définies dans /etc/fai/make-fai-nfsroot.conf :

FAI_DEBOOTSTRAP

Pour construire le nfsroot, il y a une commande appelée debootstrap[ (8)]. Cela nécessite l’adresse d'un miroir Debian et le nom de la distribution (WOODY, SARGE, SID) pour laquelle le système Debian doit être construit.

NFSROOT_ETC_HOSTS

Si vous utilisez un accès HTTP ou FTP vers le miroir Debian, ajoutez son nom et son adresse IP à cette variable. Pour un noeud maître de cluster Beowulf, ajoutez-y les noms et adresses IP des deux réseaux. Cette variable n'est pas nécessaire si les clients ont accès à un serveur DNS.

FAI_SOURCES_LIST

Cette variable est maintenant périmée. Utilisez le fichier /etc/fai/sources.list à la place.

KERNELPACKAGE

Vous devez spécifier le paquet – construit avec make-kpkg[ (8)] – qui inclut le noyau par défaut pour démarrer les clients. Le paquet Debian fai-kernels contient le noyau d’installation par défaut, qui supporte les protocoles DHCP et BOOTP.

NFSROOT_PACKAGES

Cette variable contient une liste des paquets complémentaires qui seront ajoutés au nfsroot.

FAI_BOOT

Pour quel(s) protocole(s), de DHCP et/ou BOOTP, le serveur doit-il créer des installations (quand make-fai-nfsroot est lancé). Par défaut, il doit créer l'installation pour les deux protocoles.

Les variables importantes suivantes sont définies dans /etc/fai/fai.conf :

FAI_LOCATION

C'est le nom d'hôte et le répertoire distant de l'espace de configuration, qui sera monté via NFS. Sa valeur par défaut est /usr/local/share/fai mais certains préfèrent utiliser /home/fai/config ou /var/fai/config. Rappelez-vous que ce répertoire doit être exportée à tous les clients, pour que tous les fichiers puissent être lus par root.

FAI_DEBMIRROR

Si vous avez un accès NFS à votre miroir local Debian, cette variable spécifie le système de fichiers distant. Il sera monté sur $MNTPOINT, qui doit aussi être défini. Ce n'est pas nécessaire si vous utilisez l'accès via FTP ou HTTP.

Le contenu de /etc/fai/sources.list et la variable FAI_DEBMIRROR sont utilisés par le serveur d'installation, mais aussi par les clients. Si votre serveur d’installation dispose de plusieurs cartes réseau avec des noms d'hôte différents pour chaque carte (comme dans le cas d’un serveur Beowulf), utilisez le nom du serveur d'installation connu par les clients.

FAI utilise apt-get[ (8)] pour créer le système de fichiers nfsroot dans /usr/lib/fai/nfsroot. Il faut environ 230Mo d'espace libre sur le disque. Avant l'installation de FAI, vous aurez besoin du programme imggen[5], si vous voulez démarrer sur une carte réseau 3Com. Cet exécutable convertit des images netboot créées par mknbi-linux[ (8)], il est alors possible de bouter sur les cartes réseau 3Com. Mettez l'exécutable dans votre path (par exemple /usr/local/bin). Après avoir édité /etc/fai/fai.conf et /etc/fai/make-fai-nfsroot.conf, lancez fai-setup.

kueppers[~]# fai-setup
Adding system user fai...
Adding new user fai (101) with group nogroup.
Creating home directory /home/fai.
/home/fai/.rhosts created.
User account fai set up.
Creating FAI nfsroot can take a long time and will
need more than 230MB disk space in /usr/lib/fai/nfsroot.
Creating nfsroot for sarge using debootstrap
dpkg: base-passwd: dependency problems, but configuring anyway as you request:
 base-passwd depends on libc6 (>= 2.3.2.ds1-4); however:
  Package libc6 is not installed.
dpkg: base-files: dependency problems, but configuring anyway as you request:
.
.
.
Automatically converting /etc/network/interfaces succeeded.
Old interfaces file saved as interfaces.dpkg-old.
Creating base.tgz
`/etc/fai/sources.list' -> `etc/apt/sources.list'
Upgrading /usr/lib/fai/nfsroot
Adding additional packages to /usr/lib/fai/nfsroot:
module-init-tools dhcp3-client ssh file rdate hwinfo
bootpc rsync wget rsh-client less dump reiserfsprogs usbutils
dpkg-dev ext2resize hdparm smartmontools parted raidtools2 lvm2
dnsutils ntpdate dosfstools cfengine cvs jove
sysutils dialog discover mdetect libnet-perl netcat libapt-pkg-perl
grub lilo read-edid kudzu hwtools dmidecode
hostname: Host name lookup failure
/var/lib/dpkg/tmp.ci/preinst: line 7: lvscan: command not found
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
starting OpenBSD Secure Shell server: sshd.
`/etc/fai/fai.conf' -> `/usr/lib/fai/nfsroot/etc/fai/fai.conf'
`/etc/fai/make-fai-nfsroot.conf' -> `/usr/lib/fai/nfsroot/etc/fai/make-fai-nfsroot.conf'
`/etc/fai/sources.list' -> `/usr/lib/fai/nfsroot/etc/fai/sources.list'
DHCP environment prepared. If you want to use it, you have to enable the dhcpd and the tftp-hpa daemon.

Image Creator for MBA ROMs v1.01, Date: Nov 26, 2001
Design and Coding by Nick Kroupetski <NickKroupetski@hotmail.com>
Usage: imggen [OPTION] inputfile outputfile
  -a,   Add 3Com MBA/BootWare support
  -r,   Remove 3Com MBA/BootWare support from image file
  -i,   Show information on an image
  -h,   Help screen

In filename: /boot/fai/installimage
Out filename: /boot/fai/installimage_3com
Adding MBA support...
MBA support has been succesfully added
BOOTP environment prepared.
make-fai-nfsroot finished.                 <= *
Stopping NFS kernel daemon: mountd nfsd.
Unexporting directories for NFS kernel daemon...done.
Exporting directories for NFS kernel daemon...done.
Starting NFS kernel daemon: nfsd mountd.
You have no FAI configuration. Copy the simple examples with:
cp -a /usr/share/doc/fai/examples/simple/* /usr/local/share/fai
Then change the configuration files to meet your local needs.
FAI setup finished.                        <= *

Un enregistrement complet de fai-setup est disponible sur le site de fai. Il est important de voir les deux lignes marquées avec un astérisque. Sinon, les choses se passeront mal. Si vous obtenez beaucoup de lignes blanches, il est probable que vous utilisez konsole, l'émulation terminal X pour KDE qui est boguée. Refaites alors un essai en utilisant xterm.

Les messages d'avertissement de dpkg sur des problèmes de dépendances peuvent être ignorés. Si vous avez des problèmes pendant fai-setup, ils proviennent en général de make-fai-nfsroot[ (8)]. Vous pouvez le redémarrer en appelant 'make-fai-nfsroot -r' (recover). Ajouter '-v ' vous donne une production plus verbeuse qui peut vous aider à définir exactement l'erreur. Si vous voulez créer un fichier de log, vous pouvez utiliser

sudo /usr/sbin/make-fai-nfsroot –r -v 2>&1 | tee make-fai-nfsroot.log 

Il peut être utile d'entrer manuellement dans l'environnement chrooté

sudo chroot /usr/lib/fai/nfsroot 

La routine d'installation ajoute quelques lignes à /etc/exports pour exporter le nfsroot et l'espace de configuration à tous les hôtes qui appartiennent au groupe réseau faiclients. Si vous exportez déjà un répertoire parent de ces répertoires, vous pouvez commenter ces lignes, puisque le nfs-kernel-server à des problèmes pour exporter un répertoire et un de ses sous-répertoires avec des options différentes. Tous les clients doivent appartenir à ce groupe réseau pour monter ces répertoires avec succès. Les groupes réseau sont définis dans /etc/netgroup ou dans la map NIS correspondante. Un exemple pour le fichier netgroup peut être trouvé dans /usr/share/doc/fai/examples/etc/netgroup. Pour plus d'information, lisez la page de manuel netgroup[ (5)] et le NIS HOWTO. Après avoir changé les groupes réseau, le serveur NFS doit recharger sa configuration. Utilisez une des commandes suivantes, en fonction du serveur NFS que vous utilisez :

kueppers# /etc/init.d/nfs-kernel-server reload 
kueppers# /etc/init.d/nfs-user-server reload 

L'installation crée aussi le compte fai (défini par $LOGUSER) si il n’est pas déjà existant. Vous pouvez ajouter un utilisateur avant d’appeler fai-setup[ (8)] en utilisant la commande adduser[ (8)] et l'utiliser comme votre compte local pour sauvegarder les fichiers de log. Les fichiers de log de tous les clients sont sauvegardés dans le répertoire home de ce compte. Si vous boutez sur la carte réseau, vous devez changer le groupe primaire de ce compte, pour que ce compte ait la permission d’écrire dans /boot/fai de façon à changer les liens symboliques vers l'image du noyau qui est démarré par un client.

Après cela, FAI est installé avec succès sur votre serveur, mais n'a aucune configuration pour les clients. Inspirez-vous des exemples de /usr/share/doc/fai/examples/simple/ en utilisant la commande copy et lisez Détails de l'installation. Avant de pouvoir initialiser un démon DHCP ou BOOTP, vous devez rassembler des informations sur le réseau de tous vos clients. Reportez–vous à la section Création d'une disquette de boot.

Si vous faites des changements dans /etc/fai/fai.conf, /etc/fai/make-fai-nfsroot.conf ou si vous voulez installer un nouveau noyau dans nfsroot, l'arborescence nfsroot doit être reconstruite en lançant make-fai-nfsroot[ (8)].[5]

2.3.1. Diagnostic des pannes lors de l'installation

L'installation de FAI ajoute le compte fai, exporte des systèmes de fichiers et appelle make-fai-nfsroot.

Si vous appelez make-fai-nfsroot –v (verbose), vous verrez plus de messages. En utilisant un miroir local Debian, il est important que le serveur d'installation puisse monter le répertoire via NFS. Si ce montage échoue, vérifiez /etc/exports et /etc/netgroup. Un exemple peut être trouvé dans /usr/share/doc/fai/examples/etc/netgroup.



[3] Vous trouverez le script dans /usr/share/doc/fai/examples/utils/

[4] Disponible comme paquet Debian ou sur les site FAI

[5] Disponible sur la page de téléchargement de http://www.ltsp.org ou sur http://www.informatik.uni-koeln.de/fai/download.