[Salt-fr] modification automatique de valeur

Adnan Aita little.ski at gmail.com
Mar 31 Oct 14:52:40 CET 2017


Je viens de voir la formula de bind, ca ne marchera pas ce que je te
proposait.

Pas d'idée, hormis à tweak la formula de bind pour qu'il fasse des
file.replace au lieu de file.managed afin de correctement détécté les
changements, ou à voir si bind accepte que le serial soit dans un autre
fichier (ce dont je doute)

2017-10-31 12:18 GMT+01:00 MEYGRET Eric <Eric.MEYGRET at bio-access.org>:

> Merci Georges pour les idées/pistes, j’étais en train de réfléchir à un
> serial en fonction de la date de modif du fichier pillar… ça doit être
> possible  mais j’ai fractionné mes zones dans plusieurs fichier pour que ce
> soit plus lisible du coup il faut que j’aille balayer l’ensemble des
> fichiers pour avoir la bonne date…. Ça simplifie pas les choses d’autant
> que je ne suis pas pythoniste averti… si j’arrive à qlq chose je vous
> dirai…
>
>
>
> Adnan j’avais vu ce module mais je ne vois pas trop comment faire, dans ma
> formule si je n’ai pas le champ serial celle-ci va vouloir supprimer la
> valeur du fichier et si je laisse une valeur elle sera forcément différente
> de celle mis à jour par dnsutil.serial ? je rate quelque chose ?
>
>
>
> *De :* Salt-fr [mailto:salt-fr-bounces at lists.afpy.org] *De la part de*
> Adnan Aita
> *Envoyé :* mardi 31 octobre 2017 08:24
> *À :* Georges Racinet <gracinet at anybox.fr>
> *Cc :* salt-fr at lists.afpy.org
> *Objet :* Re: [Salt-fr] modification automatique de valeur
>
>
>
> Tu as un module salt pour capable de générer des fichiers de zone DNS
>
> https://docs.saltstack.com/en/latest/ref/modules/all/salt.
> modules.dnsutil.html
>
>
>
> Tu peux en fonction de ca, avec un onChange modifier ou non le serial.
>
>
>
> Avec la formule bind, tu génère que la conf de bind qui va pointer sur ce
> fichier de zone.
>
>
>
> Adnan
>
>
>
> 2017-10-30 19:42 GMT+01:00 Georges Racinet <gracinet at anybox.fr>:
>
> Bonjour,
>
> On 10/30/2017 03:41 PM, MEYGRET Eric wrote:
>
>  Je gère mon dns via la formule bind( https://github.com/saltstack-
> formulas/bind-formula ), je cherche un moyen d’automatiser la mise à jour
> de la valeur « serial » de la zone, pour éviter les oublies..
>
>
>
> J’ai modifié le fichier zone.jinja pour calculer la valeur au lieu de la
> prendre dans les pillars :
>
> {%- set zone_serial = soa['serial'] %}
>
> *{% set serial = salt['cmd.run']('date +%Y%m%d%H%M%S') %}*
>
>
>
> Ça marche bien mais la valeur est mise à jour à chaque exécution de l’état
> et ce n’est pas vraiment l’effet voulu 😊
>
> Je m'étais dit la même chose récemment mais pour un besoin tellement
> simple et si peu critique que j'ai fini par utiliser plutôt unbound en
> laissant le Serial constant…
>
> Est-ce que quelqu’un aurait une idée pour ne déclencher cette maj
> uniquement si une valeur de la zone a été modifiée(donc une valeur des
> pillars) ?
>
> Je ne vois pas grand chose de très direct, les diffs se font plutôt sur le
> résultat, et non sur le pillar en entrée, ou alors j'ai raté quelque chose
> de vraiment intérressant ! Voici quelques idées quand même
>
> 1) blockreplace + cmd.wait
>
> Je me disais qu'on pourrait sans doute segmenter le fichier en deux et
> traiter le problème avec deux file.blockreplace et une directive watch,
> mais ni file.blockreplace ni file.managed n'implémentent watch, donc on ne
> peut le faire qu'en se rabattant sur cmd.wait ou module.wait.
>
> Pour essayer d'être plus clair :
>
> - encadrer toutes les données sauf le Serial avec des marqueurs qui seront
> des commentaires du point de vue de bind et les gérer avec
> file.blockreplace.
> - pour mettre à jour Serial, utiliser
>     + soit un cmd.wait qui lance un sed ou assimilé pour changer juste le
> serial
>     + soit module.wait (lançant file.replace par exemple),
>   dans les deux cas avec un watch sur le blockreplace pour faire que ça ne
> s'exécute que si le corps des données a changé
>
> 2) un renderer python pour utiliser dans file.managed
>
> Il relirait tout le fichier avant de potentiellement le changer (il
> faudrait alors lui donner le chemin) et implémenterait sa propre logique de
> diff pour decider de changer ou non le Serial. Variante : travailler sur un
> fichier auxiliaire caché qui contiendrait un rendu brut du bout de pillar
> concerné (ordonné pour éviter les faux positifs) et s'en servir pour
> contrôler a priori.
>
> Je n'aime pas trop, j'aurais envie de dire « autant écrire carrément un
> state dédié »
>
> 3) … non plus d'idées
>
> Note: il existe un salt.states.zone, mais ça n'a pas de rapport.
>
> En espérant que ça aide,
>
> --
>
> Georges Racinet
>
> Anybox SAS, http://anybox.fr
>
> Téléphone: +33 6 51 32 07 27 <+33%206%2051%2032%2007%2027>
>
> GPG: B59E 22AB B842 CAED 77F7 7A7F C34F A519 33AB 0A35, sur serveurs publics
>
>
> _______________________________________________
> Salt-fr mailing list
> Salt-fr at lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/salt-fr
>
>
>
> _______________________________________________
> Salt-fr mailing list
> Salt-fr at lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/salt-fr
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.afpy.org/pipermail/salt-fr/attachments/20171031/b321e114/attachment-0001.html>


Plus d'informations sur la liste de diffusion Salt-fr