Installation d’un serveur FAI
>>> Fully Automatic Installation
Version PDF

Guide d’installation d’un serveur FAI

Ce document a pour but d’aider une personne a installer un tel serveur. Ce serveur permettra, lorsqu’il sera installé et configuré, d’automatiser l’installation de systèmes d’exploitation Linux. Bien sûr, une personnalisation est possible et souhaitée afin de convenir aux besoins de chacun. Si une aide est souhaitée, une question, ou tout autre, un simple mail à l’adresse suivante suffit : contact@erwanhesry.com

> Article mis à jour le 19/01/2016


Sommaire :

I) Introduction
II) Etape 1
III) Etape 2
IV) Etape 3
V) Etape 4
VI) Etape 5
VII) Etape 6
VIII) Etape 7
IX) Etape 8
X) Etape 9
XI) Etape 10


I) Introduction

Haut de page

Le FAI, pour Fully Automatic Installation, est un système de gestion automatique d’installation de systèmes d’exploitations basés sur la distribution GNU/Linux Debian. Ce système fut développé par Thomas Lange travaillant à l’université de Cologne, (der Universität zu Köln, Institut für Informatik), lorsqu’il eu besoin d’installer un cluster utilisant 17 ordinateurs (1 maître et 16 esclaves).
Afin de réaliser l’automatisation, il utilisa l’outil JumpStart présent sous Sun/Solaris faisant la même tâche à savoir installer automatiquement des logiciels et des systèmes d’exploitation. Il adapta donc les scripts (fichiers de commandes) pour installer un système basé sur Debian (distribution choisie pour son cluster). De ce fait et comme FAI est inspiré de JumpStart, une version de FAI est capable d’installer Solaris.
De plus, s’agissant d’un logiciel libre, il peut être modifié afin d’installer d’autres systèmes d’exploitations tels que Red Hat (avec Kickstart), SuSE (avec YaST) mais aussi MicrosoftTM Windows® (avec quelques modifications du système FAI).
Enfin le système FAI, permet de personnaliser l’installation des postes clients. En effet, le système et les logiciels installés sur le poste client dépendent de l’adresse MAC et de son nom de machine : cela permet de faire un serveur et plus d’une cinquantaine d’installation différentes (en terme de logiciel) en même temps.

II) Etape 1

Haut de page

Télécharger l’image CD, la graver, et installer le système (choisir FAI-­-Server lors du choix au démarrage de l’ordinateur). L’image CD est disponible ici :

http://www.informatik.uni-­-koeln.de/fai/fai-­-cd/

III) Etape 2

Haut de page

Si vous souhaitez faire un miroir local (sinon passez à l’Etape 3) : Ouvrez le script présent ici /usr/share/doc/fai/examples/utils/mkdebmirror et éditez le de la manière suivante :
 Arch= architecture de vos stations finales : si elles sont en 32 bits choisissez i386, si elles sont en 64 bits, choisissez amd64. Autant faire un miroir pour une architecture et non pour les deux.
 Dist= choix de la distribution de Debian.
 Destdir= lieu où tous les paquets seront téléchargés.
 first sync... = choix des sources d’où seront téléchargés les paquets afin de créer le miroir, choisissez un miroir officiel de préférence pour avoir les dernières versions des paquets. Voilà, une fois que vous avez configuré le script comme vous le souhaitez, vous n’avez plus qu’à le lancer et patienter pendant le temps nécessaire à la création du miroir (prend plus ou moins de temps suivant la connexion à Internet).

IV) Etape 3

Haut de page

Configuration des fichiers de FAI : ces fichiers sont présent dans le répertoire /etc/fai/. Il faut configurer fai.conf et make-fai-nfsroot.conf.
Dans fai.conf, il faut laisser commenté les variables FAI_CONFIG_SRC et FAI_DEBMIRROR. Par contre, il faut configurer les variables LOGUSER, FAI_LOGPROTO, MNTPOINT, FAI et rajouter la variable FAI_CONFIGDIR. Dans notre cas, nous avions cela :

