diff options
Diffstat (limited to '')
-rw-r--r-- | manifests/zone.pp | 84 |
1 files changed, 50 insertions, 34 deletions
diff --git a/manifests/zone.pp b/manifests/zone.pp index eb2adbd..b0334b3 100644 --- a/manifests/zone.pp +++ b/manifests/zone.pp @@ -98,55 +98,71 @@ define dns::zone ( ) { $zone_ = dns::ensure_ending_period($zone) - $zone_serial = $facts.get("dns_zone_serial.'${zone_}'", 0) - - $params = { - 'rname' => $rname, - 'mname' => $mname, - 'refresh' => $refresh, - 'expire' => $expire, - 'negative_ttl' => $negative_ttl, - 'soa_ttl' => $soa_ttl, - 'retry' => $retry, - 'owner' => $owner, - 'group' => $group, - 'backup' => $backup, - 'selinux_ignore_defaults' => $selinux_ignore_defaults, - 'selrange' => $selrange, - 'selrole' => $selrole, - 'seltype' => $seltype, - 'seluser' => $seluser, - 'show_diff' => $show_diff, - 'ensure' => $ensure, - 'named_checkzone' => $dns::checkzone, - 'named_checkconf' => $dns::checkconf, - 'rndc' => $dns::rndc, - 'directory' => $dns::zone_directory, - } - if $ensure == 'present' { + dns_zone2 { $zone_: + ensure => 'present', + rname => $rname, + mname => $mname, + refresh => $refresh, + expire => $expire, + negative_ttl => $negative_ttl, + soa_ttl => $soa_ttl, + retry => $retry, + owner => $owner, + group => $group, + backup => $backup, + selinux_ignore_defaults => $selinux_ignore_defaults, + selrange => $selrange, + selrole => $selrole, + seltype => $seltype, + seluser => $seluser, + show_diff => $show_diff, + named_checkzone => $dns::checkzone, + named_checkconf => $dns::checkconf, + rndc => $dns::rndc, + directory => $dns::zone_directory, + } + if $dynamic { exec { "Dns::zone freeze ${zone_}": command => [$dns::rndc, 'freeze', $zone_], refreshonly => true, + notify => Dns_zone2[$zone_], } - ~> dns_zone2 { $zone_: - * => $params, - } - ~> exec { "Dns::zone thaw ${zone_}": + + exec { "Dns::zone thaw ${zone_}": command => [$dns::rndc, 'thaw', $zone_], refreshonly => true, subscribe => Dns_zone2[$zone_], } } else { - dns_zone2 { $zone_: - * => $params, - } - ~> exec { "Dns::zone reload ${zone_}": + exec { "Dns::zone reload ${zone_}": command => [$dns::rndc, 'reload', $zone_], refreshonly => true, + subscribe => Dns_zone2[$zone_], + } + } + + $ns.each |$name| { + dns::record { "${zone_} NS ${name}": + zone => $zone_, + key => '@', + type => 'NS', + value => $name, } } + + $records.each |$record| { + $name = "${zone_} ${record['type']} ${record['key']} ${record['value']}" + dns::record { $name: + zone => $zone_, + type => $record['type'], + value => $record['value'], + cls => $record['dns_class'] or 'IN', + ttl => $record['ttl'], + } + } + } else { dns_zone2 { $zone_: ensure => 'absent', |