summaryrefslogtreecommitdiff
path: root/manifests/zone.pp
diff options
context:
space:
mode:
authorMarc Fournier <marc.fournier@camptocamp.com>2011-11-15 13:13:29 +0100
committerMarc Fournier <marc.fournier@camptocamp.com>2011-11-15 13:13:29 +0100
commit61452bec75976590a0293870d410ed0d3c80f843 (patch)
tree34cf56382b6489a3e680cfa9f49398b62ced59cd /manifests/zone.pp
parentfa66d16ad547f68655b4eab9672592d63821e8ca (diff)
downloadpuppet-bind-61452bec75976590a0293870d410ed0d3c80f843.tar.gz
puppet-bind-61452bec75976590a0293870d410ed0d3c80f843.tar.bz2
file renaming to be compliant with recommended module structure.
Diffstat (limited to 'manifests/zone.pp')
-rw-r--r--manifests/zone.pp88
1 files changed, 88 insertions, 0 deletions
diff --git a/manifests/zone.pp b/manifests/zone.pp
new file mode 100644
index 0000000..64da5da
--- /dev/null
+++ b/manifests/zone.pp
@@ -0,0 +1,88 @@
+/*
+
+= Definition: bind::zone
+Creates a valid Bind9 zone.
+
+Arguments:
+ *$is_slave*: Boolean. Is your zone a slave or a master? Default false
+ *$zone_ttl*: Time period. Time to live for your zonefile (master only)
+ *$zone_contact*: Valid contact record (master only)
+ *$zone_serial*: Integer. Zone serial (master only)
+ *$zone_refresh*: Time period. Time between each slave refresh (master only)
+ *$zone_retry*: Time period. Time between each slave retry (master only)
+ *$zone_expiracy*: Time period. Slave expiracy time (master only)
+ *$zone_ns*: Valid NS for this zone (master only)
+ *$zone_xfers*: IPs. Valid xfers for zone (master only)
+ *$zone_masters*: IPs. Valid master for this zone (slave only)
+
+*/
+define bind::zone($ensure=present,
+ $is_slave=false,
+ $zone_ttl=false,
+ $zone_contact=false,
+ $zone_serial=false,
+ $zone_refresh="3h",
+ $zone_retry="1h",
+ $zone_expiracy="1w",
+ $zone_ns=false,
+ $zone_xfers=false,
+ $zone_masters=false) {
+
+ common::concatfilepart {"bind.zones.${name}":
+ ensure => $ensure,
+ notify => Service["bind9"],
+ file => "/etc/bind/zones/${name}.conf",
+ require => Package["bind9"],
+ }
+
+ common::concatfilepart {"named.local.zone.${name}":
+ ensure => $ensure,
+ notify => Service["bind9"],
+ file => "/etc/bind/named.conf.local",
+ content => "include \"/etc/bind/zones/${name}.conf\";\n",
+ require => Package["bind9"],
+ }
+
+ if $is_slave {
+ if !$zone_masters {
+ fail "No master defined for ${name}!"
+ }
+ Common::Concatfilepart["bind.zones.${name}"] {
+ content => template("bind/zone-slave.erb"),
+ }
+## END of slave
+ } else {
+ if !$zone_contact {
+ fail "No contact defined for ${name}!"
+ }
+ if !$zone_ns {
+ fail "No ns defined for ${name}!"
+ }
+ if !$zone_serial {
+ fail "No serial defined for ${name}!"
+ }
+ if !$zone_ttl {
+ fail "No ttl defined for ${name}!"
+ }
+
+ Common::Concatfilepart["bind.zones.${name}"] {
+ content => template("bind/zone-master.erb"),
+ }
+
+ common::concatfilepart {"bind.00.${name}":
+ ensure => $ensure,
+ file => "/etc/bind/pri/${name}.conf",
+ content => template("bind/zone-header.erb"),
+ require => Package["bind9"],
+ }
+
+ file {"/etc/bind/pri/${name}.conf.d":
+ ensure => directory,
+ mode => 0700,
+ purge => true,
+ recurse => true,
+ backup => false,
+ force => true,
+ }
+ }
+}