domain_LmKEl_16298

[Synology] Votre nom de domaine sans utiliser de service DDNS public ?

Cet article a été rédigé il y a 5 années ! Il commence à dater, mais n'est pas forcément obsolète.. Lisez-le en gardant cela en tête !
Bonjour ! J’ai découvert ce matin même en me baladant sur le forum NAS-Forum le moyen de lier intégralement son nom de domaine acheté chez gandi à son serveur ! Merci à skyzebra du forum NAS-Forum pour sa contribution 🙂 Voici la suite d’un article que j’avais écrit il y a quelques temps et qui permettait de lier sommairement un nom de domaine à un serveur dont l’ip était dynamique ! En effet on ne pouvait se servir de l’adresse http://example.org et au mieux créer une redirection permanente de http://example.org vers http://www.example.org pour se servir de l’adresse http://example.org. Dorénavant, il est possible d’organiser un service d’Update DNS sur son Syno vers le fournisseur de domaine Gandi.NET ! Edit août 2015 : Aussi possible avec OVH, le paquet Geasy (logiciel prérequis, dispo dans l’intro de catégorie Synology) s’appelle dyndns-ovh.

I) Activer le service Gandi API

Connectez-vous à votre compte sur https://www.gandi.net/, et allez dans la section Gestion du compte >> Gestion de l’API (Si vous possédez votre domaine, vous pourrez activer cette api.)

Gandi API

À partir de là, comprenez qu’il y a 2 étapes à l’utilisation de la Gandi API :
  • La phase de test, où l’on vous donne une clef fictive mais qui fonctionne lorsque l’on lance le script.
  • La phase réelle, qui est à activer après avoir bien entendu testé que tout fonctionne. Il faut par ailleurs rentrer un mot de passe à chaque fois pour la récupérer. C’est au cas où, on ne sait jamais !

II) Mettre en place le script d’Update DNS

Je vous propose d’effectuer les commandes suivantes dans le but d’installer le script dans le dossier /var/services/homes/admin/
ipkg install python3 git cd /var/services/homes/admin/ git clone https://github.com/Chralu/gandyn cd gandyn/src python3 setup.py install
Gandyn est à présent installé, il ne reste plus qu’à créer le script de configuration qui permettra de configurer votre fichier de zone. Téléchargez le fichier configuration, en lançant la commande suivante :
cd /var/services/homes/admin/gandyn/src/ wget http://partage.gauss-it.net/syno/apigandi/example_org.py
Changez le nom example_org par celui de votre nom de domaine (vous pouvez très bien le faire pour plusieurs domaines !!) Remplacez les zones API_KEY et DOMAINE_NAME par vos informations personnelles. Pensez bien à utiliser dans un premier temps votre clef fictive. A présent, il ne vous reste plus qu’à tester le script ! Lancez pour cela la commande suivante :
cd /var/services/homes/admin/gandyn/src/ python3 ./gandyn.py –config example_org.py
Si aucune erreur se produit c’est qu’à priori que le script a fonctionné. Testez à nouveau en changeant la clef fictive par la clef réelle, après l’avoir activé. Ça prend un certain temps. Et rendez-vous à présent sur votre interface Gandi pour voir si votre interface a bien été mise à jour 🙂 J’utilise un fichier de zone minimal, donc débrouillez-vous pour qu’il ressemble à ça : (les lignes en vert servent à administrer le service mail, donc laissez les, comme elles sont)
@ 300 IN A XX.XXX.XXX.XXX * 10800 IN CNAME example.org. imap 10800 IN CNAME access.mail.gandi.net. pop 10800 IN CNAME access.mail.gandi.net. smtp 10800 IN CNAME relay.mail.gandi.net. webmail 10800 IN CNAME agent.mail.gandi.net. @ 10800 IN MX 50 fb.mail.gandi.net. @ 10800 IN MX 10 spool.mail.gandi.net.
Si tout c’est bien passé tant mieux sinon, laissez moi un commentaire que l’on voit votre problème en détail ! Terminez l’installation en lançant la commande suivante :
chmod -R 711 /volume1/homes/admin/gandyn/ chown -R admin:users /volume1/homes/admin/gandyn
Et voilà pour la mise en place, à présent passons à l’administration du service pour que l’on ait vraiment plus rien à faire pour rendre automatique le changement d’ip ! 🙂  

III) Automatisation de la mise à jour d’un domaine Gandi

Rendez-vous dans le panneau de configuration et cliquez sur Planificateur de tâches

DSM - Panneau de configuration

Et enfin rentrez le script suivant en changeant example_org.py par le nom du fichier de configuration que vous aurez indiquez.

dsm_tache

