From 61a25c27afbe833b96347f7ce97d2616aab26e00 Mon Sep 17 00:00:00 2001 From: nd Date: Tue, 12 May 2020 00:03:27 +0200 Subject: [PATCH] general cleanup --- defaults/main.yml | 10 ++++++++++ handlers/main.yml | 3 +++ tasks/main.yml | 2 ++ templates/backend-bind.conf.j2 | 22 ++++++++++++---------- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index d6e0573..04fdfce 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -20,4 +20,14 @@ powerdns: "tcp-control-secret": "{{ lookup('password', '/dev/null length=64') }}" "version-string": "1" zonemeta: {} + zonemeta_defaults: + type: master + "allow-query": + - any + "allow-update": + - none + "allow-transfer": + - none + "slaves": + - none zones: {} diff --git a/handlers/main.yml b/handlers/main.yml index 2a3ea27..6244164 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,3 +1,6 @@ +- name: delete pdns bind.conf + file: path=/etc/powerdns/pdns.d/bind.conf state=absent + - name: copy bind zone file copy: src: "/var/lib/powerdns/tpl/{{ item.item }}" diff --git a/tasks/main.yml b/tasks/main.yml index 39fb0be..7ea8002 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -4,6 +4,8 @@ pkg: - pdns-server - pdns-backend-bind + notify: + - delete pdns bind.conf - name: delete debian defaults file: diff --git a/templates/backend-bind.conf.j2 b/templates/backend-bind.conf.j2 index d633820..a789042 100644 --- a/templates/backend-bind.conf.j2 +++ b/templates/backend-bind.conf.j2 @@ -3,25 +3,27 @@ options { }; {% for z in powerdns.zonemeta %} -zone "{{ z }}" IN { - type {{ powerdns.zonemeta[z].type }}; - file "/var/lib/powerdns/zones/db.{{z}}"; -{%if 'masters' in powerdns.zonemeta[z] %} +{% set zonename = z %} +{% set zone = {}|combine(powerdns.zonemeta_defaults, powerdns.zonemeta[zonename]) %} +zone "{{ zonename }}" IN { + type {{ zone.type }}; + file "/var/lib/powerdns/zones/db.{{ zonename }}"; +{% if 'masters' in zone %} masters { - {{ powerdns.zonemeta[z]['masters']|join('; ') }}; + {{ zone.masters|join('; ') }}; }; {% endif %} allow-query { - {{ powerdns.zonemeta[z]['allow-query']|default(['any'])|join('; ') }}; + {{ zone['allow-query']|join('; ') }}; }; allow-update { - {{ powerdns.zonemeta[z]['allow-update']|default(['none'])|join('; ') }}; + {{ zone['allow-update']|join('; ') }}; }; allow-transfer { - {{ powerdns.zonemeta[z]['allow-transfer']|default(['none'])|join('; ') }}; + {{ zone['allow-transfer']|join('; ') }}; }; -{%if 'notify' in powerdns.zonemeta[z] %} - notify {{ "yes" if powerdns.zonemeta[z].notify else "no" }}; +{%if 'notify' in zone %} + notify {{ "yes" if zone.notify else "no" }}; {% endif %} };