From 3473694eb023f7ddf31b24a9de9cfe0bee28992f Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Wed, 21 Feb 2018 22:33:52 -0600 Subject: [PATCH] roles/named: Improve support for other zone types Only *master* zones need zone files pre-populated, as the other types of zones are populated by data named receives from queries and transfers. Other types of zones require other options, however, to be usable. This commit introduces minimal support for specifying *slave*, *forward*, and *stub* zones. --- roles/named/tasks/main.yml | 2 +- roles/named/templates/named.zones.j2 | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/roles/named/tasks/main.yml b/roles/named/tasks/main.yml index 8419b34..52c46f4 100644 --- a/roles/named/tasks/main.yml +++ b/roles/named/tasks/main.yml @@ -40,7 +40,7 @@ owner: root group: named force: no - with_items: '{{ named_zones }}' + with_items: '{{ named_zones|selectattr("type", "eq", "master")|list }}' notify: reload named - name: ensure named is configured diff --git a/roles/named/templates/named.zones.j2 b/roles/named/templates/named.zones.j2 index 0fa9261..3130385 100644 --- a/roles/named/templates/named.zones.j2 +++ b/roles/named/templates/named.zones.j2 @@ -2,8 +2,14 @@ {% for zone in named_zones %} zone "{{ zone.zone }}" { - type {{ zone.type|d('master') }}; + type {{ zone.type }}; +{% if zone.type == 'forward' %} +{% if zone.forward|d %} + forward {{ zone.forward }}; +{% endif %} +{% else %} file "dynamic/{{ zone.zone }}.zone"; +{% endif %} {% if zone.allow_update|d %} allow-update { {% for auth in zone.allow_update %} @@ -18,5 +24,19 @@ zone "{{ zone.zone }}" { {% endfor %} }; {% endif %} +{% if zone.forwarders|d %} + forwarders { +{% for forwarder in zone.forwarders %} + {{ forwarder }}; +{% endfor %} + }; +{% endif %} +{% if zone.masters|d %} + masters { +{% for master in zone.masters %} + {{ master }}; +{% endfor %} + }; +{% endif %} }; {% endfor %}