{%- set primary_ns = inventory_hostname -%} {%- if ns_server_group is defined -%} {%- set primary_ns = hostvars[groups[ns_server_group][0]]['inventory_hostname'] -%} {%- endif -%} {%- set this_name = (ns_name | d(inventory_hostname)) -%} {%- set this_primary_name = (hostvars[primary_ns]['ns_name'] | d(hostvars[primary_ns]['inventory_hostname'])) -%} {%- set this_tld = (hostvars[primary_ns]['ns_tld'] | d(ns_tld) | d(int_tld)) -%} $ORIGIN {{ this_tld }}. $TTL {{ ns_ttl | d(300) }} @ IN SOA {{ this_name ~ '.' ~ this_tld }}. {{ (ns_admin | replace('@', '.')) if ns_admin is defined else ('admin' ~ '.' ~ this_tld) }}. ( 2021010101 {{ ns_refresh | d(1200) }} {{ ns_retry | d(300) }} {{ ns_expire | d(1209600) }} {{ ns_neg_ttl | d(300) }} ) {% if ns_server_group is defined -%} {% for host in groups[ns_server_group] -%} @ IN NS {{ (hostvars[host]['ns_name'] | d(hostvars[host]['inventory_hostname'])) ~ '.' ~ this_tld }}. {{ hostvars[host]['ns_name'] | d(hostvars[host]['inventory_hostname']) }} IN A {{ hostvars[host]['ansible_host'] }} {% endfor -%} {% else -%} @ IN NS {{ this_primary_name ~ '.' ~ this_tld }}. {{ this_primary_name }} IN A {{ ansible_host }} {% endif -%}