1ed268acda
The router runs dnsmasq as a DNS forwarder and DHCP relay from hand-edited config, so its state is not reproducible from code. - add `dnsmasq` module installing the package, rendering `/etc/dnsmasq.conf` from class params and running the service - cover listen addresses/interfaces, bind mode, upstream servers, no-resolv, cache-size, domain-needed, bogus-priv, per-domain forwards and dhcp-relay - add raw `options` lines for anything else - add `purge_config_dir` (default off) to remove unmanaged `/etc/dnsmasq.d` files Reviewed-on: #537 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
41 lines
881 B
Plaintext
41 lines
881 B
Plaintext
# THIS FILE IS MANAGED BY PUPPET
|
|
user=dnsmasq
|
|
group=dnsmasq
|
|
conf-dir=<%= @config_dir %>,.rpmnew,.rpmsave,.rpmorig
|
|
|
|
<% @interfaces.each do |iface| -%>
|
|
interface=<%= iface %>
|
|
<% end -%>
|
|
<% unless @listen_addresses.empty? -%>
|
|
listen-address=<%= @listen_addresses.join(',') %>
|
|
<% end -%>
|
|
<% unless @bind_mode == 'none' -%>
|
|
<%= @bind_mode %>
|
|
<% end -%>
|
|
<% if @no_resolv -%>
|
|
no-resolv
|
|
<% end -%>
|
|
<% if @domain_needed -%>
|
|
domain-needed
|
|
<% end -%>
|
|
<% if @bogus_priv -%>
|
|
bogus-priv
|
|
<% end -%>
|
|
<% if @cache_size -%>
|
|
cache-size=<%= @cache_size %>
|
|
<% end -%>
|
|
<% @servers.each do |server| -%>
|
|
server=<%= server %>
|
|
<% end -%>
|
|
<% @forwards.keys.sort.each do |domain| -%>
|
|
<% @forwards[domain].each do |server| -%>
|
|
server=/<%= domain %>/<%= server %>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% @dhcp_relays.each do |relay| -%>
|
|
dhcp-relay=<%= relay %>
|
|
<% end -%>
|
|
<% @options.each do |line| -%>
|
|
<%= line %>
|
|
<% end -%>
|