Added support for using fixed dns zone files.

This commit is contained in:
Timo Mkinen 2012-01-20 15:28:38 +02:00
parent 1fb5c59940
commit 832fb1f316

View file

@ -155,8 +155,10 @@ class dns::server {
# IP address and FQDN or hostname of the DNS master for this zone. # IP address and FQDN or hostname of the DNS master for this zone.
# $slaves: # $slaves:
# IP addresess and FQDNs or hostnames of the DNS slaves for this zone. # IP addresess and FQDNs or hostnames of the DNS slaves for this zone.
# $source:
# Source file to use for zone. Defaults to auto.
# #
define dns::zone($role = "master", $master = [], $slaves = []) { define dns::zone($role = "master", $master = [], $slaves = [], $source = "AUTO") {
$zone = $name $zone = $name
case $role { case $role {
@ -205,43 +207,58 @@ define dns::zone($role = "master", $master = [], $slaves = []) {
} }
if $role == "master" { if $role == "master" {
file { "${dns::server::chroot}${zonedir}/db.${zone}": if $source != "AUTO" {
ensure => present, file { "${dns::server::chroot}${zonedir}/db.${zone}":
content => template("dns/db.erb"), ensure => present,
mode => 0640, source => $source,
owner => "root", mode => 0640,
group => $dns::server::group, owner => "root",
require => $operatingsystem ? { group => $dns::server::group,
"openbsd" => undef, require => $operatingsystem ? {
default => Package["bind"], "openbsd" => undef,
}, default => Package["bind"],
notify => Service["named"], },
} notify => Service["named"],
file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic": }
ensure => present, } else {
source => [ "puppet:///files/dns/db.${zone}-dynamic.${homename}", file { "${dns::server::chroot}${zonedir}/db.${zone}":
"puppet:///modules/dns/empty", ], ensure => present,
mode => 0640, content => template("dns/db.erb"),
owner => "root", mode => 0640,
group => $dns::server::group, owner => "root",
require => $operatingsystem ? { group => $dns::server::group,
"openbsd" => undef, require => $operatingsystem ? {
default => Package["bind"], "openbsd" => undef,
}, default => Package["bind"],
notify => Service["named"], },
} notify => Service["named"],
file { "${dns::server::chroot}${zonedir}/db.${zone}-static": }
ensure => present, file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic":
source => [ "puppet:///files/dns/db.${zone}-static.${homename}", ensure => present,
"puppet:///modules/dns/empty", ], source => [ "puppet:///files/dns/db.${zone}-dynamic.${homename}",
mode => 0640, "puppet:///modules/dns/empty", ],
owner => "root", mode => 0640,
group => $dns::server::group, owner => "root",
require => $operatingsystem ? { group => $dns::server::group,
"openbsd" => undef, require => $operatingsystem ? {
default => Package["bind"], "openbsd" => undef,
}, default => Package["bind"],
notify => Service["named"], },
notify => Service["named"],
}
file { "${dns::server::chroot}${zonedir}/db.${zone}-static":
ensure => present,
source => [ "puppet:///files/dns/db.${zone}-static.${homename}",
"puppet:///modules/dns/empty", ],
mode => 0640,
owner => "root",
group => $dns::server::group,
require => $operatingsystem ? {
"openbsd" => undef,
default => Package["bind"],
},
notify => Service["named"],
}
} }
} }