⚙️ 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 :
    1. Démarrer les machines en boot PXE

    2. Dans le menu Fog, sélectionner "Perform Full Host Registration and Inventory"

    3. 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

  1. Téléchargement du projet :

    curl -L "https://git.nelson-thomas.fr/nelson/Fog_Reinitialisation/archive/main.tar.gz" | tar -xz
    
  2. Accéder au répertoire :

    cd ./fog_reinitialisation
    
  3. Configurer les variables dans le .env.exemple puis le renommer :

    nano .env.exemple
    mv .env.exemple .env
    
  4. Rendre le script exécutable :

    chmod u+x reinitialisation_salle.sh
    
  5. 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>

Maitenant, <nom-de-votre-choix> est considéré comme une commande sur la machine.

🔗 Ressources

Description
Un script permettant de réinitialiser les PC des salles de TP rapidement et simplement via l'API de FogProject
Readme 50 KiB
Languages
Shell 100%