infomaniak_dyndns (#14)
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #14
This commit was merged in pull request #14.
This commit is contained in:
64
docs/Savaneprod/2025-04-03-infomaniak_dyndns.md
Normal file
64
docs/Savaneprod/2025-04-03-infomaniak_dyndns.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
title: "Mise à jour automatique de l'adresse IP publique dans l'entrée DNS A chez infomaniak"
|
||||||
|
summary: "DynDNS parce qu'on est des amateurs, hein."
|
||||||
|
author:
|
||||||
|
- JF
|
||||||
|
date: 2025-04-03
|
||||||
|
---
|
||||||
|
# Mettre à jour une adresse IP publique dynamique (a.k.a l'ip de la box) pour son nom de domain avec Infomaniak
|
||||||
|
|
||||||
|
Avant, savaneprod.fr n'était pas chez Infomaniak (OVH puis Gandi) et à ma connaissance il n'existait pas la solution proposée par Infomaniak. Il fallait utiliser [ddclient](https://ddclient.net/) ou un équivalent. Il se trouve que Synology implémente un équivalent graphique (c'est probablement la même chose sous le capot). Jusqu'à présent j'utilisais ce qui est décrit dans cette page : [Mise à jour automatique de l'adresse IP publique dans l'entrée DNS A chez infomaniak](2024-02-29-customized-dyndns-for-synology.md). Synology implémente ovh en natif. Pour Gandi il fallait bidouiller un peu, et pour Infomaniak, encore plus.
|
||||||
|
|
||||||
|
Sauf que, biais classique du "c'est comme ça qu'on a fait jusqu'à présent", je n'avais pas lu la FAQ Infomaniak jusqu'au bout : https://www.infomaniak.com/fr/support/faq/2376/utiliser-dyndns-par-api-infomaniak .
|
||||||
|
Hallelujah ! Un truc méga simple que tu peux utiliser partout sans rien avoir à installer, excepté `curl`.
|
||||||
|
|
||||||
|
Il suffit donc d'un mini script à faire exécuter via la `crontab`. Avec Synology c'est différent mais pas beaucoup plus compliqué avec le *Planificateur de tâches*.
|
||||||
|
|
||||||
|
## Créer les identifiants DynDNS pour un domaine :
|
||||||
|
1. Aller sur le Manager : https://manager.infomaniak.com
|
||||||
|
2. Dans la rubriques *Domaines*
|
||||||
|
3. Cliquer sur le domaine qui doit recevoir les mises à jour d'adresse IP dynamique.
|
||||||
|
4. Depuis la barre latérale (gauche), aller dans la rubrique *Dynamic DNS*
|
||||||
|
5. **AJOUTER UN DYNAMIC DNS**
|
||||||
|
6. Il faut créer un nouveau compte et un mot de passe. Arbitrairement selon tes considérations.
|
||||||
|
|
||||||
|
## Déploiement du script de mise à jour de l'adresse IP
|
||||||
|
|
||||||
|
### Création du script
|
||||||
|
Créer un fichier, par exemple `ddns.sh` avec le contenu ci-dessous. Puis lui appliquer la permission d'exécution `chmod u+x ddns.sh`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
DOMAINS=("fqdn.tld" "domaine.truc")
|
||||||
|
TIME="$(date +%Y-%m-%d\ %H:%M)"
|
||||||
|
# À définir dans l'interface Infomaniak
|
||||||
|
# Domaine => domain.truc => Dynamic DNS => Ajouter un Dynamic DNS
|
||||||
|
USERNAME="xxxxxxx"
|
||||||
|
PASSWORD="xxxxxxx"
|
||||||
|
|
||||||
|
echo "$TIME"
|
||||||
|
for d in "${DOMAINS[@]}"; do
|
||||||
|
echo "$(curl https://$USERNAME:$PASSWORD@infomaniak.com/nic/update?hostname=$d) for $d"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "------------------------"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Faire exécuter le script régulièrement par le système
|
||||||
|
#### La crontab
|
||||||
|
|
||||||
|
```bash
|
||||||
|
crontab -e
|
||||||
|
```
|
||||||
|
:warning: ça édite la *crontab* du compte utilisateurice courant. Pour le faire avec root, préfixer la commande avec le fameux `sudo`.
|
||||||
|
|
||||||
|
Dans la crontab j'ai ajouté la ligne suivante :
|
||||||
|
```crontab
|
||||||
|
*/10 * * * * /root/ddns.sh>>/var/log/ddns.log
|
||||||
|
```
|
||||||
|
Ça me fait toujours mal à la tête de lire la programmation d'un "cron job". Dans le cas présent ça exécute le script toute les 10 minutes (ouais on sauve pas des vies, hein), à toutes heures de la journée, tous les jours du mois, tous les mois, tous les jours de la semaine.
|
||||||
|
Si t'as envie de jouer, il exite [Crontab guru](https://crontab.guru/#*/10_*_*_*_*).
|
||||||
|
On voit également que la *Standard output* de l'exécution du script est redirigée vers un fichier de journalisation (*log file* en anglais) */var/log/ddns.log*.
|
||||||
@@ -3,7 +3,7 @@ site_url: https://docs.savaneprod.fr
|
|||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
- Savaneprod:
|
- Savaneprod:
|
||||||
- "Savaneprod/2024-02-29-customized-dyndns-for-synology.md"
|
- "Savaneprod/2025-04-03-infomaniak_dyndns.md"
|
||||||
- "Savaneprod/2019-09-01-access-synology-with-ssh-asymetrical-key.md"
|
- "Savaneprod/2019-09-01-access-synology-with-ssh-asymetrical-key.md"
|
||||||
- "Savaneprod/2025-03-31-certificats-wildcard-pour-synology.md"
|
- "Savaneprod/2025-03-31-certificats-wildcard-pour-synology.md"
|
||||||
- "Savaneprod/2020-12-04-borg-backup.md"
|
- "Savaneprod/2020-12-04-borg-backup.md"
|
||||||
|
|||||||
Reference in New Issue
Block a user