Changed slave zone handling from dns module.

This commit is contained in:
Timo Mkinen 2012-03-22 12:27:10 +02:00
parent 4cb660dcaf
commit 9ab2bf1bfd
2 changed files with 12 additions and 8 deletions

View file

@ -183,13 +183,16 @@ class dns::server {
# $role: # $role:
# The role {master, slave} of this host. # The role {master, slave} of this host.
# $master: # $master:
# IP address and FQDN or hostname of the DNS master for this zone. # 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
# master and using autogenerated zone.
# $slaves: # $slaves:
# IP addresess and host names of the DNS slaves for this zone. # IP addresess and host names of the DNS slaves for this zone.
# Required only when using autogenrated zones.
# $source: # $source:
# Source file to use for zone. Defaults to auto. # Source file to use for zone. Defaults to auto.
# #
define dns::zone($role = "master", $master = [], $slaves = [], $source = "AUTO") { define dns::zone($role = "master", $master = "", $slaves = [], $source = "AUTO") {
$zone = $name $zone = $name
case $role { case $role {
@ -207,6 +210,9 @@ define dns::zone($role = "master", $master = [], $slaves = [], $source = "AUTO")
} }
} }
"slave": { "slave": {
if $master == "" {
fail("No master defined for dns::zone '${name}'")
}
case $operatingsystem { case $operatingsystem {
"openbsd": { "openbsd": {
$zonedir = "/slave" $zonedir = "/slave"

View file

@ -2,11 +2,9 @@ zone "<%= zone %>" {
type slave; type slave;
<% if zone.match(/\//) %> <% if zone.match(/\//) %>
file "<%= zonedir %>/db.<%= zone.sub(/\//, '-') %>"; file "<%= zonedir %>/db.<%= zone.sub(/\//, '-') %>";
<% else %> <% else -%>
file "<%= zonedir %>/db.<%= zone %>"; file "<%= zonedir %>/db.<%= zone %>";
<% end -%> <% end -%>
<% master.each_pair do |k, v| -%> masters { <%= master %>; };
masters { <%= v['ip'] %>; };
<% end -%>
allow-transfer { none; }; allow-transfer { none; };
}; };