# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# Make changes to  /etc/resolvconf/resolv.conf.d instead
# Modified by Ansible
{% if unbound_listen_on_default %}
{% for host in groups['head'] %}
nameserver {{ hostvars[host].ansible_default_ipv4.address }}
{% endfor %}
{% endif %}
{% if dns_servers is defined %}
{% for ns in dns_servers %}
nameserver {{ ns }}
{% endfor %}
{% endif %}
