Contrainte de l'exploitant apres avoir vu backup-01 et collab-01 crees avant l'AC et le DNS. Ma premiere reponse etait incomplete : un clone est bien inerte, mais un echec a la 12e VM coute 40 minutes sans rien deployer, et le journal donne l'impression que le moteur ignore ses couches. Mesure avant de coder : - enregistrements A : DEJA derives du plan (zone generee depuis hotes_actifs) - zone inverse / PTR : n'existe NULLE PART, aucun role ne touche in-addr.arpa - ordre d'amorcage : aucun, deployer-tout est par couches Le premier point a reduit le travail de moitie — j'allais ecrire un enrolement DNS par hote alors que la zone directe etait deja correcte. Zone inverse derivee du supernet (27.10.in-addr.arpa), PTR issus de la MEME source que les A : pas d'endroit ou elles puissent diverger. Vide si le supernet n'est pas un /16. _amorcer-socle monte l'AC puis le DNS completement avant deployer-tout ; les deux derives de applications.<app>.hote, dans un ordre causal et non alphabetique. Deux exceptions assumees : l'AC s'auto-signe, le DNS pose son propre enregistrement. P10 a attrape un handler que je venais d'inventer (Recharger PowerDNS au lieu de Validate and reload PowerDNS) avant tout deploiement. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
24 lines
1.1 KiB
Django/Jinja
24 lines
1.1 KiB
Django/Jinja
; Zone INVERSE — generee par Set-OPS (role serveur_powerdns). Ne pas editer a la main.
|
|
;
|
|
; Le nom de la zone est DERIVE du supernet du tenant, comme tout le reste : un /16
|
|
; 10.(10+index).0.0 donne (10+index).10.in-addr.arpa. Rien n'est ecrit.
|
|
;
|
|
; Les PTR viennent de la MEME source que les A — `hotes_actifs` et son `ansible_host`.
|
|
; Deux zones alimentees par une seule verite : c'est ce qui empeche l'endroit ou elles
|
|
; divergent d'exister.
|
|
$TTL {{ serveur_powerdns_ttl }}
|
|
@ IN SOA {{ serveur_powerdns_nameserver }}.{{ serveur_powerdns_zone }}. {{ serveur_powerdns_contact }}. (
|
|
{{ serveur_powerdns_serial }} ; serial
|
|
{{ serveur_powerdns_soa_refresh }} ; refresh
|
|
{{ serveur_powerdns_soa_retry }} ; retry
|
|
{{ serveur_powerdns_soa_expire }} ; expire
|
|
{{ serveur_powerdns_soa_minimum }} ) ; minimum
|
|
|
|
@ IN NS {{ serveur_powerdns_nameserver }}.{{ serveur_powerdns_zone }}.
|
|
|
|
{% for host_name in groups.get('hotes_actifs', []) | sort %}
|
|
{% set ip = hostvars[host_name].ansible_host | default('') %}
|
|
{% if ip %}
|
|
{{ ip.split('.')[3] }}.{{ ip.split('.')[2] }} IN PTR {{ host_name }}.{{ serveur_powerdns_zone }}.
|
|
{% endif %}
|
|
{% endfor %}
|