Serveur PXE 

Pourquoi ce post sur PXE ? Il existe effectivement des tas de tutoriels sur PXE, je le sais il m'en a fallu au moins quinze pour réussir à faire tourner une config serveur PXE qui au final est extremement simple... cela n'aurait pas dû me demander autant de lectures/temps/gros mots...

Donc au moins ici je poste ma config qui marche et ca sera ptet cinq tutoriels de gagnés pour toi lecteur qui cherche à installer PXE ;)

La théorie vite fait (bien fait ?) :

Un serveur PXE consiste en fait en deux services serveur distincts :

Un serveur DHCP et un serveur TFTP


Le serveur DHCP (paquet dhcp3-server) distribuera les adresses IP aux clients PXE (et aux autres d'ailleurs), il fournira aux clients PXE le nom du système d'exploitation à charger par le réseau.

Le serveur TFTP (paquet atftpd) hébergera et tiendra à disposition des clients PXE, les systèmes d'exploitation à charger via le réseau. On souhaite que la racine du serveur TFTP soit dans /home/tftpboot.

Syslinux (paquet syslinux) est un « bootloader » linux, également capable de charger d'autres OS. Il est souvent utilisé sur les cdrom, disques usb, disquettes et via PXE donc ...

La pratique :

Pour changer on va bosser sous Debian/Ubuntu ;) . Pour installer tout ce qu'il faut :

# apt-get install syslinux dhcp3-server atftpd pxe

Mon serveur PXE a pour IP 172.16.0.1 (c'est aussi ma passerelle), on installera la racine du serveur tftp dans /home/tftpboot, atftpd nous demande si il faut s'installer via inet.d, j'ai répondu NON. DHCP ne démarrera pas à sa première tentative et c'est normal, il faut le configurer convenablement avant via son fichier de conf ...

Voici les fichiers de conf :

/etc/pxe.conf

# which interface to use
interface=eth0
default_address=172.16.0.1

# the multicast ip address to listen on
multicast_address=224.0.1.2

# mtftp info
mtftp_address=224.1.5.1
mtftp_client_port=1758
mtftp_server_port=1759

# the port to listen on
listen_port=4011

# enable multicast?
use_multicast=1
# enable broadcast?
use_broadcast=0

# user prompt
prompt=Press F8 to view menu ...
prompt_timeout=30

# service=,,,,


service=X86PC,0,0,local,Local boot
service=X86PC,0,0,pxelinux,PXELinux

# tftpd base dir
tftpdbase=/home/tftpboot

# domain name
domain=localnet


/etc/dhcp3/dhcpd.conf

allow booting;
allow bootp;
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "localnet";
option domain-name-servers 172.16.0.1;

server-identifier 172.16.0.1;
next-server 172.16.0.1;
option root-path "/home/tftpboot/";
filename "/home/tftpboot/pxelinux.0";

default-lease-time 36000;
max-lease-time 72000;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

# This is a very basic subnet declaration.

subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.8.100 172.16.8.250;
option routers 172.16.0.1;
}

/etc/default/atftpd

USE_INETD=false
OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.200-250 --mcast-ttl 1 --maxthread 100 --verbose=5 /home/tftpboot"

Que mettre à la racine du serveur tftp ?

Memdisk et pxelinux.0 que l'on trouvera sur notre machine suite à l'installation de syslinux.

Des images de systèmes d'exploitation (pas trop gros), par exemple une image d'une disquette de boot DOS générée avec la commande :

# dd if=/dev/floppy of=monimage.img


Quelques commandes pour vous faire voir ce qu'il y a à la racine du serveur tftp :

root@nono /home/tftpboot # ls -lh
total 53M
drwxr-sr-x 3 root staff 1,0K 2006-01-24 08:07 debian-installer
-rw-r--r-- 1 root staff 50M 2006-01-25 09:29 dsl21.img
-rw-r--r-- 1 root staff 3 2006-01-25 08:15 f1
-rw-r--r-- 1 root staff 3 2006-01-25 08:15 f2
-rw-r--r-- 1 root staff 3 2006-01-25 08:15 f3
-rw-r--r-- 1 root staff 23K 2006-01-23 11:49 memdisk
-rw-r--r-- 1 root staff 445 2006-01-25 08:19 messages
-rw-r--r-- 1 root staff 1,5M 2006-01-24 09:05 netboot56.img
-rw-r--r-- 1 root staff 1,5M 2006-01-24 08:28 netboot.img
-rw-r--r-- 1 root staff 12K 2006-01-23 11:12 pxelinux.0
drwxr-sr-x 2 root staff 1,0K 2006-01-23 11:32 pxelinux.cfg
drwxr-sr-x 3 root staff 1,0K 2006-01-24 09:11 ubuntu-installer
root@nono /home/tftpboot # cd pxelinux.cfg
root@nono /home/tftpboot/pxelinux.cfg # cat default
PROMPT 1
DEFAULT 1
DISPLAY messages
F1 f1
F2 f2
F3 f3
TIMEOUT 300

label 0
LOCALBOOT 0

label 1
KERNEL memdisk keeppxe
APPEND initrd=netboot56.img

label 2
KERNEL memdisk
APPEND initrd=netboot.img

label 3
kernel debian-installer/i386/linux
append vga=normal initrd=debian-installer/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw --

label 4
kernel ubuntu-installer/i386/linux
append vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16432 root=/dev/rd/0 rw --

root@nono /home/tftpboot/pxelinux.cfg # cat ../messages
=========================== Menu ===========================

0 - local

1 - netboot ( netbootdisk 5.6 )
2 - netboot ( netboot fred )
3 - debian installer
(mirror : deb http://192.168.1.21/debian/ sarge main contrib non-free)
4 - ubuntu installer
(mirror : deb http://192.168.1.21/ubuntu/ breezy main)


===========================================================

Les fichiers texte messages, f1, f2, f3 ... s'afficheront sur les clients respectivement au démarrage du boot PXE ou en pressant la touche correspondante.

Le fichier de démarrage « pxelinux.cfg/default » peut gérer un menu, l'utilisateur choisira l'image à booter, les entrées de menu sont définies par les « labels »

Certains systèmes d'exploitation comme debian ou ubuntu fournissent des fichiers initrd.gz permettant de lancer une installation via PXE.

Les scripts de démarrage pour tout ca :

# /etc/init.d/atftpd start|stop|restart
# /etc/init.d/dhcp3-server start|stop|restart
# /etc/init.d/pxe start|stop|restart

Certifié fonctionnel par Fred.



[ Ajouter un commentaire ] ( ( 7 vues ) )   |  [ 0 Trackbacks ]   |  Lien permanent

<< <Précédent | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Suivant> >>