Bonjour à tous,
Voilà j'ai comme projet de faire un script qui mettrait à jour mon IP dans la règles (policies) cloudflare qui autorise les accès à mes service auto-hébergés. Mais le problème n'est pas la j'ai trouvé la bonne commande Curl pour cette mise à jour dans les API cloudflare.
J'ai commencer à faire un script qui détecte les changements d'IP depuis sa dernière exécution (jusque la tout vas bien) et si l'IP a changé je veux exécuté un code qui inclue l'adresse IP stockée dans une variable... et c'est la que les ennuis commencent.
La commande curl fonctionne bien avec une adresse IP mais si à la place de l'adresse IP je tente de mettre la variable ça ne marche plus j'ai essayé pas mal de choses mais ça ne marche pas.
C'est mon premier script j'ai du m'aider de google pour quasiment chaque commande mais la je coince et mes recherches ne donnent pas vraiment de résultat.
Voici mon script l'IP remplacer par une variable et tout à la fin de l'avant dernière ligne "--data" (j'ai bien sur enlevé tout mes tokens perso):
Donc j'ai besoin de votre aide pour que la variable "new_ip" soient prise en compte. En l'état la requête part tel quel et cloudflare me renvoie une erreur ("message": "access.api.error.invalid_request: invalid json in policy rule").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/bin/bash new_ip=$(dig +short myip.opendns.com @resolver1.opendns.com) current_ip=`cat current_ip.txt` if [ "$new_ip" = "$current_ip" ] then echo 'pas de changement ip' exit 0 else echo $new_ip> current_ip.txt fi curl -X PUT "https://api.cloudflare.com/client/v4/accounts/**token de mon compte**/access/apps/**token de l'app**/policies/**token de la regle**" \ -H "X-Auth-Email: moi@mail.com" \ -H "X-Auth-Key: **Mon token d'identification**" \ -H "Content-Type: application/json" \ --data '{"precedence":1,"decision":"bypass","name":"IP","include":[{"ip":{"ip":"$new_ip"}}]}' echo 'Mise à jour effectuée'
Merci d'avance pour votre aide.
Bon dimanche.
Partager