Serveur PXE sur un LXC avec Proxmox

Serveur PXE sur un LXC avec Proxmox
Photo by Taylor Vick / Unsplash

Un serveur PXE permet de déployer des installations d'OS par le réseau. Dans la suite de ce post je vais me faire un post-it sur comment j'ai fait pour "facilement" déployer un serveur PXE dans un conteneur LXC sur Proxmox 8.


Sur Proxmox, on installera un conteneur (debian pour ma part) en faisant attention à décocher l'option "Conteneur non privilégié"

Une fois fait, on démarre le conteneur et on accède au terminal. Il faudra s'assurer qu'elle est à jour et installer l'outil WGET avec la commande suivante :

apt update && apt upgrade && apt install wget

Nous allons utiliser l'utilitaire iVentoy, qui nous facilitera grandement la tâche et la gestion des images par la suite. Attention que pour un usage PRO il faudra acheter une licence.

Donc toujours sur notre machine LXC, on fera l'ensemble des commandes suivantes :

wget wget https://github.com/ventoy/PXE/releases/download/v1.0.19/iventoy-1.0.19-linux-free.tar.gz

tar -xf iventoy-1.0.19-linux-free.tar.gz

On se retrouve avec iVentoy décompressé et prêt à l'emploie avec un dossier ISO qui servira pour les ...  ISO !

Maintenant on va lier un répertoire de Proxmox vers le conteneur LXC iVentoy. Pour se faire, on ouvre le shell sur le PVE et on met ceci :

sudo pct set 105 -mp0 /mnt/iso,mp=/root/iventoy-1.0.19/iso

# le 105 correspond à l'ID du conteneur
# /mnt/iso est un répertoire dans la machine PVE
# /root/i.../iso est l'endroit où j'ai décompressé l'outil

Il ne reste plus qu'à remplir ce répertoire ISO avant de démarrer le serveur.
Pour ceci, on va créer un partage réseau pour savoir y copier nos ISO.

Sur le PVE on fera :

# installation de samba
apt install samba

# edition de la config
nano /etc/samba/smb.conf

# on placera à la fin du fichier ceci à adapter suivant la config
[ISO_PXE]
comment = ISO pour le serveur PXE
path = /mnt/iso
browseable = yes
read only = no
guest ok = no
writable = yes

# on redémarre le service
systemctl restart smbd

# on ajoute un utilisateur
smbpasswd -a tweek

Maintenant depuis un ordinateur du réseau on peut accéder au partage et y mettre nos ISO

Une fois la copie effectuée, on se rend dans le shell de notre conteneur PXE pour démarrer le service.

cd iventoy-1.0.19/
sh iventoy.sh -A start

Si tout se passe bien le service est accessible sur l'adresse locale du conteneur

Ne pas oublier de cliquer sur le bouton vert dans BOOT information.

Il ne vous reste plus qu'à démarrer une machine avec le boot sur le réseau et admirer le résultat.

Edito:

Si on désire rendre le serveur automatique, il faudra faire deux choses, d'abord faire en sorte que le script démarre dans l'état qu'il était (cf. le bouton vert à appuyer dans l'interface web). On fera cela via la commande :

bash iventoy.sh -R start

Donc cette commande est à lancer après avoir démarrer une première fois le service.

Ensuite, on devra lancer la commande au boot du conteneur. Pour ce faire on utilisera cron:

# lancement de l'editeur
crontab -e

#ligne à placer
@reboot cd /root/iventoy-1.0.19/ && sh iventoy.sh -R start

# CTRL+C pour quitter

Et voilà, y à plus qu'a jouer avec tout ca !