diff --git a/data/osfamily/Debian.yaml b/data/osfamily/Debian.yaml index 4660f6b..8d30019 100644 --- a/data/osfamily/Debian.yaml +++ b/data/osfamily/Debian.yaml @@ -8,5 +8,6 @@ bind::defaults::nsupdate_package: 'dnsutils' bind::defaults::confdir: '/etc/bind' bind::defaults::namedconf: '/etc/bind/named.conf' bind::defaults::cachedir: '/var/cache/bind' +bind::defaults::default_zones_include: '/etc/bind/named.conf.default-zones' bind::updater::keydir: '/etc/bind/keys' diff --git a/data/osfamily/RedHat.yaml b/data/osfamily/RedHat.yaml index e405356..1fd9c20 100644 --- a/data/osfamily/RedHat.yaml +++ b/data/osfamily/RedHat.yaml @@ -10,5 +10,7 @@ bind::defaults::confdir: '/etc/named' bind::defaults::namedconf: '/etc/named.conf' bind::defaults::cachedir: '/var/named' bind::defaults::default_zones_warning: true +bind::defaults::default_zones_include: '/etc/named.default-zones.conf' +bind::defaults::default_zones_source: 'puppet:///module/bind/RedHat/named.default-zones.conf' bind::updater::keydir: '/etc/named/keys' diff --git a/files/RedHat/named.default-zones.conf b/files/RedHat/named.default-zones.conf new file mode 100644 index 0000000..3d49630 --- /dev/null +++ b/files/RedHat/named.default-zones.conf @@ -0,0 +1,6 @@ +zone "." IN { + type hint; + file "named.ca"; +}; + +include "/etc/named.rfc1912.zones"; diff --git a/manifests/defaults.pp b/manifests/defaults.pp index 7b0b1a1..e8cec51 100644 --- a/manifests/defaults.pp +++ b/manifests/defaults.pp @@ -13,6 +13,8 @@ class bind::defaults ( $nsupdate_package = undef, $managed_keys_directory = undef, $default_zones_warning = undef, + $default_zones_include = undef, + $default_zones_source = undef, ) { unless is_bool($supported) { fail('Please ensure that the dependencies of the bind module are installed and working correctly') diff --git a/manifests/init.pp b/manifests/init.pp index d38b3d7..39bed29 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -62,6 +62,12 @@ class bind ( content => template('bind/named.conf.erb'), } + if $default_zones_source { + file { $default_zones_include: + source => $default_zones_source, + } + } + class { 'bind::keydir': keydir => "${confdir}/keys", } diff --git a/manifests/view.pp b/manifests/view.pp index 467fc88..dfab715 100644 --- a/manifests/view.pp +++ b/manifests/view.pp @@ -12,6 +12,7 @@ define bind::view ( $order = '10', ) { $confdir = $::bind::confdir + $default_zones_include = $::bind::default_zones_include concat::fragment { "bind-view-${name}": order => $order, diff --git a/templates/view.erb b/templates/view.erb index 9270391..661c2c3 100644 --- a/templates/view.erb +++ b/templates/view.erb @@ -44,8 +44,8 @@ view "<%= @name %>" { }; <%- end -%> <%- end -%> -<%- if scope.lookupvar('osfamily') == 'Debian' -%> - include "<%= @confdir %>/named.conf.default-zones"; +<%- if @default_zones_include -%> + include "<%= @default_zones_include %>"; <%- end -%> <%- Array(@zones).each do |zone| -%>