Modification de la méthode de Wake On LAN et amélioration du script

This commit is contained in:
nelson 2025-06-02 15:24:47 +02:00
parent 79af06ff9d
commit 44979f22c8

View File

@ -1,45 +1,39 @@
#!/bin/bash
# Charger les variables du .env
#Charger les variables du fichier .env
if [ -f .env ]; then
export $(grep -v '^#' .env | xargs)
fi
#================================================================================
#Question posée à l'utilisateur pour la confirmation d'execution du script
#La commande pouvant être assez assez intrusive, il est préférable de mettre non par défaut
read -e -p "Attention vous allez réinitialiser complétement la salle, voullez vous vraiment continuer [o/n] : " -i "n" confirmation
#Confirmation de l'utilisateur
read -e -p "⚠️ Attention vous allez réinitialiser complètement la salle, voulez-vous vraiment continuer [o/n] : " -i "n" confirmation
echo "Vous avez entré ${confirmation}"
#Si l'utilisateur entre oui, le script s'exécute
if [ $confirmation == 'o' ];
then
if [ "$confirmation" == "o" ]; then
echo "Lancement de la tâche de réinitialisation de la salle"
#curl -H "fog-api-token: ${FOG_API_TOKEN}" -H "fog-user-token: ${FOG_USER_TOKEN}" -H "Content-Type: application/json" -X GET http://localhost/fog/group | jq
#Variables de configuration de la tâche
#Configuration
GROUP_ID="1"
IMAGE_ID="1"
TASK_TYPE="1" #Déploiement multicast
SHUTDOWN="1" #Eteindre les machines à la fin
TASK_TYPE="1" # Multicast
SHUTDOWN="1" # Éteindre à la fin
#Récupération des MAC des PCs
MACS=$(curl -s -H "fog-api-token: $FOG_API_TOKEN" -H "fog-user-token: $FOG_USER_TOKEN" \
http://localhost/fog/host | jq -r '.hosts[].macs[]')
#Wake On LAN sur le groupe
echo "Envoi du Wake On LAN vers le groupe ${GROUP_ID}"
curl -H "fog-api-token: ${FOG_API_TOKEN}" -H "fog-user-token: ${FOG_USER_TOKEN}" -X POST http://localhost/fog/group/${GROUP_ID}/wol
#Envoi du WOL à chaque MAC
echo "Révéil des machines"
for MAC in $MACS; do
#echo "💡 Envoi WOL à $MAC"
wakeonlan "$MAC"
done
#Construction du JSON avec les paramètres de la tâche
DATA=$(cat <<EOF
# Construction du JSON de tâche
DATA=$(cat <<EOF
{
"taskTypeID": "$TASK_TYPE",
"shutdown": "$SHUTDOWN",
@ -48,14 +42,17 @@ DATA=$(cat <<EOF
EOF
)
#Envoi de la requête de déploiement à l'api de fog
curl -H "fog-api-token: ${FOG_API_TOKEN}" -H "fog-user-token: ${FOG_USER_TOKEN}" -H "Content-Type: application/json" -X POST http://localhost/fog/group/${GROUP_ID}/task -d "$DATA"
# Création de la tâche
echo "Création de la tâche pour le groupe ${GROUP_ID}"
curl -s -H "fog-api-token: ${FOG_API_TOKEN}" -H "fog-user-token: ${FOG_USER_TOKEN}" \
-H "Content-Type: application/json" \
-X POST http://localhost/fog/group/${GROUP_ID}/task -d "$DATA"
#Sinon on ne fait rien
else
echo "Annulation de la tâche de réinitialisation de la salle"
fi
echo "FIN"