Preboot Execution Environment

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

pxe.gif

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

Ajouter un nouveau commentaire
ou S'identifier comme utilisateur Wikidot
(ne sera pas publiée)
- +
Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License