PXE Server
Avant de suivre ce tutoriel, vous devez disposer d'un serveur ISC-DHCP fonctionnel sur le même serveur où vous souhaitez installer le PXE. Assurez-vous également d'avoir effectué une mise à jour du système avec la commande suivante :sudo apt update && sudo apt upgrade
Installation des utilitaires nécessaires
Installez les utilitaires Linux nécessaires ainsi qu'un serveur TFTP avec la commande suivante :sudo apt install syslinux-common syslinux-efi tftpd-hpa
Création du répertoire de configuration
Créez un répertoire pour stocker les fichiers de configuration :**sudo mkdir /tftpboot**Accédez au répertoire /usr/lib/syslinux/modules/efi64/ et copiez les fichiers suivants dans /tftpboot :**cp {ldlinux.e64,libutil.c32,menu.c32} /tftpboot**Copiez également le fichier suivant :**cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /tftpboot**Accédez au répertoire /tftpboot et créez un sous-répertoire pxelinux.cfg :cd /tftpbootmkdir pxelinux.cfg
Configuration du serveur TFTP
Modifiez le fichier de configuration TFTP avec la commande suivante :**vim /etc/default/tftpd-hpa**Assurez-vous que le contenu du fichier est conforme à ce qui suit :
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
N'oubliez pas de configurer votre pare-feu pour autoriser le port 69/UDP si nécessaire. Démarrez et activez le service TFTP :systemctl start tftpd-hpasystemctl enable tftpd-hpa
Configuration du serveur DHCP
Ouvrez le fichier de configuration DHCP situé à l'adresse suivante : /etc/dhcp/dhcpd.conf. Ajoutez ces deux lignes à la configuration de votre sous-réseau DHCP :
next-server 192.168.1.5;
option bootfile-name "syslinux.efi";
Remplacez 192.168.1.5 par l'adresse IP de votre serveur PXE.
Exemple de configuration DHCP complète :
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.106 192.168.0.200;
option routers 192.168.0.1;
default-lease-time 3600;
max-lease-time 86400;
next-server 192.168.0.105;
option bootfile-name "syslinux.efi";
}
Redémarrez le service DHCP pour appliquer les modifications :systemctl restart isc-dhcp-server
Ajout des fichiers d'installation Debian
Créez un répertoire pour l'ISO Debian dans /tftpboot :sudo mkdir /tftpboot/DebianMontez votre fichier ISO Debian et copiez son contenu dans le répertoire créé précédemment :sudo mount your_iso_file.iso /mntsudo cp -r /mnt/* /tftpboot/Debian
Cette commande peut prendre du temps en fonction de la taille de votre fichier ISO.
Configuration du menu PXE
Accédez au répertoire /tftpboot/pxelinux.cfg et créez un fichier nommé default :vim /tftpboot/pxelinux.cfg/defaultAjoutez la configuration suivante pour Debian Net Boot :
LABEL Debian Net Boot
MENU LABEL Debian
KERNEL debian/install.amd/vmlinuz
APPEND initrd=Debian/install.amd/initrd.gz
TEXT HELP
Installation minimale de Debian.
ENDTEXT
Les fichiers spécifiés (vmlinuz et initrd.gz) doivent être situés dans le répertoire /tftpboot/Debian/install.amd.
Exemple d'arborescence des fichiers dans /tftpboot (peuvent être différent selon les images) :
/tftpboot/
├── Debian/
│ ├── install.amd/
│ │ ├── vmlinuz
│ │ ├── initrd.gz
├── ldlinux.e64
├── libutil.c32
├── menu.c32
├── pxelinux.cfg/
│ ├── default
├── syslinux.efi
Ajout d'autres systèmes d'exploitation (exemple Ubuntu)
Pour ajouter un autre système, comme Ubuntu, utilisez une configuration similaire en modifiant les chemins et noms des fichiers correspondants.Exemple pour Ubuntu :
LABEL Ubuntu Net Boot
MENU LABEL Ubuntu
KERNEL ubuntu/install/amd64/linux
APPEND initrd=ubuntu/install/amd64/initrd.gz
TEXT HELP
Installation minimale d'Ubuntu.
ENDTEXT
Finalisation
Redémarrez votre service TFTP pour finaliser la configuration :systemctl restart tftpd-hpa
Votre serveur PXE est maintenant configuré et prêt à être utilisé !