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 %}