summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/classes/bind-base.pp9
-rw-r--r--manifests/classes/bind-debian.pp8
-rw-r--r--manifests/classes/bind.pp59
-rw-r--r--manifests/definitions/bind-a.pp12
-rw-r--r--manifests/definitions/bind-aaaa.pp12
-rw-r--r--manifests/definitions/bind-cname.pp12
-rw-r--r--manifests/definitions/bind-mx.pp15
-rw-r--r--manifests/definitions/bind-ns.pp12
-rw-r--r--manifests/definitions/bind-record.pp14
-rw-r--r--manifests/definitions/bind-zone.pp18
10 files changed, 170 insertions, 1 deletions
diff --git a/manifests/classes/bind-base.pp b/manifests/classes/bind-base.pp
index b31189e..eb8942e 100644
--- a/manifests/classes/bind-base.pp
+++ b/manifests/classes/bind-base.pp
@@ -1,3 +1,12 @@
+/*
+
+= Class: bind::base
+
+Declares some basic resources.
+You should NOT include this class as is, as it won't work at all!
+Please refer to Class["bind"].
+
+/*
class bind::base {
package {"bind9":
ensure => present,
diff --git a/manifests/classes/bind-debian.pp b/manifests/classes/bind-debian.pp
index f998a80..ad4e477 100644
--- a/manifests/classes/bind-debian.pp
+++ b/manifests/classes/bind-debian.pp
@@ -1,3 +1,11 @@
+/*
+
+= Class: bind::debian
+Special debian class - inherits from bind::base
+
+You should not include this class - please refer to Class["bind"]
+
+*/
class bind::debian inherits bind::base {
Service["bind9"] {
pattern => "/usr/sbin/named",
diff --git a/manifests/classes/bind.pp b/manifests/classes/bind.pp
index dcede05..67bb0e0 100644
--- a/manifests/classes/bind.pp
+++ b/manifests/classes/bind.pp
@@ -1,3 +1,62 @@
+/*
+
+= Class: bind
+Include this class to install bind9 server on your node.
+
+Requires:
+- module common (git://github.com/camptocamp/puppet-common.git)
+
+Example:
+
+node "ns1.domain.ltd" {
+ include bind
+
+= Class: bind
+Include this class to install bind9 server on your node.
+
+Requires:
+- module common (git://github.com/camptocamp/puppet-common.git)
+
+Bind documentation:
+http://www.bind9.net/manuals
+
+Limitations:
+This modules is valid for Bind 9.7.1 (squeeze version).
+For 9.7.2, it will be really limited (no view nor ACL support).
+
+
+Example:
+
+node "ns1.domain.ltd" {
+ include bind
+ bind::zone {"domain.ltd":
+ ensure => present,
+ zone_contact => "contact.domain.ltd",
+ zone_ns => $fqdn,
+ zone_serial => "2010110804",
+ zone_ttl => "604800",
+ }
+
+ bind::a {"ns $fqdn":
+ zone => "domain.ltd",
+ owner => "${fqdn}.",
+ host => $ipaddress,
+ }
+
+ bind::a {"mail.domain.ltd":
+ zone => "domain.ltd",
+ owner => "mail",
+ host => "6.6.6.6",
+ }
+
+ bind::mx {"mx1":
+ zone => "domain.ltd",
+ owner => "@",
+ priority => 1,
+ host => "mail.domain.ltd",
+ }
+}
+*/
class bind {
case $operatingsystem {
"Debian": { include bind::debian }
diff --git a/manifests/definitions/bind-a.pp b/manifests/definitions/bind-a.pp
index 37153b8..b0947d1 100644
--- a/manifests/definitions/bind-a.pp
+++ b/manifests/definitions/bind-a.pp
@@ -1,3 +1,15 @@
+/*
+
+= Definition: bind::a
+Creates an IPv4 record.
+
+Arguments:
+ *$zone*: Bind::Zone name
+ *$owner*: owner of the Resource Record
+ *$host*: target of the Resource Record
+ *$ttl*: Time to Live for the Resource Record. Optional.
+
+*/
define bind::a($ensure=present,
$zone,
$owner,
diff --git a/manifests/definitions/bind-aaaa.pp b/manifests/definitions/bind-aaaa.pp
index a20a58c..581e154 100644
--- a/manifests/definitions/bind-aaaa.pp
+++ b/manifests/definitions/bind-aaaa.pp
@@ -1,3 +1,15 @@
+/*
+
+= Definition: bind::aaaa
+Creates an IPv6 AAA record.
+
+Arguments:
+ *$zone*: Bind::Zone name
+ *$owner*: owner of the Resource Record
+ *$host*: target of the Resource Record
+ *$ttl*: Time to Live for the Resource Record. Optional.
+
+*/
define bind::aaaa($ensure=present,
$zone,
$owner,
diff --git a/manifests/definitions/bind-cname.pp b/manifests/definitions/bind-cname.pp
index e166738..d5e8209 100644
--- a/manifests/definitions/bind-cname.pp
+++ b/manifests/definitions/bind-cname.pp
@@ -1,3 +1,15 @@
+/*
+
+= Definition: bind::cname
+Creates a CNAME record.
+
+Arguments:
+ *$zone*: Bind::Zone name
+ *$owner*: owner of the Resource Record
+ *$host*: target of the Resource Record
+ *$ttl*: Time to Live for the Resource Record. Optional.
+
+*/
define bind::cname($ensure=present,
$zone,
$owner,
diff --git a/manifests/definitions/bind-mx.pp b/manifests/definitions/bind-mx.pp
index 7eb63d0..5090932 100644
--- a/manifests/definitions/bind-mx.pp
+++ b/manifests/definitions/bind-mx.pp
@@ -1,3 +1,16 @@
+/*
+
+= Definition: bind::mx
+Creates an MX record.
+
+Arguments:
+ *$zone*: Bind::Zone name
+ *$owner*: owner of the Resource Record
+ *$priority*: MX record priority
+ *$host*: target of the Resource Record
+ *$ttl*: Time to Live for the Resource Record. Optional.
+
+*/
define bind::mx($ensure=present,
$zone,
$owner,
@@ -10,7 +23,7 @@ define bind::mx($ensure=present,
ensure => $ensure,
notify => Service["bind9"],
content => template("bind/mx-record.erb"),
- require => Bind::Zone[$zone],
+ require => [Bind::Zone[$zone], Bind::A[$host]],
}
}
diff --git a/manifests/definitions/bind-ns.pp b/manifests/definitions/bind-ns.pp
index 9919f53..64a5320 100644
--- a/manifests/definitions/bind-ns.pp
+++ b/manifests/definitions/bind-ns.pp
@@ -1,3 +1,15 @@
+/*
+
+= Definition: bind::mx
+Creates an NS record.
+
+Arguments:
+ *$zone*: Bind::Zone name
+ *$owner*: owner of the Resource Record
+ *$host*: target of the Resource Record
+ *$ttl*: Time to Live for the Resource Record. Optional.
+
+*/
define bind::ns($ensure=present,
$zone,
$owner,
diff --git a/manifests/definitions/bind-record.pp b/manifests/definitions/bind-record.pp
index 5e0cf6f..8312306 100644
--- a/manifests/definitions/bind-record.pp
+++ b/manifests/definitions/bind-record.pp
@@ -1,3 +1,17 @@
+/*
+
+= Definition: bind::record
+Helper to create any record you want (but NOT MX, please refer to Bind::Mx)
+
+Arguments:
+ *$zone*: Bind::Zone name
+ *$owner*: owner of the Resource Record
+ *$host*: target of the Resource Record
+ *$record_type°: resource record type
+ *$record_class*: resource record class. Default "IN".
+ *$ttl*: Time to Live for the Resource Record. Optional.
+
+*/
define bind::record($ensure=present,
$zone,
$owner,
diff --git a/manifests/definitions/bind-zone.pp b/manifests/definitions/bind-zone.pp
index 137bcd8..091b929 100644
--- a/manifests/definitions/bind-zone.pp
+++ b/manifests/definitions/bind-zone.pp
@@ -1,3 +1,21 @@
+/*
+
+= 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,