5.3 KiB
⚙️ Fog_Reinitialisation
🚧 Attention : Ce projet est en cours de développement et peut ne pas fonctionner pour l'instant.
🧩 Contexte
Dans le passé, le redéploiement des machines des salles de TP se faisait via Symantec Ghost. Cette méthode impliquait de :
- Insérer un DVD bootable dans chaque machine
- Configurer manuellement le boot sur le lecteur DVD
- Lancer le déploiement depuis le poste professeur
Ce processus était fastidieux et souvent négligé par les intervenants. Résultat : les machines restaient souvent polluées après les séances.
Le projet Fog_Reinitialisation vise à automatiser ce processus via L'API FogProject, afin de réinitialiser rapidement les machines à la fin de chaque TP avec une image vierge, sans intervention manuelle sur chaque poste.
🚀 Objectif
Fournir un script Bash simple permettant à un intervenant de réinitialiser toute une salle en une seule commande, en s’appuyant sur les fonctionnalités de Wake On LAN, PXE boot, et déploiement multicast via l'API FogProject.
🔧 Fonctionnalités
- Wake On LAN de tous les PC clients
- Boot réseau automatique via PXE
- Déploiement multicast de l’image système
- Extinction automatique des machines après déploiement
- Commande unique, exécutable depuis le poste professeur
🛠️ Prérequis
✅ Serveur
- Installer le serveur FOG sur le poste professeur de la salle
- Activer l'API de fog
- Créer une Image et un groupe à associer aux machines de la salle
- Enregistrez les machines de la salle dans le serveur :
-
Démarrer les machines en boot PXE
-
Dans le menu Fog, sélectionner "Perform Full Host Registration and Inventory"
-
Attribuer :
- Un nom d’hôte
- Une image et un groupe
-
- Les paquets suivants doivent être installés :
- wakeonlan
- curl
- jq
apt install curl
apt install wakeonlan
apt install jq
✅ Configuration machines clientes
🚧 Attention le projet a été expérimenté avec des machines de la marque HP. Ne l'ayant pas fait avec un autre constructeur il est possible que les prérequis nécessaires diffèrent.
-
Activer le PXE boot dans le BIOS
-
Activer Wake On LAN (WOL) dans le BIOS
-
Le Wake On LAN doit booter sur le réseau
-
Brancher le câble réseau sur la carte réseau de base (intégrée à la carte mère)
-
Sous Windows :
- Désactiver Fast Boot : Panneau de configuration > Options d'alimentation > Choisir l'action des boutons d’alimentation > Modifier les paramètres actuellement non disponibles > Décocher "Activer le démarrage rapide"
-
Activer le portfast sur les ports du switch reliés aux PC : Permet d’éviter que le DHCP échoue lors du boot PXE
-
Mettre à jour le BIOS des machines
⚙️ Configuration par défaut et personnalisation
Par défaut, le script utilise :
- GROUP_ID=1
- IMAGE_ID=1
- TASK_TYPE=8
- SHUTDOWN=1
Vous pouvez modifier ces valeurs dans le fichier .env.exemple en fonction de l'ID de groupe, d'image, du type de tâche et du besoin d'éteindre les machines :
#Token d'API et d'Utilisateur FOG
FOG_USER_TOKEN=""
FOG_API_TOKEN=""
#Adresse IP de broadcast local de la salle (si la salle est en 192.168.106.0/24 -> Entrez 192.168.106.255)
LOCAL_BROADCAST_IP=192.168.xxx.255
#Configuration des paramètres de la tâche
#ID du groupe sur lequel déployer l'image
GROUP_ID="1"
#ID de l'image a déployer
IMAGE_ID="1"
#Type de déploiement (8 pour du multicast)
TASK_TYPE="8"
#Éteindre les PCs à la fin (mettre à 1 ou 0)
SHUTDOWN="1"
📁 Structure du projet
fog_reinitialisation/ # Dossier principal
├── reinitialisation_salle.sh # Script Bash principal
├── .env.exemple # Variables d'authentification API Fog
└── README.md # Documentation
📦 Installation et utilisation
-
Téléchargement du projet :
curl -L "https://git.nelson-thomas.fr/nelson/Fog_Reinitialisation/archive/main.tar.gz" | tar -xz -
Accéder au répertoire :
cd ./fog_reinitialisation -
Configurer les variables dans le .env.exemple puis le renommer :
nano .env.exemple mv .env.exemple .env -
Rendre le script exécutable :
chmod u+x reinitialisation_salle.sh -
Exécutez le script pour réinitialiser la salle :
./reinitialisation_salle.sh
Installation Globale (Optionnel)
Créez un alias de votre choix pour exécuter le script de n'importe où :
sudo ln -s $(pwd)/reinitialisation_salle.sh /usr/local/bin/<nom-de-votre-choix>