Files
ilnmors-homelab/config/node/common/hosts.j2
T

35 lines
1.2 KiB
Django/Jinja

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