Académique Documents
Professionnel Documents
Culture Documents
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
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:
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"
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
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.
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/
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
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.