Outils pour utilisateurs

Outils du site


serveur

Ceci est une ancienne révision du document !


Serveur Clonezilla des Abeilles

Pourquoi un serveur iPXE - Clonezilla

Une vingtaine d'ordinateurs par semaine à configurer pour être distribuer par le Centre des Abeilles dans le cadre de son opération de solidarité débutée en 2009, avec une ou plusieurs clés usb Clonezilla pour déployer des images du système, ces manipulations deviennent fastidieuses surtout lorsqu'il faut mettre à jour ces différentes clés. Un serveur DRBL - Clonezilla est d'une utilisation complexe puisqu'il faut intervenir aussi bien sur le serveur que sur le poste client. Par contre Un serveur iPxe couplé à Clonezilla à l'avantage de laisser au poste client le choix de l'image système à cloner, par exemple Debian BIOS ou UEFI sans intervenir sur le serveur lui-même.

Pourquoi PXE et iPXE

Suivant que les postes clients sont en BIOS (Legacy) ou en UEFI ils vont boutés en PXE ou en iPXE

Extrait de IT-Connect

Le boot PXE (Preboot Execution Environment) repose sur deux protocoles importants : le protocole DHCP (Dynamic Host Configuration Protocol) pour fournir une configuration IP au client PXE, ainsi que l'adresse IP du serveur qui héberge les sources, ainsi que le protocole TFTP (Trivial File Transfer Protocol) pour accéder au serveur PXE et commencer à transférer l'image de démarrage via le réseau

  1. Le client PXE, à savoir l'ordinateur, démarre et envoie une requête DHCP sur le réseau pour obtenir une adresse IP.
  2. Le serveur DHCP répond à la demande en fournissant une adresse IP au client, ainsi que les informations nécessaires pour accéder au serveur PXE (adresse IP ou nom).
  3. Le client PXE peut accéder au réseau donc il envoie une demande de boot PXE sur le réseau, en utilisant le protocole TFTP pour accéder au serveur PXE.
  4. Le serveur PXE répond à la demande de l'ordinateur en fournissant les fichiers nécessaires pour le démarrage du système.
  5. Le client PXE télécharge ces fichiers à partir du serveur PXE (via le protocole TFTP) et les utilise pour démarrer sur l'image fournie.

Le boot iPXE est une méthode plus récente qui permet à un ordinateur de démarrer sur le réseau. Le protocole iPXE est une extension du protocole PXE qui offre des fonctionnalités supplémentaires telles que:

  • le démarrage à partir d'un serveur web via HTTP
  • le support des scripts et des menus de démarrage personnalisés

Objectif du serveur

  • eth0 → accès Internet via le DHCP de votre réseau externe
  • eth1 → réseau interne dédié au déploiement :
    • Serveur DHCP interne
    • Boot iPXE (DHCP + TFTP)
    • Clonezilla pour cloner des postes
    • Après clonage, les postes pourront accéder à Internet via la machine serveur (routage + NAT)

Installation

Utilisez un ordinateur comportant deux cartes réseau sous Debian 13 Gnome chiffré avec serveurs WEB et SSH installés

1. Vérification et configuration des interfaces réseau

Identifier les interfaces

ip a

Si vous utilisez systemd-networkd sur :

/etc/systemd/network/10-external.network

ini
[Match]
Name=eth0

[Network]
DHCP=yes

et sur /etc/systemd/network/20-internal.network

ini
[Match]
Name=eth1

[Network]
Address=192.168.50.1/24

Activez

sudo systemctl restart systemd-networkd

2. Installez les services nécessaires

Nous utiliserons dnsmasq, car il gère DHCP interne, TFTP et support PXE/iPXE

sudo apt update
sudo apt install dnsmasq ipxe tftpd-hpa 

3. Préparer le répertoire TFTP

sudo mkdir -p /srv/tftp
sudo chmod -R 755 /srv/tftp

Copier les images iPXE :

sudo cp /usr/lib/ipxe/{undionly.kpxe,ipxe.efi} /srv/tftp/

4. Configurer dnsmasq (DHCP interne + TFTP)

Éditer : '' /etc/dnsmasq.d/ipxe.conf ''

# Interface interne uniquement
interface=eth1
bind-interfaces

# DHCP range for client machines
dhcp-range=192.168.50.10,192.168.50.200,12h

# Gateway vers Internet à travers le serveur
dhcp-option=3,192.168.50.1
dhcp-option=6,1.1.1.1,8.8.8.8

# TFTP server
enable-tftp
tftp-root=/srv/tftp

# Fichiers de boot iPXE
dhcp-boot=undionly.kpxe

Redémarrer

sudo systemctl restart dnsmasq

5. Mettre les fichiers Clonezilla sur le serveur Web

Les images Clonezilla doivent être servies par HTTP (plus rapide que TFTP).

Créer un dossier :

sudo mkdir -p /var/www/html/clonezilla/live

Télécharger Clonezilla zip

Extraire le fichier zip dans /home/lq/Téléchargements/clonezilla-live-x.x.x-xx-amd64 puis copier les fichiers :

cd /home/lq/Téléchargements/clonezilla-live-x.x.x-xx-amd64/live
sudo cp  filesystem.squashfs  initrd.img vmlinuz /var/www/html/clonezilla/ .

6. Configurer le script iPXE

Créer le fichier `/srv/tftp/boot.ipxe`

#!ipxe

kernel http://192.168.50.1/clonezilla/live/vmlinuz boot=live union=overlay ip=dhcp components fetch=http://192.168.50.1/clonezilla/live/filesystem.squashfs noeject toram
initrd http://192.168.50.1/clonezilla/live/initrd.img
boot

Modifier dnsmasq pour que iPXE lance ce script :

Ajouter à `/etc/dnsmasq.d/ipxe.conf`

dhcp-userclass=set:ipxe,iPXE
dhcp-boot=tag:ipxe,boot.ipxe

Redémarrer :

sudo systemctl restart dnsmasq

7. Configurer le routage Internet pour les postes clonés

Activer l'IP forwarding :

Dans `/etc/sysctl.conf` :

net.ipv4.ip_forward = 1

Appliquer :

sudo sysctl -p

Configurer le NAT :

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Rendre permanent :

sudo apt install iptables-persistent
sudo netfilter-persistent save

Les postes du réseau interne pourront maintenant accéder à Internet via le serveur.

8. Test du boot iPXE

  1. Brancher un poste sur le réseau interne (via eth1)
  2. Activer le boot PXE dans le BIOS
  3. Vérifier que :
    • il obtient une IP → 192.168.50.x
    • il télécharge `undionly.kpxe`
    • iPXE charge `boot.ipxe`
    • Clonezilla démarre
serveur.1787514188.txt.gz · Dernière modification : de rene