diff --git a/manifests/init.pp b/manifests/init.pp index c659f02..df55694 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -78,6 +78,7 @@ class bind ( "${confdir}/acls.conf", "${confdir}/keys.conf", "${confdir}/views.conf", + "${confdir}/servers.conf", "${confdir}/view-mappings.txt", "${confdir}/domain-mappings.txt", ]: diff --git a/manifests/server.pp b/manifests/server.pp new file mode 100644 index 0000000..a9efd99 --- /dev/null +++ b/manifests/server.pp @@ -0,0 +1,17 @@ +# ex: syntax=puppet si ts=4 sw=4 et + +define bind::server ( + $bogus = false, + $edns = true, + $key = undef, + $transfers = undef, + $order = '10', +) { + include bind + + concat::fragment { "bind-server-${name}": + order => $order, + target => "${::bind::confdir}/servers.conf", + content => template('bind/server.erb'), + } +} diff --git a/templates/named.conf.erb b/templates/named.conf.erb index 67a043b..7e92fe2 100644 --- a/templates/named.conf.erb +++ b/templates/named.conf.erb @@ -2,6 +2,7 @@ include "<%= @confdir %>/acls.conf"; include "<%= @confdir %>/keys.conf"; include "<%= @confdir %>/views.conf"; +include "<%= @confdir %>/servers.conf"; <%- if @statistics_port -%> statistics-channels { diff --git a/templates/server.erb b/templates/server.erb new file mode 100644 index 0000000..6e2499d --- /dev/null +++ b/templates/server.erb @@ -0,0 +1,10 @@ +server <%= @name %> { + bogus <%= @bogus ? 'yes' : 'no' %>; + edns <%= @edns ? 'yes' : 'no' %>; +<%- if @key -%> + keys <%= @key %>; +<% end -%> +<%- if @transfers -%> + transfers <%= @transfers %>; +<%- end -%> +};