Skip to content
Snippets Groups Projects
Commit 846f8bcb authored by ale's avatar ale
Browse files

Configure the resolver on dnsmasq

The current options are: external (google), or internal (pointing at a
specific float service, "frontend" by default).
parent 9313e0a8
No related branches found
No related tags found
No related merge requests found
# How to configure resolv.conf, one of the following options:
# 'ignore' - do nothing and leave resolv.conf alone
# 'localhost' - use localhost as the name server (presumably a cache)
# 'internal:NET' - use the frontend hosts as resolvers, over the
# specified overlay network NET
# 'external' - use Google Public DNS.
resolver_mode: "ignore"
resolver:
# Mode should be one of 'internal', 'default'.
mode: internal
service: frontend
overlay_network: vpn0
---
- listen: reload dnsmasq
command: "systemctl reload dnsmasq.service"
---
- name: Configure resolv.conf
- name: Configure upstream resolver for dnsmasq
template:
src: "resolv.conf.j2"
dest: "/etc/resolv.conf"
when: "resolver_mode != 'ignore'"
src: "dnsmasq.conf.j2"
dest: "/etc/dnsmasq.conf"
notify: reload dnsmasq
{% if resolver.mode == 'internal' %}
{% set dns_overlay_net = resolver.get('overlay_network', net_overlays[0].name) %}
{% set dns_service_group = services[resolver.get('service', 'frontend')].group_name %}
{% for h in groups[dns_service_group] | sort %}
server={{ hostvars[h]['ip_' + dns_overlay_net] }}
{% endfor %}
{% else %}
server=8.8.8.8
server=8.8.4.4
{% endif %}
{% if resolver_mode == 'localhost' %}
nameserver 127.0.0.1
options edns0
{% elif resolver_mode.startswith('internal:') %}
{% set dns_overlay_net = resolver_mode[9:] %}
{% for h in services['dns'].hosts | sort %}
nameserver {{ hostvars[h]['ip_' + dns_overlay_net] }}
{% endfor %}
options edns0 rotate
{% else %}
nameserver 8.8.8.8
nameserver 8.8.4.4
options edns0
{% endif %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment