Modification de la méthode de Wake On LAN et amélioration du script
This commit is contained in:
parent
79af06ff9d
commit
44979f22c8
@ -1,44 +1,38 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Charger les variables du fichier .env
|
||||||
# Charger les variables du .env
|
|
||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
export $(grep -v '^#' .env | xargs)
|
export $(grep -v '^#' .env | xargs)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#================================================================================
|
#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
|
||||||
#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
|
|
||||||
|
|
||||||
echo "Vous avez entré ${confirmation}"
|
echo "Vous avez entré ${confirmation}"
|
||||||
|
|
||||||
|
if [ "$confirmation" == "o" ]; then
|
||||||
#Si l'utilisateur entre oui, le script s'exécute
|
|
||||||
if [ $confirmation == 'o' ];
|
|
||||||
then
|
|
||||||
|
|
||||||
echo "Lancement de la tâche de réinitialisation de la salle"
|
echo "Lancement de la tâche de réinitialisation de la salle"
|
||||||
|
|
||||||
|
#Configuration
|
||||||
#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
|
|
||||||
GROUP_ID="1"
|
GROUP_ID="1"
|
||||||
IMAGE_ID="1"
|
IMAGE_ID="1"
|
||||||
TASK_TYPE="1" #Déploiement multicast
|
TASK_TYPE="1" # Multicast
|
||||||
SHUTDOWN="1" #Eteindre les machines à la fin
|
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[]')
|
||||||
|
|
||||||
|
#Envoi du WOL à chaque MAC
|
||||||
|
echo "Révéil des machines"
|
||||||
|
for MAC in $MACS; do
|
||||||
|
#echo "💡 Envoi WOL à $MAC"
|
||||||
|
wakeonlan "$MAC"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
#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
|
|
||||||
|
|
||||||
|
# Construction du JSON de tâche
|
||||||
#Construction du JSON avec les paramètres de la tâche
|
|
||||||
DATA=$(cat <<EOF
|
DATA=$(cat <<EOF
|
||||||
{
|
{
|
||||||
"taskTypeID": "$TASK_TYPE",
|
"taskTypeID": "$TASK_TYPE",
|
||||||
@ -48,14 +42,17 @@ DATA=$(cat <<EOF
|
|||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
#Envoi de la requête de déploiement à l'api de fog
|
# Création de la tâche
|
||||||
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"
|
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
|
else
|
||||||
echo "Annulation de la tâche de réinitialisation de la salle"
|
echo "Annulation de la tâche de réinitialisation de la salle"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "FIN"
|
echo "FIN"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user