# Managed by Ansible # Bootstrap name resolution only. # Full service discovery is handled by BIND. 127.0.0.1 localhost ::1 localhost {% set net = hostvars['fw']['network'] %} {% set server_hosts = ( net | dict2items | rejectattr('key', 'equalto', 'dns_serial') | rejectattr('key', 'equalto', 'subnet') | rejectattr('key', 'equalto', 'reverse_zone') | selectattr('value.ipv4.server', 'defined') | selectattr('value.ipv6.server', 'defined') | map(attribute='key') | list ) %} # node canonical names {% for ip in ['ipv4', 'ipv6'] %} # {{ ip }} ## vmm init {{ "%-36s" | format(net['vmm'][ip]['client']) }} init.vmm init.vmm.{{ domain['internal'] }} ## console {{ "%-36s" | format(net['console'][ip]['client']) }} console console.{{ domain['internal'] }} ## nodes {% for service in server_hosts %} {{ "%-36s" | format(net[service][ip]['server']) }} {{ service }} {{ service }}.{{ domain['internal'] }}{% for alias in net[service]['alias'] | default([]) %}{% if service in ['vmm', 'fw'] and alias != 'init.vmm' %} {{ alias }}.{{ domain['internal'] }}{% endif %}{% endfor %}{{ '' }} {% endfor %} {% endfor %}