Vous êtes sur la page 1sur 6

Prambule

Comme il m'a t extrmement difficile de trouver une mthode pour monter un serveur PXE (mthodes non fonctionnelles, articles pas jours, etc.) j'ai dcid de vous faire partager ici une procdure fonctionnelle base sur la dernire version de Debian. Comme vous pourrez le constater, cet article est bas sur la procdure dcrite sur Yoann's Blog, mais remise au got du jour et adapte aux volutions des outils utiliss.

PXE ??
Avant de commencer il semble ncessaire de prsenter ce qu'est le PXE et quels en sont les avantages. L'amorage PXE (sigle de Pre-boot eXecution Environment) permet une station de travail de dmarrer depuis le rseau en rcuprant une image de systme d'exploitation qui se trouve sur un serveur. [Wikipedia] En rsum, au moment du boot (bios) il est possible, sur certaines machines quipe de booter un OS depuis un serveur PXE comme on booterait partir d'un CD ou d'une cl USB. Sur d'autres machines non quipes pour le PXE, il est possible de booter depuis un CD un mini-OS (gPXE) qui permet le boot PXE, mais j'y reviendrais srement d'ici quelques temps. L'avantage de monter un tel serveur devient vite vident lorsque l'on souhaite installer un mme OS sur plusieures machines possdant des hardwares htrognes (pas de Ghost possible). Ce genre de serveurs est donc trs largement rpandu dans le monde de l'entreprise.

Pr-requis
Pour bien comprendre les prochaines tape de cet article, posons un peu les choses. Un serveur PXE se compose d'un serveur DHCP (si vous n'en avez pas dj un), d'un serveur TFTP et du serveur PXE proprement dit. Le serveur DHCP permet d'attribuer automatiquement une IP la machine voulant rcuprer l'OS et le serveur TFTP permet de transfrer les fichiers ncessaires l'installation. Pour monter notre serveur, nous allons avoir besoin de: Un PC / Serveur / Machine virtuelle sur le(la)quel(le) est install Debian Squeeze (6.0) Une connexion Internet pour l'installation des paquets Si vous avez un routeur qui fait office de DHCP sur le rseau, pensez dsactiver ce service. tre root sur la machine lors de cette procdure. Nous dfinirions l'environnement ainsi: Plage IP: 192.168.200.0/24 IP serveur: 192.168.200.1 IP routeur: 192.168.200.254

Installation du DHCP
Nous allons utiliser le serveur "dhcp3" (diffrent de "dhcpd") qui supporte, semble-t-il, correctement le

PXE. Pour l'ensemble des installations et configuration, placez vous en root.

Installation:
apt-get install dhcp3-server