# $Id: fai.conf 5526 2009-09-28 08:29:37Z lange $ 
# /etc/fai/fai.conf -- configuration for FAI (Fully Automatic Installation)
# how to access the fai config space 
# If undefined here, make-fai-nfsroot/fai-setup will use default value 
# nfs://<install server>/$FAI_CONFIGDIR 
# supported URL-types: nfs, file, cvs, cvs+ssh, svn+file, svn+http, 
# git, git+http, hg+http #FAI_CONFIG_SRC=nfs://yourservername/path/to/config/space
# LOGUSER: an account on the install server which saves all log-files 
# and which can change the kernel that is booted via network. 
# Configure .rhosts for this account and PAM, so that root can log in 
# from all install clients without password. This account should have 
# write permissions for /srv/tftp/fai. For example, you can use write
# permissions for the group linuxadm. chgrp linuxadm /srv/tftp/fai;chmod 
# g+w /srv/tftp/fai. If the variable is undefined, this feature is disabled. # Define it, to enable it, eg. 

LOGUSER=fai LOGUSER=fai

# set protocol type for saving logs. Values: ssh, rsh, ftp 

FAI_LOGPROTO=ssh

# Access to Debian mirror via NFS mounted directory 
# If FAI_DEBMIRROR is defined, install clients mount it to $MNTPOINT #FAI_DEBMIRROR=/srv/mirror
# The following variables are read only for almost every user. 
# Do not change them unless you know what you are doing!
# mount point where the mirror will be mounted MNTPOINT=mnt/mirror
# the local configuration directory on the install client FAI=/var/lib/fai/config 

FAI_CONFIGDIR=/srv/fai/config

Dans le second fichier, make-fai-nfsroot.conf, il n’y a presque rien à modifier : seules ces trois variables doivent être changEes.

NFSROOT_ETC_HOSTS="148.60.210.250 faiserver" 
FAI_DEBOOTSTRAP="lenny http://148.60.210.250/debian" 
FAI_DEBOOTSTRAP_OPTS="--exclude=dhcp-client,info"	

V) Etape 4

Haut de page

Une fois que ces deux fichiers sont configurés, on peut lancer la commande fai-setup qui va créer le noyau et l’image du futur système d’exploitation : elle créée le nfsroot. Cette opération est un peu longue et nécessite environ 350Mo de disque dur. À la fin de l’opération, vous devez obtenir quelque chose ressemblant à cela :

make-fai-nfsroot finished properly.  <= très important !!!!!
Log file written to /var/log/fai/make-fai-nfsroot.log Adding line to /etc/exports: /srv/fai/config *(async,ro,no_subtree_check) Adding line to /etc/exports: /srv/fai/nfsroot *(async,ro,no_subtree_check,no_root_squash) Re-exporting directories for NFS kernel daemon....
FAI setup finished.	<= très important !!!!! 
Log file written to /var/log/fai/fai-setup.log

Si les deux lignes très importantes ne sont pas présentes, alors il y a un problème dans votre configuration.
Pour mettre à jour le nfsroot, il suffit d’utiliser la commande make-fai-nfsroot

VI) Etape 5

Haut de page

Configuration du serveur DHCP : c’est grâce à lui que le poste client saura qu’il faut utiliser PXE pour démarrer et télécharger les fichiers via TFTP. De plus, c’est dans son fichier de configuration que l’on retrouve la correspondance adresse MAC <=> adresse IP. Le fichier se situe dans /etc/dhcp3/ et c’est dhcpd.conf :

deny unknown-clients; 
option dhcp-max-message-size 2048; 
use-host-decl-names on;
allow booting; 
allow bootp;

