Added support for using fixed dns zone files.
This commit is contained in:
parent
1fb5c59940
commit
832fb1f316
1 changed files with 55 additions and 38 deletions
|
@ -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"],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue