summaryrefslogtreecommitdiff
path: root/manifests/zone.pp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--manifests/zone.pp84
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',