Configuration:
ditez (vi, nano, pico, ...) le fichier /etc/default/dhcp3-server (s'il n'existe pas crez le) de manire spcifier sur quelle interface doit rpondre le serveur DHCP. (j'utilise eth1 car je possde deux cartes rseaux, mais si vous n'en avez qu'une choisissez eth0) INTERFACES="eth1" ditez aussi le fichier /etc/dhcp/dhcpd.conf : authoritative; ddns-update-style interim; ignore client-updates; subnet 192.168.200.0 netmask 255.255.255.0 { range 192.168.200.120 192.168.200.145; option domain-name-servers 192.168.200.1; option routers 192.168.200.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.200.255; default-lease-time 43200; max-lease-time 86400; server-name "PXE"; next-server 192.168.200.1; filename "pxe/pxelinux.0"; } Vous noterez qu'ici j'ai configur le DHCP de manire ne distribuer que 25 adresses (.120 .145) ... vous d'adapter selon vos besoins. Voici la commande permettant d'arrter et relancer le serveur DHCP:
/etc/init.d/isc-dhcp-server stop /etc/init.d/isc-dhcp-server start

Jusqu'ici, nous n'avons pas configur l'interface rseau sur laquelle va rpondre le DHCP (toujours eth0 ou eth1 selon votre cas). Si une telle configuration doit vous priver du net, attendez la fin des installations avant de la mettre en place.
ifconfig eth1 up ifconfig eth1 192.168.200.1/24

Si vous souhaitez faire cette configuration de manire permanente, ditez le fichier/etc/network/ interfaces et affectez une adresse statique.

Installation du serveur TFTP


Nous choisirons ici d'installer le serveur "tftpd-hpa" plutt que "atftpd" ou "tftpd".

Installation:
apt-get install tftpd-hpa

Lorsqu'il vous sera demand d'entrer le rpertoire dans lequel doit officier le serveur, entrez: /tftpboot

Configuration:
ditez ensuite le fichier /etc/default/tftpd-hpa:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="192.168.200.1:69" TFTP_OPTIONS="--secure"

ditez enfin le fichier /etc/inetd.conf et commentez (#) la ligne suivante:


#:BOOT: TFTP service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." #tftp dgram udp4 wait nobody /usr/sbin/tcpd /usr/sbin/in.tftp [...]

Les commandes pour arrter et relancer le serveur sont:


/etc/init.d/tftpd-hpa stop /etc/init.d/tftpd-hpa start

Enfin, il faut cre le rpertoire dans lequel va officier le serveur TFTP:


mkdir /tftpboot chmod 777 /tftpboot -R

Notez que les droit sont ici placs en 777 et qu'une fois votre serveur 100% fonctionnel il serait plus prudent de scuriser tout cela. ;D

Installation de PXE
Nous allons maintenant installer le serveur PXE proprement dit.

Installation:
apt-get install pxe syslinux

Configuration:
Editez le fichier /etc/pxe.conf de manire avoir les paramtres suivant (adaptez selon eth0 ou eth1):
# which interface to use interface=eth1 default_address=192.168.200.1 # tftpd base dir tftpdbase=/tftpboot

Les commandes pour arrter et relancer le serveur sont:


/etc/init.d/pxe stop /etc/init.d/pxe start

Nous avons maintenant termin l'installation des composants principaux du systme. La prochaine tape consiste ajouter notre serveur PXE l'OS installer sur les machines.

Prparation du serveur
Pour commencer, comme votre serveur TFTP peut servir plusieurs usages, on va crer un sous dossier spcialement pour le PXE:
mkdir /tftpboot/pxe/

Maintenant il est ncessaire de rcuprer l'image de l'OS. Ici nous choisirons d'installer Debian Lenny, mais n'importe quelle version de Debian / Ubuntu est aussi compatible avec cette procdure.

Tlchargement de l'image netboot


wget http://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/ netboot.tar.gz -O /tmp/netboot-debian-lenny-i386.tar.gz

Cration du rpertoire temporaire


mkdir -p /tmp/netboot-debian-lenny-i386/

Dcompression de l'image dans le rpertoire temporaire


cd /tmp/netboot-debian-lenny-i386/; tar zxvf /tmp/netboot-debian-lenny-i386.tar.gz

Cration de l'arborescence
mkdir mkdir mkdir mkdir -p -p -p -p /tftpboot/pxe/ /tftpboot/pxe/boot-screens/ /tftpboot/pxe/pxelinux.cfg/ /tftpboot/pxe/debian-lenny/i386/

Copie des fichiers depuis le rpertoire temporaire vers l'arborescence netboot


cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/pxelinux.0 /tftpboot/pxe/ cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/boot-screens/splash.png /tftpboot/pxe/boot-screens/ cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/boot-screens/vesamenu.c32 /tftpboot/pxe/boot-screens/ cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/initrd.gz /tftpboot/pxe/debian-lenny/i386/ cp /tmp/netboot-debian-lenny-i386/debian-installer/i386/linux /tftpboot/pxe/debian-lenny/i386/

On cre ensuite le fichier /tftpboot/pxe/pxelinux.cfg/default qui permet de configurer le boot de l'OS et surtout de spcifier le fichier permettant d'afficher le menu (comme sur une installation Debian classique).
include /boot-screens/menu.cfg default /boot-screens/vesamenu.c32 prompt 0 timeout 0

Vient le tours du fichier /tftpboot/pxe/boot-screens/menu.cfg permettant la personnalisation du menu:


menu hshift 13 menu width 49 menu title LTU Installer boot menu menu color title * #FFFFFFFF *

menu color border * #00000000 #00000000 none menu color sel * #ffffffff #76a1d0ff * menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * menu color tabmsg * #ffffffff #00000000 * menu vshift 12 menu rows 10 menu tabmsgrow 16 menu timeoutrow 17 menu tabmsg Press ENTER to boot or TAB to edit a menu entry menu autoboot Starting Local System in # seconds prompt 0 label bootlocal menu label ^Boot from local disk menu default localboot 0 timeout 200 #timeout which is displayed, Wait 10 seconds unless the user types somethin totaltimeout 1200 #timeout which executes the default definitely, always boot after 2 minutes menu begin debian menu title Debian label mainmenu menu label ^Back.. menu exit menu begin debian-lenny menu title Debian Lenny label mainmenu menu label ^Back.. menu exit menu begin debian-lenny-i386 menu title Debian Lenny i386 label mainmenu menu label ^Back.. menu exit default install label install menu label ^Install kernel debian-lenny/i386/linux append vga=normal initrd=debian-lenny/i386/initrd.gz -- quiet label expert menu label ^Expert install kernel debian-lenny/i386/linux append priority=low vga=normal initrd=debian-lenny/i386/initrd.gz -label rescue menu label ^Rescue mode kernel debian-lenny/i386/linux append vga=normal initrd=debian-lenny/i386/initrd.gz rescue/enable=true -- quiet label auto menu label ^Automated install kernel debian-lenny/i386/linux append auto=true priority=critical vga=normal initrd=debian-lenny/i386/initrd.gz -- quiet menu end menu end menu end

Une fois tous ces fichiers en place vous devriez obtenir l'arborescence suivante:
/tftpboot/: pxe /tftpboot/pxe: boot-screens debian-lenny

pxelinux.0

pxelinux.cfg

/tftpboot/pxe/boot-screens: menu.cfg splash.png vesamenu.c32 /tftpboot/pxe/debian-lenny: i386 /tftpboot/pxe/debian-lenny/i386: initrd.gz linux /tftpboot/pxe/pxelinux.cfg: default

Lancement du serveur
Si vous n'aviez pas modifier l'IP de votre interface rseau, c'est le moment de le faire. Lancez ensuite le serveur PXE, TFTP puis DHCP (pensez dsactiver tout autre DHCP sur votre rseau). Normalement tous les serveurs doivent se lancer sans erreurs. Un tail -f /var/logs/syslog devrait vous en apprendre plus ce sujet. Vous pouvez tester le serveur TFTP avec un client TFTP tel que "atftp".

Boot
Maintenant que le serveur fonctionne, il est temps de booter votre / vos machine(s) et de lancer l'installation. Pour cela dans les options de boot choisissez Network Boot (ou toute autre formulation s'en rapprochant). Dans les logs (syslog) vous devriez constater que votre DHCP attribu des IPs et sur les machines le menu de choix de l'installation doit apparatre. Lancez l'installation et enjoy !

Autres OS
Cet article ne dcrit pour le moment que l'installation de systme de type Debian. Pour d'autres OS Linux je vous renvoie l'article ayant inspir celui-ci qui traite notamment de CentOS et Fedora.

Vous aimerez peut-être aussi