Set-OPS-Public/roles/serveur_dns_public/defaults/main.yml
Daniel Allaire 19bbadfb11 DNS public en production : cinq fautes que seule la production montrait
Applicateur de frontiere : ecrire n est pas charger, le chemin rien a faire charge
desormais. site-verifier compare enfin playbooks/site.yml, regenere avec le groupe.
Base TSIG dans un repertoire a pdns et pdnsutil en pdns (journal SQLite). Flux UDP 5300 :
le secondaire demande le SOA avant de transferer, garde dans P82. socket-dir de
pdns@public, et le failed_when qui taisait la notification est retire. Eprouve sur les
machines : 2 zones sur 2 tirees automatiquement, NOTIFY compte, zone interne refusee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 18:35:36 -04:00

39 lines
1.9 KiB
YAML

---
# LE SERVEUR DNS PUBLIC DU SITE — secondaire de toutes les zones publiques de ses locataires.
#
# Le locataire ECRIT sa zone (primaire cache, `autorite: primaire-cache`) ; le site la SERT.
# Ce role ne porte donc aucune donnee a lui : il recoit des repliques, signees TSIG.
serveur_dns_public_paquets:
- pdns-server
- pdns-backend-bind
- dnsutils
# LES RELATIONS AVEC LES LOCATAIRES — derivees, jamais ecrites.
#
# `scripts/site_inventaire.py` les calcule : il connait le plan du site ET le registre des
# locataires. Ce role tourne sur une machine qui n'a aucune raison de lire la carte de
# l'hebergeur. La derivation appartient a qui detient les deux sources.
#
# - ecosysteme: OPS-Chezlepro
# cle_tsig: tsig-chezlepro # le NOM de la cle, identique des deux cotes
# secret_var: vault_tsig_dns_public_chezlepro # la variable de voute qui porte le secret
# primaire: 10.17.19.11 # l'adresse DERIVEE de son autoritatif
# port: 5300
# zones: [chezlepro.ca]
serveur_dns_public_relations: []
serveur_dns_public_ecoute: "{{ ansible_host | default('0.0.0.0') }}"
serveur_dns_public_port: 53
serveur_dns_public_zones_dir: /var/lib/powerdns/zones-secondaires
serveur_dns_public_bind_config: /etc/powerdns/setops-dns-public-zones.conf
# LA BASE QUI PORTE LES CLES TSIG. Le backend `bind` seul ne sait stocker aucune metadonnee :
# sans elle, `AXFR-MASTER-TSIG` n'a nulle part ou vivre, et le transfert partirait NON
# SIGNE. Eprouve le 2026-09-16 sur PowerDNS 4.9.17 : `create-bind-db` est bien pris en
# charge par le paquet Debian, meme si `ldd` du module ne montre pas SQLite.
serveur_dns_public_dnssec_db: /var/lib/powerdns/setops-public/dnssec.db
# SONDE : le nombre de zones que ce serveur doit servir. Mise en defaut par parametre (un
# seuil impossible), comme le veut le contrat des sondes.
serveur_dns_public_sonde_attendu: >-
{{ serveur_dns_public_relations | map(attribute='zones') | flatten | length }}