Prérequis
#########
Configuration du serveur DHCP
-----------------------------
Une machine bootant en PXE reçoit ses paramètres réseau (options) du serveur DHCP.
Deux
options sont importantes pour le boot TFTP : l'adresse du serveur TFTP
(option 66) et le nom du fichier de boot (option 67).
Vérifier dans le fichier '/etc/dhcp/dhcpd.conf' si les deux directives 'next-server' et 'filename' sont bien configurées.
subnet 10.0.x.0 netmask 255.255.255.0 {
range 10.0.x.150 10.0.x.200;
server-name "vmDnsDhcp.fij.name";
next-server 10.0.x.104;
filename "pxelinux.0";
dom0
####
Pour
la création de la vmTftp, prévoir suffisamment d'espace disque (150
GB). Cette machine contiendra des images système à distribuer sur
le réseau.
-# vim /etc/xen-tools/xen-tools.conf
size = 150 GB
Profitez
de l'occasion pour commenter le paramètre 'nameserver' (le fichier
/etc/resolv.conf de la dom0 sera alors copié dans la vm lors de sa
création).
Les protocoles utilisés pour le boot réseau et la distribution des fichiers
---------------------------------------------------------------------------
tftp 69 [udp]
nfs
2049
[udp,tcp] dépend de (rpc 111
[udp,tcp])
http 80 [tcp]
vmTftp
######
Installation des paquets nécessaires
------------------------------------
-# aptitude update
-# aptitude install vim rsync
-# aptitude install tftpd-hpa lighttpd nfs-kernel-server
Transfert du contenu du dossier reçu ('srv') depuis une machine cliente
-----------------------------------------------------------------------
Utiliser la commande 'rsync' qui gère correctement la copie des liens symboliques.
Depuis la machine cliente :
-$ rsync -av /cheminversledossier/srv/* root@10.0.x.104:/srv/
a : archive (récursif et préserve propriétaires, permissions, liens, dates, ...)
v : verbose
Cela prendra quelques minutes, le dossier fait plus de 10 GB.
Modifier (elles doivent correspondre à celle de votre machine vmTftp) les adresses IP indiquées dans les fichers :
/srv/tftpboot/pxelinux.cfg/menu/3.cfg
/srv/tftpboot/pxelinux.cfg/menu/4.cfg
/srv/tftpboot/pxelinux.cfg/menu/5.cfg
/srv/tftpboot/pxelinux.cfg/menu/6.cfg
Les
fichiers contenus dans ce dossier configurent le texte des fenêtres de
menus (apparaissant aux clients bootant via PXE et se connectant au
serveur tftp) et les commandes associées à chaque entrée de menu ('MENU
LABEL').
Configuration du seveur tftpd-hpa
---------------------------------
-# vim /etc/default/tftpd-hpa
Modifier la ligne pour obtenir :
TFTP_DIRECTORY="/srv/tftpboot"
-# /etc/init.d/ttftp-hpa restart
Vérifier par la commande :
-# netstat -ltu
l : les ports en état "listen"
t : tcp
u : udp
Il doit y avoir une ligne ressemblant à :
udp
0 0
*:tftp *:*
Configurer les exports NFS
--------------------------
-# mkdir /home/partimag
-# vim /etc/exports
Ajouter deux lignes :
/srv/ISOs
10.0.x.0/24(ro,sync,no_subtree_check)
/home/partimag 10.0.x.0/24(rw,no_root_squash,sync,no_subtree_check)
La
première : le dossier -en lecture seule- contient les images à
distribuer pour les 'Live Boot' de Debian, Ubuntu et Clonezilla.
La
seconde : le dossier -en lecture et écriture- servira à y placer les
images de systèmes créées par Clonezilla et à ensuite les déployer.
-# /etc/init.d/nfs-kernel-server restart
Pour en vérifier le bon fonctionnement, utiliser la commande 'mount.nfs'.
Configurer le serveur lighttpd
------------------------------
Ce
serveur web servira à héberger un miroir d'une archive Debian
(installateur Debian utilise http ou ftp pour télécharger ses paquets)
ainsi que les squashfs de Gparted et Rescatux.
-# vim /etc/lighttpd/lighttpd.conf
Modifier la ligne afin d'obtenir :
server.document-root = "/srv/www"
Ajouter deux lignes :
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
-# /etc/init.d/lighttpd restart
Pour en vérifier le bon fonctionnement, utiliser un navigateur web.
TEST
####
Démarrer une machine cliente PXE, tester les différents menus et applications.
Exercices
#########
- Cloner votre machine cliente à l'aide de Clonezilla
- Remplacer Clonezilla par la dernière version stable (i686-pae)
- Ajouter un live boot pour une Ubuntu 14.04 (ajout des fichiers, config du menu [6] et commandes associées)