Modification de la méthode de Wake On LAN et amélioration du script
This commit is contained in:
parent
79af06ff9d
commit
44979f22c8
@ -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[]')
|
||||
|
||||
#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 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"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user