Added support for master and slave zones.

This commit is contained in:
Jussi 2012-01-19 12:34:52 +02:00 committed by Timo Mkinen
parent 7f09562685
commit 655a0aaf0e

View file

@ -72,39 +72,6 @@ class dns::server {
require => Exec["rndc-confgen"], require => Exec["rndc-confgen"],
} }
define populate_zones() {
$zone = $name
file { "${confdir}/db.${zone}":
ensure => present,
content => template("dns/db.erb"),
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
file { "${confdir}/db.${zone}-dynamic":
ensure => present,
source => [ "puppet:///files/dns/db.${zone}-dynamic.${homename}",
"puppet:///files/dns/empty", ],
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
file { "${confdir}/db.${zone}-static":
ensure => present,
source => [ "puppet:///files/dns/db.${zone}-static.${homename}",
"puppet:///files/dns/empty", ],
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
}
case $operatingsystem { case $operatingsystem {
"ubuntu": { "ubuntu": {
$ipaddr = $dns_listener_ipaddr $ipaddr = $dns_listener_ipaddr
@ -119,14 +86,13 @@ class dns::server {
} }
file { "${confdir}/named.conf.options": file { "${confdir}/named.conf.options":
ensure => present, ensure => present,
content => template("dns/named.conf.options.erb"), content => template("dns/named.conf.options.erb"),
mode => 0640, mode => 0640,
owner => "root", owner => "root",
group => "bind", group => "bind",
require => Package["bind"], require => Package["bind"],
notify => Service["named"], notify => Service["named"],
} }
populate_zones { $dns_zones: }
} }
default: { default: {
file { "${confdir}/named.conf": file { "${confdir}/named.conf":
@ -147,6 +113,77 @@ class dns::server {
} }
# Configure interface.
#
# === Parameters
#
# $name:
# Zone name.
# $role:
# The role {master, slave} of this host.
# $master:
# IP address and FQDN or hostname of the DNS master for this zone.
# $slaves:
# IP addresess and FQDNs or hostnames of the DNS slaves for this zone.
#
define dns::zone($role = "master", $master = {}, $slaves = {}) {
$zone = $name
case $operatingsystem {
"centos","fedora": {
$confdir = "/var/named/chroot/etc"
}
"ubuntu": {
$confdir = "/etc/bind"
}
default: {
$confdir = "/var/named/etc"
}
}
file { "${confdir}/zone.${zone}":
ensure => present,
content => template("dns/zone.$role.erb"),
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
file { "${confdir}/db.${zone}":
ensure => present,
content => template("dns/db.erb"),
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
file { "${confdir}/db.${zone}-dynamic":
ensure => present,
source => [ "puppet:///files/dns/db.${zone}-dynamic.${homename}",
"puppet:///files/dns/empty", ],
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
file { "${confdir}/db.${zone}-static":
ensure => present,
source => [ "puppet:///files/dns/db.${zone}-static.${homename}",
"puppet:///files/dns/empty", ],
mode => 0640,
owner => "root",
group => "bind",
require => Package["bind"],
notify => Service["named"],
}
}
# Install dynamic DNS update script # Install dynamic DNS update script
# #
# === Global variables # === Global variables