La zone interne inclut désormais un A pour chaque FQDN d'exposition (expose des applications) vers l'edge qui le sert (domaines.edge), via expositions_des_applications. Déclarer expose → vhost + SAN cert + DNS. Prouvé : dig @infra-dns-01 grafana/keycloak.lab.chezlepro.internal → edge .21. Limite : PowerDNS est autoritatif (pas récursif) — pour que les nœuds l'utilisent sans casser Internet, il faut un récursif (pdns-recursor) ou garder le plancher /etc/hosts. Ne pas repointer client_dns naïvement. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35 lines
1.4 KiB
Django/Jinja
35 lines
1.4 KiB
Django/Jinja
$ORIGIN {{ serveur_powerdns_zone }}.
|
|
$TTL {{ serveur_powerdns_ttl }}
|
|
@ IN SOA {{ serveur_powerdns_nameserver }}.{{ serveur_powerdns_zone }}. {{ serveur_powerdns_contact }}. (
|
|
{{ serveur_powerdns_serial }}
|
|
{{ serveur_powerdns_soa_refresh }}
|
|
{{ serveur_powerdns_soa_retry }}
|
|
{{ serveur_powerdns_soa_expire }}
|
|
{{ serveur_powerdns_soa_minimum }}
|
|
)
|
|
|
|
@ IN NS {{ serveur_powerdns_nameserver }}.{{ serveur_powerdns_zone }}.
|
|
{{ serveur_powerdns_nameserver }} IN A {{ hostvars[groups['serveur_powerdns'][0]].ansible_host | default('127.0.0.1') }}
|
|
|
|
{% for record in serveur_powerdns_records %}
|
|
{{ record.name }} IN {{ record.type }} {{ record.value }}
|
|
{% endfor %}
|
|
|
|
{% set emitted = [] %}
|
|
{% for group_name in serveur_powerdns_inventory_groups %}
|
|
{% for host_name in groups.get(group_name, []) | sort %}
|
|
{% if hostvars[host_name].ansible_host is defined and host_name not in emitted %}
|
|
{{ host_name }} IN A {{ hostvars[host_name].ansible_host }}
|
|
{% set _ = emitted.append(host_name) %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
{% if serveur_powerdns_publier_expositions | default(false) %}
|
|
{% for expo in serveur_powerdns_expositions | default([]) if expo.domaine == serveur_powerdns_zone %}
|
|
{% set edge_hosts = groups.get(expo.edge, []) %}
|
|
{% if edge_hosts and hostvars[edge_hosts[0]].ansible_host is defined %}
|
|
{{ expo.fqdn[:-(serveur_powerdns_zone | length + 1)] }} IN A {{ hostvars[edge_hosts[0]].ansible_host }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|