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.
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
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:
UEFI vs BIOS : détecter l’architecture via DHCP pour envoyer ipxe.efi en UEFI et undionly.kpxe en BIOS, sinon l’amorçage échoue
Passerelle : si vous voulez Internet pour les clients, activer ip_forward et éventuellement NAT
Utilisez un ordinateur comportant deux cartes réseau sous Debian 13 Gnome chiffré avec serveurs WEB et SSH installés
ip a
/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
Nous utiliserons dnsmasq, car il gère DHCP interne, TFTP et support PXE/iPXE
sudo apt update sudo apt install dnsmasq ipxe tftpd-hpa
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/
É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
Les images Clonezilla doivent être servies par HTTP (plus rapide que TFTP).
sudo mkdir -p /var/www/html/clonezilla/live
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/live/ .
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
Ajouter à
/etc/dnsmasq.d/ipxe.conf
dhcp-userclass=set:ipxe,iPXE dhcp-boot=tag:ipxe,boot.ipxe
Redémarrer :
sudo systemctl restart dnsmasq
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.