Added support for forwarding dns zones
This commit is contained in:
parent
a3b6071afb
commit
28778c52bd
2 changed files with 34 additions and 15 deletions
|
@ -220,7 +220,7 @@ class dns::server::ldap inherits dns::server {
|
|||
# $name:
|
||||
# Zone name.
|
||||
# $role:
|
||||
# The role {master, slave, dynamic} of this host.
|
||||
# The role {master, slave, dynamic, forward} of this host.
|
||||
# $master:
|
||||
# IP address of DNS master for this zone if role is slave.
|
||||
# IP address and FQDN of DNS master for this zone if running as
|
||||
|
@ -228,6 +228,8 @@ class dns::server::ldap inherits dns::server {
|
|||
# $slaves:
|
||||
# IP addresess and host names of the DNS slaves for this zone.
|
||||
# Required only when using autogenrated zones.
|
||||
# $forwarders:
|
||||
# Array of forwarder IP addresses for forward role zones.
|
||||
# $source:
|
||||
# Source file to use for zone. Defaults to auto.
|
||||
# $key:
|
||||
|
@ -235,7 +237,7 @@ class dns::server::ldap inherits dns::server {
|
|||
# $keytype:
|
||||
# Key algorithm. Defaults to 'hmac-md5'.
|
||||
#
|
||||
define dns::zone($role = "master", $master = "", $slaves = [],
|
||||
define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [],
|
||||
$source = "AUTO", $key = "none", $keytype = "hmac-md5") {
|
||||
|
||||
$tmpname = regsubst($name, '([^/]+/)?([0-9]+)/([0-9\.]+\.in-addr\.arpa)', '\1\2-\3')
|
||||
|
@ -292,6 +294,12 @@ define dns::zone($role = "master", $master = "", $slaves = [],
|
|||
}
|
||||
}
|
||||
}
|
||||
"forward": {
|
||||
if $forwarders == [] {
|
||||
fail("No forwarders defined for dns::zone '${name}'")
|
||||
}
|
||||
$zonedir = ""
|
||||
}
|
||||
default: {
|
||||
fail("Unknown DNS zone type '${role}'")
|
||||
}
|
||||
|
@ -309,19 +317,21 @@ define dns::zone($role = "master", $master = "", $slaves = [],
|
|||
}
|
||||
}
|
||||
|
||||
if !defined(File["${dns::server::chroot}${zonedir}"]) {
|
||||
file { "${dns::server::chroot}${zonedir}":
|
||||
ensure => directory,
|
||||
mode => $role ? {
|
||||
"master" => "0750",
|
||||
default => "0770",
|
||||
},
|
||||
owner => "root",
|
||||
group => $dns::server::group,
|
||||
before => $role ? {
|
||||
"master" => File["${dns::server::chroot}${zonedir}db.${zone}"],
|
||||
default => undef,
|
||||
},
|
||||
if $zonedir != "" {
|
||||
if !defined(File["${dns::server::chroot}${zonedir}"]) {
|
||||
file { "${dns::server::chroot}${zonedir}":
|
||||
ensure => directory,
|
||||
mode => $role ? {
|
||||
"master" => "0750",
|
||||
default => "0770",
|
||||
},
|
||||
owner => "root",
|
||||
group => $dns::server::group,
|
||||
before => $role ? {
|
||||
"master" => File["${dns::server::chroot}${zonedir}db.${zone}"],
|
||||
default => undef,
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
9
dns/templates/zone.forward.erb
Normal file
9
dns/templates/zone.forward.erb
Normal file
|
@ -0,0 +1,9 @@
|
|||
zone "<%= zone %>" {
|
||||
type forward;
|
||||
forward only;
|
||||
forwarders {
|
||||
<% forwarders.each do |ip| -%>
|
||||
<%= ip %>;
|
||||
<% end -%>
|
||||
};
|
||||
};
|
Loading…
Add table
Reference in a new issue