FOG + Proxmox

Architecture cible


Partie 1 - Installation du serveur FOG

1.1 Configuration IP statique

Le serveur FOG doit avoir une IP fixe pour que les clients PXE puissent toujours le joindre.

sudo nano /etc/network/interfaces

Contenu à adapter selon votre réseau :

auto eth0 iface eth0 inet static address 172.17.4.16 netmask 255.255.254.0 gateway 172.17.4.254 dns-nameservers 172.17.4.2

Redémarrer le réseau :

sudo systemctl restart networking

Vérifier :

ip a
ping -c 2 8.8.8.8

1.2 Installation de FOG

apt update apt
install -y git
cd /root git clone https://github.com/FOGProject/fogproject.git
cd fogproject/bin
sudo ./installfog.sh

1.3 Réponses à donner au script d’installation

Écran 1 - Choix de la distribution

QuestionRéponse
What version of Linux would you like to run the installation for?2 (Debian Based Linux)
What type of installation would you like to do?n (Normal Server)
Would you like to change the default network interface from eth0 ?y
What network interface would you like to use?eth0

Écran 2 - Configuration DHCP

QuestionRéponse
Would you like to setup a router address for the DHCP server ?n
Would you like DHCP to handle DNS ?n
Would you like to use the FOG server for DHCP service ?n
Would you like to install the additional language packs ?n

Important : réponses n aux 3 questions DHCP car c’est votre routeur qui gère le DHCP, pas FOG.

Écran 3 - HTTPS et hostname

QuestionRéponse
Would you like to enable secure HTTPS on your FOG server ?n
Would you like to change it? (hostname)n
Are you sure you wish to continue?y

1.4 Finalisation de la base de données

À la fin de l’installation, le script affiche :

You still need to install/update your database schema. http://10.0.9.9/fog/management Press [Enter] key when database is updated/installed.
Avant d’appuyer sur Entrée dans la console :
1. Ouvrir un navigateur
2. Aller sur : http://IP_DU_SERVEUR_FOG/fog/management
3. Cliquer sur le bouton bleu Install/Update Now
4. Attendre la fin de la mise à jour de la base
5. Retourner dans la console et appuyer sur Entrée

1.5 Premier accès à l’interface FOG

URL : http://172.17.4.16/fog/management

Identifiants :

Recommandation : le mot de passe par défaut est changeme à la première connexion, à modifier en password (Users → fog → Change Password).


Partie 2 - Configuration proxyDHCP

Cette étape est indispensable car le DHCP est géré par le routeur. dnsmasq en mode proxyDHCP permet à FOG de répondre uniquement aux requêtes PXE sans interférer avec le DHCP principal.

2.1 Fichier /etc/dnsmasq.d/ltsp.conf

sudo apt update
sudo apt install dnsmasq
sudo nano /etc/dnsmasq.d/ltsp.conf
# ProxyDHCP pour FOG - coexiste avec le DHCP du routeur log-dhcp # Mode proxy sur le réseau 172.17.4.0/24 dhcp-range=172.17.4.0,proxy,255.255.255.0 # Détection BIOS / UEFI dhcp-match=set:bios,option:client-arch,0 dhcp-boot=tag:bios,undionly.kpxe,,172.17.4.16 dhcp-match=set:efi32,option:client-arch,6 dhcp-boot=tag:efi32,i386-efi/ipxe.efi,,172.17.4.16 dhcp-match=set:efibc,option:client-arch,7 dhcp-boot=tag:efibc,ipxe.efi,,172.17.4.16 dhcp-match=set:efi64,option:client-arch,9 dhcp-boot=tag:efi64,ipxe.efi,,172.17.4.16 # Menu PXE pxe-service=tag:bios,X86PC,"FOG PXE Boot (BIOS)",undionly.kpxe,172.17.4.16 pxe-service=tag:efi64,X86-64_EFI,"FOG PXE Boot (UEFI)",ipxe.efi,172.17.4.16

Important : ne pas mettre port=0 pour garder la fonction DNS de dnsmasq active.

2.2 Redémarrer dnsmasq

sudo dnsmasq --test
sudo systemctl restart dnsmasq
sudo ss -tulpn | grep -E ':53|:67|:69'

Les 3 ports doivent être ouverts : 53 (DNS), 67 (proxyDHCP), 69 (TFTP).


Partie 3 - Paramètres VM Proxmox

ParamètreValeur
BIOSSeaBIOS (legacy
Machineq35
Disque20 Go minimum
Carte réseauIntel E1000
Bridgemême que FOG (vmbr2 avec tag 24)
Ordre de bootnet0 en premier

Partie 4 - Workflow FOG

4.1 Préparer la VM master

4.2 Enregistrer la VM dans FOG

4.3 Créer l'image

Dans l'interface web FOG :

4.4 Associer image au host

Dans l'interface web FOG :

4.5 Généraliser la VM master

Créer le script /root/generalize.sh sur la VM master :

sudo nano /root/generalize.sh
#!/bin/bash echo "=== Suppression des cles SSH host ===" rm -v /etc/ssh/ssh_host_* echo "=== Reinitialisation du machine-id ===" truncate -s 0 /etc/machine-id rm -f /var/lib/dbus/machine-id ln -s /etc/machine-id /var/lib/dbus/machine-id echo "=== Nettoyage des logs ===" journalctl --rotate journalctl --vacuum-time=1s echo "=== Nettoyage apt ===" apt clean apt autoremove -y echo "=== Vidage de /tmp ===" rm -rf /tmp/* echo "=== Extinction ===" sleep 5 shutdown -h now

Rendre exécutable :

sudo chmod +x /root/generalize.sh

4.6 Généraliser la VM master

Dans FOG :

Sur la VM master :

sudo /root/generalize.sh

La VM s’éteint. La redémarrer (avec net0 en premier) → capture automatique. Durée : 1545 min.

4.7 Déployer sur une nouvelle VM


Partie 5 - Vérifications post-déploiement

Sur le clone après premier boot :

cat /etc/machine-id # doit differer du master
ls -la /etc/ssh/ssh_host_* # doit avoir la date du jour
hostname # a changer si identique au master
sudo hostnamectl set-hostname clone01
sudo reboot

Partie 6 - Dépannage

La VM ne boot pas en PXE

Menu iPXE s’affiche mais pas de tâche

Capture/Deploy échoue

Vérifier les ports ouverts sur FOG :

sudo ss -tulpn | grep -E ':53|:67|:69'

Fichiers importants

CheminContenu
/etc/network/interfacesConfig réseau du serveur FOG
/etc/dnsmasq.d/ltsp.confConfig proxyDHCP
/images/masterdeb/Images capturées
/var/log/fog/Logs FOG
/root/generalize.shScript de généralisation (sur la VM master)

URLs et identifiants

RessourceValeur
Interface web FOGhttp://172.17.4.16/fog/management
Identifiant par défautfog
Mot de passepassword