From 832fb1f31656c204d0fad293c393989ac63ffdd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Fri, 20 Jan 2012 15:28:38 +0200 Subject: [PATCH] Added support for using fixed dns zone files. --- dns/manifests/init.pp | 93 +++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 38 deletions(-) diff --git a/dns/manifests/init.pp b/dns/manifests/init.pp index 23a5297..937d524 100644 --- a/dns/manifests/init.pp +++ b/dns/manifests/init.pp @@ -155,8 +155,10 @@ class dns::server { # 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. +# $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 case $role { @@ -205,43 +207,58 @@ define dns::zone($role = "master", $master = [], $slaves = []) { } if $role == "master" { - file { "${dns::server::chroot}${zonedir}/db.${zone}": - ensure => present, - content => template("dns/db.erb"), - mode => 0640, - owner => "root", - group => $dns::server::group, - require => $operatingsystem ? { - "openbsd" => undef, - default => Package["bind"], - }, - notify => Service["named"], - } - file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic": - ensure => present, - source => [ "puppet:///files/dns/db.${zone}-dynamic.${homename}", - "puppet:///modules/dns/empty", ], - mode => 0640, - owner => "root", - group => $dns::server::group, - require => $operatingsystem ? { - "openbsd" => undef, - default => Package["bind"], - }, - 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"], + if $source != "AUTO" { + file { "${dns::server::chroot}${zonedir}/db.${zone}": + ensure => present, + source => $source, + mode => 0640, + owner => "root", + group => $dns::server::group, + require => $operatingsystem ? { + "openbsd" => undef, + default => Package["bind"], + }, + notify => Service["named"], + } + } else { + file { "${dns::server::chroot}${zonedir}/db.${zone}": + ensure => present, + content => template("dns/db.erb"), + mode => 0640, + owner => "root", + group => $dns::server::group, + require => $operatingsystem ? { + "openbsd" => undef, + default => Package["bind"], + }, + notify => Service["named"], + } + file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic": + ensure => present, + source => [ "puppet:///files/dns/db.${zone}-dynamic.${homename}", + "puppet:///modules/dns/empty", ], + mode => 0640, + owner => "root", + group => $dns::server::group, + require => $operatingsystem ? { + "openbsd" => undef, + default => Package["bind"], + }, + 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"], + } } }