Une VM ne peut pas s'installer sans resoudre des noms. PowerDNS repond UNIQUEMENT pour la zone souveraine et ne recurse pour personne : il manquait un resolveur recursif. `client_unbound` est l'outil ecrit pour ca — il rejoint `client_journal` et `client_metrique` parmi les integrations universelles. `infra-dns-01` est exempte (PowerDNS occupe son port 53), et `serveur_powerdns_listen_addresses` passe de 0.0.0.0 a l'adresse de l'hote pour laisser 127.0.0.1:53 libre. Mais l'appartenance au groupe est AUSSI ce qui ouvre le port 53 a la frontiere : en exemptant la machine, je lui retirais le droit de resoudre. `serveur_powerdns` declare donc son propre flux sortant — il ne recurse pour personne, mais doit resoudre pour lui-meme. Nouvel intrant `dns_amorcage`, derive jusqu'a `make creer-vm`. Cloud-init l'ecrit bien mais sans effet : `dns-nameservers` exige `resolvconf`, absent du gabarit, et installer resolvconf demande apt, qui demande la resolution. `serveur_debian` pose donc le resolveur en pre_tasks, avant le premier apt, avec une garde qui respecte la bascule ulterieure de client_unbound. Defaut corrige en chemin : `_intrants_communs()` lisait `instance/` en dur ; le chemin derive maintenant de l'inventaire recu, et un test le prouve. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
41 lines
1.6 KiB
YAML
41 lines
1.6 KiB
YAML
---
|
|
serveur_powerdns_packages:
|
|
- pdns-server
|
|
- pdns-backend-bind
|
|
- bind9-utils
|
|
- dnsutils
|
|
|
|
serveur_powerdns_service_name: "pdns"
|
|
serveur_powerdns_zone_directory: "/etc/powerdns/zones"
|
|
serveur_powerdns_bind_config: "/etc/powerdns/bindbackend.conf"
|
|
serveur_powerdns_zone: "{{ domaine_interne }}"
|
|
serveur_powerdns_nameserver: "ns1"
|
|
serveur_powerdns_contact: "hostmaster.{{ domaine_interne }}"
|
|
serveur_powerdns_ttl: 3600
|
|
serveur_powerdns_serial: 2026062201
|
|
serveur_powerdns_soa_refresh: 3600
|
|
serveur_powerdns_soa_retry: 900
|
|
serveur_powerdns_soa_expire: 1209600
|
|
serveur_powerdns_soa_minimum: 3600
|
|
# L'adresse du tenant SEULEMENT, pas `0.0.0.0` : lier toutes les interfaces occupe aussi
|
|
# `127.0.0.1:53`, ou un resolveur recursif local voudrait s'installer. Ce n'est pas un
|
|
# probleme theorique — c'est la raison pour laquelle `client_unbound` exempte cet hote.
|
|
# PowerDNS reste autoritatif pur : il repond pour la zone souveraine et REFUSE le reste.
|
|
serveur_powerdns_listen_addresses:
|
|
- "{{ ansible_host | default('0.0.0.0') }}"
|
|
serveur_powerdns_allow_axfr_ips: []
|
|
|
|
# Enregistrements additionnels geres explicitement.
|
|
serveur_powerdns_records:
|
|
- name: "dns"
|
|
type: "CNAME"
|
|
value: "ns1.{{ serveur_powerdns_zone }}."
|
|
|
|
# Groupes dont les hotes actifs avec ansible_host seront ajoutes a la zone.
|
|
serveur_powerdns_inventory_groups:
|
|
- hotes_actifs
|
|
|
|
# Publier des A pour les FQDN d'exposition (champ 'expose' des applications) vers l'edge
|
|
# qui les sert (domaines.edge). Ferme la boucle : declarer 'expose' -> vhost + cert + DNS.
|
|
serveur_powerdns_publier_expositions: true
|
|
serveur_powerdns_expositions: []
|