La fonction PXE (Preboot Execution Environment) permet de démarrer un ordinateur à partir du réseau. Cela permet de démarrer un OS sur une machine qui ne dispose ni de lecteur de CD/DVD ou de port USB ce qui facilite grandement le dépannage d'ordinateurs d'un parc informatique à partir du moment ou un serveur de boot PXE est installé.
PREREQUIS
- Un ordinateur pouvant démarrer sur CD ou clé USB qui servira de serveur PXE.
-serveur DHCP
-serveur FTP
-service syslinux
-fichier kickstart
- Un ordinateur client avec une carte réseau compatible PXE
FONCTIONNEMENT

1) Le client essaie de demarrer avec PXE il commence par envoyer une demande d'adresse IP sur le reseau (DHCP request)
2) Le serveur DHCP lui repond en lui envoyant une adresse IP dynamique disponible ainsi que d'autres informations (serveur DNS, route par défaut) ainsi que l'adresse du serveur TFTP.
3) Le client reçoit l'offre l'adresse DHCP et l'accepte. Il se connecte alors au serveur TFTP dont il a reçu l'adresse précédemment, et charge les premiers fichiers de démarrage par TFTP.
4) Le serveur TFTP envoie les fichiers du gestionnaire de démarrage (pxelinux) ainsi que les fichiers a afficher a l'écran par pxelinux
5) Le client affiche les fichiers reçus et l'utilisateur peut choisir ses options de démarrage. Le gestionnaire de démarrage charge alors le noyau et le fichier initramfs par TFTP.
6) Le serveur TFTP envoie le noyau et exécute le script de démarrage .
7) Le client démarre le noyau qu'il vient de recevoir et exécute le script de démarrage.
8) Le client poursuit le démarrage du système.
9) A cette étape le serveur de démarrage n'est plus nécessaire pour le client et celui-ci peut fonctionner même si on arrête le serveur.
INSTALLATION ET CONFIGURATION
Au niveau serveur
Nous disposons d'un pc qui possède une distribution Centos
1) Installation et configuration du DHCP
1.1) Installation
Tout d'abord nous allons installer le service dhcp qui est le suivant :
=> Yum install dhcp
Le fichier de configuration vient d'être crée dans
=> /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
Nous allons le recopier dans /etc pour avoir une base de travail.
=> cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc
1.2) Configuration
Ensuite nous allons configurer ce fichier (/etc/dhcpd.conf),
les point important lors de cette configuration sont :
-paramétrer les range d'adresses IP
-renseigner le client de l'adresse du serveur tftp
-renseigner le client de l'adresse du serveur pxe
-renseigner le client du nom de fichier à télécharger
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name "info.uccle";
option domain-name-servers 192.168.1.1;
option time-offset -18000;
range dynamic-bootp 192.168.1.5 192.168.1.9;
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
allow booting;
allow bootp;
next-server 192.168.1.1;
}
1.3) Lancer le service
root#cd /etc/init.d
root#./dhcpd start
2) Installation et configuration du serveur FTP
2.1) Installation
On vas commencer par installer les services
=> yum install vsftpd
=> yum install tftp-server
2.2) Configuration
Le /tftpboot est alors crée.
Nous allons maintenant éditer le fichier qui se trouve dans
"/etc/xinet.d/tftp" en modifiant la ligne "disable = yes"
en "disable = no".
Service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
On va crée /var/ftp/install/centos/i386/5.4 via la commande
suivante :
=> #mkdir –p /var/ftp/install/centos/i386/5.4
3) Syslinux et tftpboot
Syslinux est une archive qui contient différente sources et
exécutables.Il suffit d'aller piocher les exécutables nécessaires à
ce que l'on souhaite faire.
3.1) Installation
Pour que chaque service puissent nous offrir leur aide, il faut
bien entendu l'installer.
=> yum install syslinux
3.2) Configuration
Nous allons copier les fichiers que nous offre Syslinux,
dans le /tftpboot.
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
cp /usr/lib/syslinux/menu.c32 /tftpboot
cp /usr/lib/syslinux/memdisk /tftpboot
cp /usr/lib/syslinux/mboot.c32 /tftpboot
cp /usr/lib/syslinux/chain.c32 /tftpboot
création du répertoire /tftpboot/pxelinux.cfg
=> mkdir /tftpboot/pxelinux.cfg
L'exécutable ira chercher inconditionnellement sa
configuration dans ce répertoire.
On va créer le dossier où l’on va placer les fichiers qui se
trouve sur le dvd :
=> mkdir -p /tftpboot/images/centos/i386/5.4
Ensuite, nous allons coller les fichiers vmlinuz et initrd.img
qui se trouve sur le dvd de la distribution centos 5.4 dans
le dossier: /tftpboot/images/centos/i386/5.4.
initrd.img contient des modules du noyau nécessaires au boot
vmlinuz est effectivement une image compressée du noyau.
=> cp/media/Centos_5.4_Final/isolinux/vmlinuz .
=> cp/media/Centos_5.4_Final/isolinux/initrd.img .
Nous allons crées le fichier default qui contiendra donc la configuration pour l'installation de pxe.
Vous vous rappelé du fichier "pxelinux.0" que nous offre syslinux, et ben c'est lui qui vas permettre de lire le fichier
/tftpboot/pxelinux.conf/default.
=> cd /tftpboot/pxelinux.cfg
=> touch default
default menu.c32
prompt 0
timeout 300
MENU TITLE PXE Menu
LABEL CentoS 5
MENU LABEL CentOS 5.4 i386
KERNEL images/centos/i386/5.4/vmlinuz
append vga=normal initrd=images/centos/i386/5.4/initrd.img ramdisk_size=100000\
Url --url= ks=ftp://192.168.1.1/install/centos/i386/5.4/ks/ks.conf
4) Fichier Kickstart
Ce fichier contient toute les options que l'on souhaite mettre en place durant l'installation.
Comme pour tout service il faut commencer par l'installer.
=> yum install system-config-kickstart
Nous allons tout d'abord crée l'emplacement du fichier kickstart
=> mkdir /var/ftp/install/centos/i386/ks
Ensuite nous allons crée le fichier kickstart en mentionnant tout les options
=> vi ks.conf
#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard be-latin1
# System language
lang fr_BE
# Installation logging level
logging --level=info
# Use network installation
url --url=ftp://192.168.1.1/install/centos/i386/5.4
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Root password
rootpw centos
# SELinux configuration
selinux --enforcing
# System timezone
timezone --isUtc Europe/Brussels
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig --defaultdesktop=GNOME --depth=16 --resolution=800x600 --startxonboot
monitor --monitor="Monitor 800x600"
# Disk partitioning information
part / --bytes-per-inode=4096 --fstype="ext3" --size=4500
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
%packages
@gnome-desktop
@base-x
@development-tools
@development-libs
@office
@admin-tools
@system-tools
@printing
@java
Comme vous avez pu le constater dans le fichier /tftpboot/pxelinux.cfg/default ,On a indiqué l'endroit ou se trouve le fichier Kickstart
=> ks=ftp://192.168.1.1/install/centos/i386/5.4/ks/ks.conf
Les services
Pour terminer nous allons démarrer tout les services qu'on à besoin
dhcp
dhcpd start
tftp
xinetd start
ftp
vsftpd start
Il faut aussi désactiver le par-feux
service iptables stop
En Résumer
1) Le client va booter en réseaux et vas obtenir une adresse IP.
2) Il prend connaissance du fichier "pxelinux.0" qui vas permettre de lire le fichier "défault".
3) Le client va consulter le fichier "default" afin d'exécuter toute l'installation automatiquement.
4) L'installation va se lancer en fonction du fichier kickstart.
4. Bibliographie
http://www.sysresccd.org/Sysresccd-manual-fr_D%C3%A9marrage_en_r%C3%A9seau_par_PXE
http://wiki.centos.org/HowTos/PXE/PXE_Setup
http://www.pxe.ca/images/pxe.gif
Bibliographie du texte ainsi que de la provenance des images …. ?
Il est temps de passer au second projet ….
Aperçu du message:
Fermer l'aperçu