[Salt-fr] modification automatique de valeur

Adnan Aita little.ski at gmail.com
Mar 31 Oct 08:23:33 CET 2017


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
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.afpy.org/pipermail/salt-fr/attachments/20171031/3dbdd523/attachment-0001.html>


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