subnet 148.60.210.0 netmask 255.255.255.0 { 
option routers 148.60.210.254; 
option domain-name-servers 148.60.211.252; 
server-name faiserver;
next-server 148.60.210.250; 
filename "pxelinux.0"; option root-path "/srv/fai/nfsroot";
}
host client1{ hardware ethernet 18:a9:05:25:8b:8d; fixed-address client1;
}

Explications :
 seul les clients spécifiés sont autorisés
 la taille des messages DHCP est au maximum de 2048 octets
 autorisation du démarrage via bootp
 réseau sur lequel on configure les clients
 passerelle
 DNS
 nom du serveur
 adresse du serveur TFTP
 fichier utilisé pour PXE
 chemin du nfsroot
 adresse IP obtenue si c’est l’ordinateur ayant cette adresse MAC qui se connecte

C’est dans ce fichier qu’on remarque le lien entre les fichiers dans Linux. Pour le client1, on remarque qu’on a mis en adresse IP « client1 » et non 148.60.210.X : il faut donc configurer le fichier hosts présent dans /etc/ et lui rajouter la ligne 148.60.210.X client1.

VII) Etape 6

Haut de page

À présent, occupons-nous du fichier /etc/exports : de base il y a deux lignes :

/srv/fai/config 148.60.210.250/255.255.255.0(async,ro,no_subtree_check) /srv/fai/nfsroot 148.60.210.250/255.255.255.0(async,ro,no_subtree_check,no_root_squash)

Remplacez dans les deux lignes 148.60.210.250/255.255.255.0 par *. Comme ça il n’y aura aucuns problèmes si un jour le serveur vient à changer d’adresse.

VII) Etape 7

Haut de page

Enfin, un dernier fichier est à configurer dans /etc. Il s’agit du fichier inetd.conf. Modifiez juste la ligne où l’on fait mention de TFTP :

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

IX) Etape 8

Haut de page

Maintenant, nous nous occupons de la personnalisation du système. Nous allons donc générer les fichiers permettant de configurer PXE. Pour cela une commande suffit :

fai-chboot -IFv nomduclient

Cela permet de créer un fichier dont le nom est la traduction en hexadécimal de l’adresse IP du client. Ce fichier contient les noms des deux fichiers à télécharger. Le fichier se situe dans /srv/tftp/fai/ pxelinux.cfg.

X) Etape 9

Haut de page

La personnalisation du système d’exploitation du client s’effectue grâce à l’Edition de fichiers présents dans /srv/fai/config. Pour configurer le disque dur, rendez-vous dans le dossier disk_config et créez un nouveau fichier du nom du client s’il y a des configurations différentes à réaliser, ou sinon éditez le fichier FAIBASE. Pour ce qui est des logiciels, même principe mais dans le dossier package_config : ajoutez simplement le nom des logiciels souhaités.

XI) Etape 10

Haut de page

Démarrez le poste client et configurez-le pour qu’il démarre sur la carte réseau. Re-démarrez et observez le système s’initialisant. Dans moins de 10 minutes, votre système est installé et est fonctionnel.

Le mot de passe root est "fai".
 
 
 
 
 
Commentaires :

  •  Installation d’un serveur FAI    > 19 janvier 2016 09:47, par Erwan H.

    @Romeo

    Tu trouveras un nouveau lien ici : http://fai-project.org/fai-cd/



  •  Installation d’un serveur FAI    > 26 avril 2012 18:01, par Romeo

    Je tenais a souligner par cette remarque que je suis ravi de la qualite de ce site. Une fois n’est pas coutume les commentaires evitent d’etre plombes par du spam et on peut donc avoir un vrai debat. Merci c’est reconfortant.

    pneu 5008

    Le pneu pas cher grenoble ou bien aussi pneus discount alfortville

    racheter pneu pas cher} cout premier pneus discount 4x4 pneu velo increvable pneu pas cher quimper et aussi pneu 6.50 16 ou bien aussi un pneus discount luxembourg ou bien egalement un pneu pas cher vredestein ou bien encore pneu pas cher lille pneus discount acheres pneus discount toulouse