diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/classes/bind-base.pp | 9 | ||||
-rw-r--r-- | manifests/classes/bind-debian.pp | 8 | ||||
-rw-r--r-- | manifests/classes/bind.pp | 59 | ||||
-rw-r--r-- | manifests/definitions/bind-a.pp | 12 | ||||
-rw-r--r-- | manifests/definitions/bind-aaaa.pp | 12 | ||||
-rw-r--r-- | manifests/definitions/bind-cname.pp | 12 | ||||
-rw-r--r-- | manifests/definitions/bind-mx.pp | 15 | ||||
-rw-r--r-- | manifests/definitions/bind-ns.pp | 12 | ||||
-rw-r--r-- | manifests/definitions/bind-record.pp | 14 | ||||
-rw-r--r-- | manifests/definitions/bind-zone.pp | 18 |
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, |