Il ne vous reste plus qu’à programmer la date des mises à jours ! et votre Syno se mettra à jours tout seul, il ne reste plus qu’à désactiver votre système de DDNS, si vous n’utilisez pas d’autres services que Synology. En effet ce service peut toujours vous servir si vous hébergez des domaines qui ne sont pas hébergés chez Gandi. Un grand merci à Skyzebra pour son post, http://www.nas-forum.com/forum/topic/16884-aide-a-la-configuration-dun-nom-de-domaine/?p=1319192769 ! Source du script : https://github.com/Chralu/gandyn

53 réponses à “[Synology] Votre nom de domaine sans utiliser de service DDNS public ?

  1. Bonjour,
    Merci beaucoup pour cette version un peu plus pédagogique du tuto…
    J’avoue que c’est ce que j’esperais en faisant remonter ce sujet…
    Cependant sans vouloir être un boulet, je ne suis pas certain de tout saisir pour me "lancer"..
    En effet quand tu ecris : "installer le script dans le dossier /homes/admin/" on parle du /homes/admin/ à la racine du Syno ? ou du homes/admin/ qui se trouve dans "var/sevices/" (ie : /var/services/homes/admin/) ??? Par ailleurs la commande "ipkg install python3 git" ne donne rien chez moi …. faut il que j’installe d’abord le package python3 via l’interface web du syno ? (le 2.7.3-0014 est dispo dans mes package disponible, est le bon ? j’ai aussi un 2.7.5-6 de dispo… mais pas de 3)
    Merci pour ton aide.
    Skyzebra

    1. Bonjour,

      Effectivement je n’ai pas précisé le chemin exact "/homes/admin/" qui peut-etre confondu.
      Les fichiers sont à mettre dans le dossier /var/services/homes/admin/, la commande que je propose d’exécuter ci-dessous effectue bien l’action espérée.
      J’ai corrigé l’erreur et j’ai rajouter des balises pour retirer toutes ambiguïté !

      Sinon en effet, la commande ne peut pas marcher comme ça, Cf. http://apps.gauss-it.net/wordpress/?page_id=53.
      Autrement tu peux toujours essayé d’installer python3, package de la SynoCommunity, cependant je ne sais pas si cela fonctionnera à tous les coups, car je n’ai pas réussi sur mon Syno. (Je pense que je n’ai pas les bonnes valeurs dans la variable $PATH pour rechercher les paquets installés sur mon Syno. Pour moi la commande ipkg install python3 devient beaucoup plus facile à exécuter par conséquent !^^)

  2. Pour te donner une idée d’à quel point je suis à la ramasse….

    ipkg install python3 git
    -ash: ipkg: not found

    Maintenant mon syno est un DS408 avec un dsm 4.0 que je ne peux plus upgrader…. c’est peut être lié…. mes connaissances serveur à partir d’un terminal telnet sont elles aussi très limitées… je crois que le mieux c’est de changer de FAI pour avoir une IP fixe… ;- ipkg install python3 git
    -ash: ipkg: not found
    NitoStation> cd /var/services/homes/admin/
    NitoStation> git clone https://github.com/Chralu/gandyn
    -ash: git: not found
    NitoStation>

    Voilà je crois que je vais sagement attendre qu’un truc plus simple et plus accessible pour moi sorte…
    Merci en en tout cas

    Skyzebra

    1. Ce n’est pas forcement facile quand on ne connait pas, c’est certain. Mais ce n’est pas une raison pour se laissé abattre !!

      Tu as juste oublié d’installer IPKG ! C’est l’UNIQUE Pré-Requis de mes tutoriels Syno ! 🙂
      http://apps.gauss-it.net/wordpress/?page_id=53

      PS : FREE et OVH sont uns des rares à proposez des forfaits avec ip fixe, je crois dans le grand publique. Mais ça serait dommage de changer juste pour cela. C’est beaucoup trop de paperasse pour rien ! 😮

  3. Bonjour,

    Merci pour le travail effectué et pour toutes les informations de ce site.
    Malheureusement, malgré le temps passé je n’ai toujours pas réussi à faire fonctionner ce script.
    Pour résumer j’ai bien activé le service Gangi API, j’ai mis en place le script d’update dns, malgré un point qui m’a pris du temps, la dernière ligne est : python3 setup.py install pour que ça puisse fonctionner pour moi.
    J’ai bien créer et rempli le fichier example_org.py avec mes paramètres.

    Ensuite je n’ai pas pu passer la commande : gandyn.py –config example_org.py mais j’ai dû préciser tout le chemin, à savoir : /var/services/homes/admin/gandyn/src/gandyn.py –config /var/services/homes/admin/gandyn/src/example_org.py
    C’est à ce moment que j’ai un message d’erreur et que je reste bloqué.

    Le message est :
    Traceback (most recent call last):
    File "/var/services/homes/admin/gandyn/src/gandyn.py", line 160, in
    main(sys.argv, globals(), locals())
    File "/var/services/homes/admin/gandyn/src/gandyn.py", line 124, in main
    compile(open(config_file).read(), config_file, ‘exec’),
    File "/opt/lib/python3.2/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
    UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xab in position 252: ordinal not in range(128)

    Et là je ne sais pas comment résoudre ce problème.
    Un petit coup de main me serait bien utile, si c’est possible.

    Merci.

    Fyme

    Ps : je précise que j’ai un synogy DS 209 sous DSM 4.2-3243

    1. Bonjour,

      En effet, la commande "python3 setup.py install" est plus adapté. Je vais d’ailleurs corrigé ça !

      Concernant le problème avec la commande "gandyn.py –config example_org.py" cela suppose que vous vous trouviez dans le dossier courant (/var/services/homes/admin/gandyn/src/) de gandin.py pour que cela marche sinon en effet il ne trouvera pas le script. Si l’on effectue la première étape d’installation de gandyn, on est censé attérir dans le dossier /var/services/homes/admin/gandyn/src/ et la commande "gandyn.py –config example_org.py" devrait marcher ! Mais je vais préciser ce point sur mon article.

      Enfin pour le dernier point sur lequel vous restez bloqué, j’ai modifié quelques points dans la partie II qui devrait résoudre vos problèmes dans l’article. Comment cela se passe-t-il à présent ?

  4. Merci pour la rapidité et la correction.
    Deux points :
    1 Je n’ai plus de message d’erreur (génial), par contre, à quoi sert la clef fictive ? Et à quel moment mettre la clef définitive?
    2 J’était bien dans le répertoire :cd /var/services/homes/admin/gandyn/src/ lorsque j’ai tapé la commande (gandyn.py –config example_org.py), je viens de réessayer et je suis toujours obliger de passer par /var/services/homes/admin/gandyn/src/gandyn.py –config
    /var/services/homes/admin/gandyn/src/example_org.py
    Il suffit de le savoir, j’ai fait des recherches à ce sujet, j’ai cru comprendre qu’il fallait renseigner le $PATH ce que j’ai fait mais sans succès.
    Je vérifie si l’update se fait et fais un retour, gagnant j’espère.

    Fyme

    1. Je suis bête j’oubliais, la bonne commande enfait se trouve être :
      "./gandyn.py –config example_org.py" biensur ! Shame on me.. ^^"

      Je te déconseille fortement de toucher à la variable $PATH, ce n’est pas adapté dans ce cas là.

      Sinon la clef fictive, c’est pour tester que le script fonctionne bien avant de le tester sur ton domaine en fonction !

  5. Un grand merci à toi, tout fonctionne parfaitement.

    N’oublie pas si possible d’ajouter le 3 dans la commande : python setup.py install , pour un débutant comme moi j’ai galéré un peu en essayant différente version python avant de comprendre.

    Sinon une dernière question concernant les packages très intéressants que tu proposes, tu indiques :
    Ces tutoriels fonctionnent sur toutes les machines qui proposent un matériel équivalent ou supérieur au serveur Synology DS210+
    Et j’ai un DS209, il n’y a pas de contre indication particulière ?

    Encore merci pour tes conseils.

    Fyme

    1. Merci à toi, pour le retour sur l’article 🙂
      C’est corrigé ! En effet c’est pas inné si l’on ne connait pas trop les machines unix !

      Sinon concernant Geasy, en effet il n’y a pas de contre indication particulière, car les Syno ont une architecture commune. Toutefois la plupart des paquets n’ont pas été testés, il n’y a aucun risque de détérioration de votre système ceci dit.. Néanmoins, comme je disais ils n’ont pas été testés à part sur mon DS210+ sur lequel ils marchent parfaitement.

      Si jamais vous avez le temps et l’envie d’essayer Geasy n’hésitez pas et me donner vos impressions et votre retour d’expérience aussi ! 🙂
      Je pourrai ainsi corriger rapidement les quelques petites erreurs si jamais pour que tout le monde puisse en profiter.

  6. J’ai utilisé Geasy et je l’ai adopté, j’ai uniquement fait les tests correspondant à la page Geasy, tout fonctionne à merveille.
    Une dernière chose pour le planificateur de tâche, en mode admin en ssh il ne fonctionne pas, il faut être en root.
    Et la commande correspondante dans l’image ne fonctionne pas pour moi, il faut :
    /var/services/homes/admin/gandyn/src/gandyn.py –config /var/services/homes/admin/gandyn/src/example_org.py
    Si ça peut être utile.
    Fyme

    1. Content qu’il vous plaise 🙂
      Sinon c´est étonnant que cette config ne marche pas pour le plannificateur, je vais revoir ça plus en détail ce soir.

  7. Bonjour,
    Je n’a pas encore fait de test au sujet du planificateur, un retour pour savoir s’il fonctionne avec vos paramètres.
    Sinon auriez-vous une idée concernant la gestion d’un sous domaine avec Gandi, je n’ai pas de résolution de mon sous domaine, (j’ai posé la question au support Gandi mais toujours pas de réponse.
    Voilà ce que j’ai fait :
    @ 300 IN A XX.XXX.XXX.XXX
    * 10800 IN CNAME example.org.
    * 10800 IN CNAME mail.example.org.

    Est-ce correct ?

    Désolé d’abuser.

    Fyme

    1. Au sujet du planificateur, je n’ai aucun soucis pour l’utiliser, en tant que root, il fonctionne très bien !
      Mais ce que je vous propose de faire c’est lancer la commande que vous souhaitez planifier, une fois que vous avez vu que la commande abouti correctement planifiez là !

      Sinon concernant le fichier de zone gandi, le mien est celui de l’article. Mais en 3 lignes je doute que cela marche ! 🙂
      En tout cas, si vous avez d’autres questions, n’hésitez pas !

  8. Salut,

    Ton Tuto est super et bien.

    Moi je rencontre un problème lors de la phase de test : "./gandyn.py –config example_org.py"
    J’ai l’erreur : " import xmlrpc.client ImportError: No module named xmlrpc.client".

    J’utilise python 2.7, mon nas est DS210+.

    Si tu as une solution, merci d’avance

    1. Salut,

      Je pense que la réponse est dans ton message ! En effet, gandin.py utilise python3 normalement le script que je donne dans le tutoriel l’installe par défaut. Mais c’est à l’exécution du script gandyn.py que ça passe pas visiblement peut-être que c’est python2.7 qui se lance malgré tout !

      J’ai modifié le tutoriel pour palier à ce problème, mais dans le doute si cela ne résout pas ton problème lance la commande :
      python3 -V
      On verra déjà un peu plus clair ! 🙂

  9. Oups désolé,
    J’ai installé python3 depuis le paquet officiel de synology, (n’étant pas dispo dans ipkg)
    J’ai rencontré un problème lors de l’installation "python3 setup.py install", il manque des fichiers de python.
    J’ai résolu ce problème en copiant "/volume1/@appstore/py3k/usr/local/include/python3.3m/" dans "/usr/local/include"
    Et là tous fonctionne
    Et encore merci pour ton tuto

  10. Bon, et bien moi aussi je suis intéressé par gandyn …
    et je rencontre la même erreur que dédé :
    import xmlrpc.client
    ImportError: No module named xmlrpc.client
    Comme suggéré je fais : $ python3 -V
    qui réponds : Python 3.2.3
    Par contre, mon répertoire /usr/local/include
    est completement vide.
    et je n’ai pas compris ce que dédé a copié dans le sien.
    J’ai tenté d’installer : xmlrpc-api-utils
    mais la même erreur reviens.
    Une autre idée ?
    PS. J’utilise un raspberry, distribution rasbian

  11. Salut livier,
    A vrai dire tu n’as pas vraiment le même problème que dédé, car tu utilise un raspberry. C’est aussi pour cela que tu n’a pas pas compris ce que dédé a copié. Cet article a été rédigé spécifiquement pour les serveurs Synology !

    Néanmoins avec un peu de patience je pense que tu pourras résoudre ton problème, car gandyn n’est pas exclusif pour les Syno.
    Comment as-tu procédé exactement jusqu’à présent pour arriver à cette erreur? Et quel était la derniers ligne de code que tu as lancé pour avoir ton erreur ? Peut-être qu’une petite mise à jour de python3 vers la version 3.3.2 résolverai le problème ?

    Sinon procède peut-être en suivant les explications du repo github officiel.
    https://github.com/Chralu/gandyn , car moi j’ai adapté gandyn pour qu’il marche sur Syno.

  12. Merci KZL,
    J’ai en fait lu et suivi les procédures expliquées ici https://github.com/Chralu/gandyn , tout en ayant lu ta page pour une meilleure compréhension. A priori tes explications sont valables pour n’importe quelle distrib, non ?
    La dernière commande qui déclenche l’erreur est :
    $ sudo gandyn.py –config /etc/gandyn.conf
    Traceback (most recent call last):
    File "/usr/local/bin/gandyn.py", line 4, in
    import xmlrpc.client
    ImportError: No module named xmlrpc.client

    Pour les mises à jour j’ai fait sudo apt-get upgrade puis ugrade
    ma version de python semble donc être la dernière disponible dans les paquests.

    Je vais repartir chercher "at large", mais si tu as une idée, une piste à me suggérer, tu pourrais me faire gagner pas mal de temps !

    Bonne journée

    1. Ah et bien c’est une bonne démarche je pense en effet de combiner les deux. Je pense que le problème vient du fait que tu as probablement un python2.7 d’installé sur ton raspberry. Du coup quand tu lance gandin.py, ce n’est pas python3 qui est lancé ! D’où l’erreur xmlrpc.client qui n’est pas trouvé, car utilisé seulement avec python3 !

      En effet tu as le même problème que dédé du coup, qui utilisait python2.7 au lieu de python3 ! 🙂
      Enfin cela est à confirmer, encore mais je pense que c’est de là que vient l’erreur.

      Lance plutôt :
      sudo python3 ./gandyn.py -config /etc/gandyn.py

  13. Suite au post trouvé ici :
    http://forum.ubuntu-fr.org/viewtopic.php?pid=12777581#p12777581
    je passe les commandes suggérées :
    pi@raspberrypi ~ $ python3 -V
    Python 3.2.3
    pi@raspberrypi ~ $ /usr/bin/env python3 -V
    Python 3.2.3
    pi@raspberrypi ~ $ head -2 "$(which gandyn.py)"
    #!/usr/bin/python
    import sys

    Suite aux commentaires dans les posts suivants je repasse par l’installation en remplaçant
    "python setup.py install" par "python3 setup.py install"

    Il semble que cela aille mieux :
    sudo gandyn.py –config /etc/gandyn.conf
    se termine maintenant sans erreur.

    Mais mon enregistrement A dans Gandi n’est pas adapté comme attendu !

    Est ce parceque j’utilise encore la clef de test et puis je espérer que ça ira mieux en utilisant la clef de production de l’API Gandi …
    Ou j’ai encore un autre problème ?

    1. Ah très bien , le pb venait donc bien de python3 comme dédé 🙂

      Sinon oui en effet cela vient bien de la clef de test et c’est normal heureusement comme je le disais plus haut dans un commentaire d’ailleurs.

      Bonne continuation avec ton raspberry ! C’est génial ces petites betes. J’écris quelques articles aussi dessus sur mon blog cela t’interesse

  14. Bon, et bien j’avance, mais doucement ! Après passage à la clef de production, l’enregistrement de la zone n’est toujours pas mise à jour par le déclenchement du script. Dans le fichier log du script je trouve :
    Fri, 18 Apr 2014 20:44:44 ERROR An error occured using Gandi API :
    Bon, cette fois j’ai contacté les services de Gandi, mais si tu as une idée encore une fois 😉
    Oui j’ai bien vu que tu avais des articles sur raspberry. Je me suis fait un signet sur http://blog.gauss-it.net/?p=475
    Quand ma config sera au point, je ferai une image de l’install initiale pour ne pas avoir à recommencer au cas ou …
    C’est ma première utilisation de Raspi je vais vérifier si cela fait un serveur honorable, je suis optimiste ; et puis avec un upload de 1Mbps, sans streaming ni flash sur mon site j’espère que ça va passer trés bien. Je vais économiser le prix de mon serveur annuel … tout ça pour un ordi gros comme une carte de banque, ça me bluffe un peu ! A suivre

  15. Hello, le problème du script c’est qu’il modifie la root zone, et moi je préfère pour le moment la mise à jour d’un sous domaine de ma zone. Donc pas possible avec ce script, je vais donc de ce pas aller finir mon script PHP / PEAR XML RPC …

    1. Salut draggi 🙂

      En effet ce script n’a pas été pensé pour s’adapter à seulement des sous-domaines, il sert juste à se passer d’un service DDNS !

      Pour ce que tu veux faire, je pense qu’il faudrait que tu jètes un oeil à mon article datant de janvier dernier ? http://blog.gauss-it.net/?p=762
      Cela correspondra peut-etre plus à ce que tu veux faire au final ?

      Néanmoins, la modification pour un sous-domaine est vite faite, il suffit juste de modifier la ligne :
      "RECORD = {‘type’:’A’, ‘name’:’@’}" du fichier example_org.py
      par
      "RECORD = {‘type’:’A’, ‘name’:’ton_sous_domaine’}"

      En oubliant pas d’ajouter le sous-domaine à la main une première fois dans ton fichier de zone !

    2. J’ai en effet essayé de forcer la zone mais cela ne fonctionne pas en effet dans l’API de Gandi la méthode utilisée pour modifier l’ip de la zone (domain.zone) n’est pas la même que celle utilisée pour modifier le sous domaine (domain.zone.record). A moins d’erreur Je ne penses pas que ce script soit adapté à une modification de type sous domaine. Du coup je vais regardé le lien que tu a fourni pour voir si cela correspond mieux à mes besoins. merci!

    3. Ah sisi je te confirme la méthode, puisque c’est celle que j’utilise dans le déploiement de mon service DDNS sur mon Syno 🙂
      Il est en place depuis 6 mois d’ailleurs !

  16. Bon….blog top…articles superbes….mais j’ai beau retourner les tutus dans tous les sens j’ai une erreur introuvable nulle part ! peut être qu’un pro du ssh pourra m’aider :
    Après mes :
    cd /var/services/homes/admin/gandyn/src/
    python3 ./gandyn.py -config exemple_org.py

    Toujours ce retour d’erreur :
    Traceback (most recent call last):
    File "./gandyn.py", line 160, in
    main(sys.argv, globals(), locals())
    File "./gandyn.py", line 124, in main
    compile(open(config_file).read(), config_file, ‘exec’),
    IOError: [Errno 2] No such file or directory: ‘on fig’

    Quand j’utilise le tiret – au lieu du – (quelques manomètres d’écart !) le grand tiret m’évite d’avoir l’erreur mais toujours la même conclusion dans le .log :

    Tue, 16 Sep 2014 15:39:21 ERROR An error occured using Gandi API :

    C’est à s’arracher le peu de cheveux qui me reste !
    Un pro pour orienter la réflexion ?
    Merci d’avance

    1. J’avance doucement mais j’avance. Avec cette commande ça fonctionne :
      python3 ./gandyn.py –config ./exemple_org.py

      Le fichier de config se charge bien….par contre erreur :
      Erreur sur OBJECT_ACCOUNT "Invalid API key" / faultCode 510150

      Je cherche….

    2. Bonjour, désolé pour le temps de réponse j’ai eu beaucoup de problème réseau..
      Avez-vous demandé la clef officiel ? Il semblerai que votre clef soit invalide ! Il faut éditer le fichier exemple_org.py biensur

    3. Rebonsoir, je réponds dans le désordre !! 🙂
      Attention ! Le problème vient du fait que la commande à lancée est la suivante :
      python3 ./gandyn.py --config exemple_org.py

  17. Bonsoir,

    Tout d’abord, un grand merci pour ce tuto, ça faisait un moment que je cherchais la solution!

    Par contre, j’ai un soucis: je n’arrive pas à installer gandyn, j’ai ce message d’erreur à chaque fois: Segmentation fault (core dumped)

    Comment faire pour résoudre ce problème?

  18. Help,!

    Je suis sur un DS213j et j’ai suivi le tuto attentivement mais je coince toujours pour utiliser ce script… 🙁

    J’essaye d’installer et j’ai toujours la même erreur avec python3: Segmentation fault (core dumped)

    – Si je l’installe en faisant : python gandyn.py install ça a l’air de marcher mais j’ai une autre erreur quand je tente de lancer le script:

    $> python ./gandyn.py –config monsite_org.conf

    Traceback (most recent call last):
    File "./gandyn.py", line 6, in
    import xmlrpc.client
    ImportError: No module named xmlrpc.client

    – Ensuite si j’essaye de lancer avec python3, ça donne:

    $> python3 ./gandyn.py –config monsite_org.conf

    Segmentation fault (core dumped)

    – Je ne comprends pas non plus pourquoi après avoir installé python3, je me retrouve avec 2.7.9:

    $> python -V
    Python 2.7.9

    Auriez-vous une idée ? là je suis complètement perdu…

    1. Salut Jules, d’abord désolé de répondre si tard!
      J’ai 2 informations à t’apporter je pense au travers de ce message.

      Visiblement, Segfault sur python3 c’est pas de très bon augure 🙁
      L’autre concerne python 2.7.9, quand on écrit python cela fait référence à python2, ce qui fait que dans notre cas l’article utilise python3, car il y a des modules complémentaires comme xmlrpc.client qui est installé.
      Donc il est normal de te retrouver avec l’erreur ImportError, quand tu lances :
      $> python ./gandyn.py …

      En résumé, je ne saurai pas t’expliquer pourquoi tu as un segfault avec python3, mais essaie peut-être de le désinstallé et de le réinstaller avec les commandes ipkg, peut-être que cela solutionnera ton problème.

  19. Bonjour
    merci pour votre tutoriel ! Je pense l’avoir bien suivi mais j’obtiens une erreur 510042 qui bloque la synchronisation avec le fichier de zone gandi. "Error on object : OBJECT_DOMAIN (CAUSE_NOTFO$
    Auriez-vous une solution
    En vous remerciant

    1. Bonjour !
      Est-ce que tu as correctement modifié le fichier de configuration ? Je pense à un nom de domaine qui n’existe pas. Pourrais mettre le code d’erreur complet ? Là il est tronqué !

    2. Bonsoir, merci de votre réponse.
      Aujourd’hui j’ai réessayer de relancer la commande
      python3 ./gandyn.py -config perreaut.net.py

      Puis j’ai obtenu directement l’erreur
      raceback (most recent call last):
      File "./gandyn.py", line 160, in
      main(sys.argv, globals(), locals())
      File "./gandyn.py", line 124, in main
      compile(open(config_file).read(), config_file, ‘exec’),
      IOError: [Errno 2] No such file or directory: ‘onfig’

      #API key generated by Gandi
      API_KEY = ‘uneapikeypleinedelettreetdechiffre’

      #Name of the domain to update
      DOMAIN_NAME = ‘perreaut.net’

      #Time to live of the updated record
      TTL = 300

      #Filters used to find the record to update.
      #By default, the updated record is "@ A xxx.xxx.xxx.xxx"
      #Where ‘xxx.xxx.xxx.xxx’ is the updated value
      RECORD = {‘type’:’A’, ‘name’:’@’}

      #Log level of the script. Values are :
      # logging.DEBUG
      # logging.INFO
      # logging.WARNING
      # logging.ERROR
      logging.CRITICAL
      LOG_LEVEL = logging.DEBUG
      #Path of the log file
      LOG_FILE = ‘gandyn.log’

      python3 ./gandyn.py –config perreaut.net.py

      Voici ce que donne le fichier .log

      Mon, 16 Mar 2015 02:56:59 ERROR An error occured using Gandi API : <Fault 51$
      Mon, 16 Mar 2015 03:02:16 ERROR An error occured using Gandi API : <Fault 51$
      Mon, 16 Mar 2015 19:10:04 ERROR An error occured using Gandi API : <Fault 51$
      Mon, 16 Mar 2015 19:18:17 DEBUG DNS record IP address : 109.213.90.249
      Mon, 16 Mar 2015 19:18:18 DEBUG Current public IP address : 109.213.90.249
      Mon, 16 Mar 2015 19:18:18 DEBUG Public IP address unchanged. Nothing to do.

      Donc au final tout marche nikel !

    1. Un énorme merci de mettre toute cette information à notre disposition et d’en faire le support en prime!!!

      J’ai également un problème :
      À l’exécution, j’obtiens l’erreur suivante dans le fichier log :
      ERROR An error occured using Gandi API :

      Complément d’information :
      – J’utilise toujours la clé API de test;
      – J’utilise les CNAMES de base, j’ai simplement ajouté : * 10800 IN CNAME example.org. (avec mon nom de domaine);
      – Ça m’a pris un certain temps à comprendre que je devais installer "ipkg" et le package "git".
      – Ah oui, il me semble que les permissions sur les fichiers src sont particulier, j’ai dû en modifier certaines pour exécuter ou modifier certains fichiers, voici où j’en suis :
      d——— 4 root root 4096 Apr 12 20:32 build
      -rwx—— 1 root root 537 Apr 12 20:36 example_org.py
      ———- 1 root root 935 Apr 12 21:01 gandyn.log
      -rwx—— 1 root root 4902 Apr 12 21:13 gandyn.py
      d——— 3 root root 4096 Apr 12 20:37 ipretriever
      ———- 1 root root 368 Apr 12 20:32 setup.py

      Merci à l’avance!!!

    2. Bonjour,

      Tu as dû copier qu’une partie du fichier log.
      Néanmoins oui il s’agit d’un des prérequis que tu peux trouver dans la page de présentation de mes articles Syno.
      Autrement la démarche semble la bonne. Pour que je puisse t’aider, il me faudrait plus de détails sur ton fichier log. Concernant les droits il faut changer le nom du fichier exemple_org.py mais tu n’as pas besoin de changer les droits de

  20. Oups, bien oui, voici les messages complets :
    Sun, 12 Apr 2015 21:01:34 ERROR An error occured using Gandi API : Fault 500037: "Error on object : OBJECT_UNKNOWN (CAUSE_BADPARAMETER) [string " does not match ‘^[a-z0-9]{24}$’]"
    Sun, 12 Apr 2015 21:35:57 ERROR An error occured using Gandi API : Fault 510150: ‘Error on object : OBJECT_ACCOUNT (CAUSE_NORIGHT) [Invalid API key]’

    Mais ça fonctionne maintenant. Les problèmes (au bénéfice des suivants) :
    Concernant la première erreur, je devais avoir une erreur dans mes paramètres (API_KEY ou DOMAIN_NAME) et j’ai fini par les mettre directement dans le fichier gandyn.py que j’exécute maintenant sans fichiers de config.

    Concernant la seconde, je n’ai pas trouvé la cause, mais j’ai finis par essayer avec la clé API de production et ça a passé : Sun, 12 Apr 2015 21:39:43 INFO DNS updated

    Là, tout est merveilleux, merci!!!

  21. Il est tellement hot ce site, je me suis acheté un NAS Synology à la maison pour les besoins de ma famille + un nom de domaine chez Gandi et ce site est toujours LA référence pour mes besoins de configuration; merci KZL!!!

    Après avoir fait les configurations de cette page, j’essaye de configurer la messagerie (mail) sur mon NAS et ça ne fonctionne pas. Quand on regarde les tutos ça a l’air simple, mais dans les faits, il me manque quelque chose… Prévoyez-vous en faire un sujet.

    Je pense que mon problème provient de mes config de zone sur Gandi. J’arrive à transmettre des courriels à partir du NAS, mais je ne reçois rien de l’extérieur. Voici ce que j’ai :
    Nom – Type – Valeur – TTL
    @ A 5m –> grâce à la méthode ci-dessus; encore merci!!!
    @ MX . (100) 3h

    Merci de ton aide et merci encore pour toute cette information!

    1. Hum, j’ai mis des éléments entre crochet et ça ne s’affiche pas, revoici le partie Zone sur Gandhi :
      Nom – Type – Valeur – TTL –> commentaire perso
      @ A MonIP 5m –> grâce à la méthode ci-dessus; encore merci!!!
      @ MX MonDomnaine. (100) 3h

  22. Salut BOUM 🙂
    Pour la gestion des mails personnellement,j’ai tenté de le faire, mais j’ai finalement laissé tombé.
    Je n’ai pas fait d’article pour une bonne et simple raison que j’utilise mon adresse @gauss-it.net pour tout, si jamais mon serveur tombe en panne, je ne recevrai plus de mail, cela nécessite donc une haute disponibilité et mon syno n’est pas vraiment faire pour ça. Je suis donc resté sur les serveurs mail gandi.
    Les dernières générations le sont déjà plus (bien que cela reste des NAS), mais il faut éviter cela le plus possible.
    Toutefois, une fois que tu as configuré le MX :

    mail 10800 IN A 123.123.123.123
    @ 10800 IN MX 10 mail.exemple.com.

    Il faut que tu créé l’entrée mail.exemple.com sur ton serveur et que tu ouvres les ports nécessaires sur ton serveur + box FAI, sinon tu n’y auras pas accès.
    Il y a un paquet spécialement conçu pour mettre en place cela : Mail Station.

  23. Bonjour et tout d’abord merci pour ce tutoriel très clair.

    Mon script est en place, les valeurs de mon sous-domaine s’updatent bien lorsque j’exécute le script à la main dans le shell.

    Cependant je pèche sur la partie crontab.

    J’ai créé une tâche de type "script défini par l’utilisateur" que je configure en fréquence de 5 minutes. Mais cette règle ne se lance pas. Y a-t-il ddes logs disponibles qui pourraient me permettre de savoir pourquoi cette règle n’est pas exécutée?

    Voici le détail de la commande lancée;

    python3 /var/services/homes/MACHIN/gandyn/src/gandyn.py –config /var/services/homes/MACHIN/gandyn/src/MACHIN_be.py

    au niveau des fichiers j’ai pas fait dans la dentelle puisque tout est chmodé en 777. Histoire d’être sûr. De plus c’est le user root qui est appelé dans cette tâche.

    Merci d’avance pour l’aide que l’un d’entre vous pourra m’apporter.

    1. Bonjour ! Lancez à la main le script et puis là commande ‘find -name *.log /votre/chemin/gandyn/’
      Vous devriez trouver les fichiers de log comme ça 🙂

      Ceci dit votre problème peut venir de l’appel à python3. Remplacez python3 par le résultat de la commande ´which python3´ peut être que cela marchera mieux !

      A+

  24. Heu ceci va me donner les logs du script mais pas les logs du planificateur de tâche.. Si? Désolé je m’y perd un peu là.

    Même en remplaçant python3 par /usr/bin/python3 la règle ne s’exécute pas.

    Plus de précisions: J’exécute la règle depuis l’interface du planificateur de tâche (je sélectionne la règle puis je clique sur le bouton ‘exécuter’).
    Et je vérifie dans le fichier Gandyn.log si une entrée de ce type est ajoutée
    "Mon, 10 Aug 2015 13:26:19 DEBUG DNS record IP address : x.x.x.x
    Mon, 10 Aug 2015 13:26:19 DEBUG Current public IP address : x.x.x.x
    Mon, 10 Aug 2015 13:26:19 DEBUG Public IP address unchanged. Nothing to do."

    Or il est actuellement 16h47 et après avoir exécuté la règle depuis l’interface du planificateur, l’heure aurait du changé vers 16h46 ou 47.
    C’est comme si mon planificateur de tâche était mort.

  25. Bonjour !

    j’essaye de mettre en place cet API. Le tuto est très bien expliqué et je pensais m’en sortir sans problème sauf que je me retrouve bloqué après avoir testé
    cd /var/services/homes/admin/ Je me retrouve avec "-ash: cd: can’t cd to /var/services/homes/admin/"

    cela bloque donc toute la suite…

    Merci pour votre aide ! 🙂

    1. J’ai eu le même souci, il faut activer le service d’accueil utilisateur.
      Panneau de config > Utilisateurs > Avancé > Activer le service d’accueil utilisateur 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *