diff --git a/dns/manifests/init.pp b/dns/manifests/init.pp index b545cc2..56fa1c6 100644 --- a/dns/manifests/init.pp +++ b/dns/manifests/init.pp @@ -271,7 +271,13 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], "default": { $view = "" } default: { $view = regsubst(dirname($tmpname), '^(.*)', '\1/') } } - $zone = basename($tmpname) + if $name =~ /\.in-addr\.arpa$/ { + $zonefile = basename($tmpname) + $zone = regsubst($zonefile, '-', '/') + } else { + $zonefile = basename($tmpname) + $zone = $zonefile + } case $role { "master": { @@ -337,7 +343,7 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], mode => "0750", owner => "root", group => $dns::server::group, - before => File["${dns::server::chroot}${dns::server::confdir}/${view}zone.${zone}"], + before => File["${dns::server::chroot}${dns::server::confdir}/${view}zone.${zonefile}"], } } } @@ -353,14 +359,14 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], owner => "root", group => $dns::server::group, before => $role ? { - "master" => File["${dns::server::chroot}${zonedir}db.${zone}"], + "master" => File["${dns::server::chroot}${zonedir}db.${zonefile}"], default => undef, }, } } } - file { "${dns::server::chroot}${dns::server::confdir}/${view}zone.${zone}": + file { "${dns::server::chroot}${dns::server::confdir}/${view}zone.${zonefile}": ensure => present, content => template("dns/zone.$role.erb"), mode => "0640", @@ -375,7 +381,7 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], if $role == "master" and $zone != "." { if $source != "AUTO" { - file { "${dns::server::chroot}${zonedir}db.${zone}": + file { "${dns::server::chroot}${zonedir}db.${zonefile}": ensure => present, source => $source, mode => "0640", @@ -388,7 +394,7 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], notify => Exec["generate-named-conf"], } } else { - file { "${dns::server::chroot}${zonedir}/db.${zone}": + file { "${dns::server::chroot}${zonedir}/db.${zonefile}": ensure => present, content => template("dns/db.erb"), mode => "0640", @@ -401,7 +407,7 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], notify => Exec["named-checkconf"], } - file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic": + file { "${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic": ensure => present, mode => "0640", owner => "root", @@ -412,7 +418,7 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], }, notify => Exec["named-checkconf"], } - file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d": + file { "${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic.d": ensure => directory, mode => "0640", owner => "root", @@ -428,11 +434,11 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], notify => Service["named"], } - file { "${dns::server::chroot}${zonedir}/db.${zone}-static": + file { "${dns::server::chroot}${zonedir}/db.${zonefile}-static": ensure => present, source => [ - "puppet:///files/dns/db.${zone}-static.${homename}", - "puppet:///files/dns/db.${zone}-static", + "puppet:///files/dns/db.${zonefile}-static.${homename}", + "puppet:///files/dns/db.${zonefile}-static", "puppet:///modules/dns/empty", ], mode => "0640", @@ -445,9 +451,9 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], notify => Exec["named-checkconf"], } - exec { "update-db.${zone}-dynamic": + exec { "update-db.${zonefile}-dynamic": path => "/bin:/usr/bin:/sbin:/usr/sbin", - command => "/bin/sh -c 'find db.${zone}-dynamic.d -name rr.\\* | xargs cat > db.${zone}-dynamic'", + command => "/bin/sh -c 'find db.${zonefile}-dynamic.d -name rr.\\* | xargs cat > db.${zonefile}-dynamic'", cwd => "${dns::server::chroot}${zonedir}", user => "root", refreshonly => true, @@ -455,16 +461,16 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [], } Dns::Node::Record <<| tag == $zone |>> { - dbdir => "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d", - notify => Exec["update-db.${zone}-dynamic"], - require => File["${dns::server::chroot}${zonedir}/db.${zone}-dynamic", - "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d"], + dbdir => "${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic.d", + notify => Exec["update-db.${zonefile}-dynamic"], + require => File["${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic", + "${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic.d"], } Dns::Node::Record::Reverse <<| tag == $zone |>> { - dbdir => "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d", - notify => Exec["update-db.${zone}-dynamic"], - require => File["${dns::server::chroot}${zonedir}/db.${zone}-dynamic", - "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d"], + dbdir => "${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic.d", + notify => Exec["update-db.${zonefile}-dynamic"], + require => File["${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic", + "${dns::server::chroot}${zonedir}/db.${zonefile}-dynamic.d"], } } }