Refactored dns::server class.
This commit is contained in:
parent
34be570ebc
commit
4cb660dcaf
7 changed files with 155 additions and 121 deletions
|
@ -15,32 +15,43 @@ class dns::server {
|
|||
}
|
||||
}
|
||||
|
||||
# first set per os paths
|
||||
case $operatingsystem {
|
||||
"fedora": {
|
||||
$chroot = ""
|
||||
$confdir = "/etc/named"
|
||||
}
|
||||
"centos": {
|
||||
case $operatingsystemrelease {
|
||||
/^5\..*/: {
|
||||
$chroot = "/var/named/chroot"
|
||||
$confdir = "/etc"
|
||||
}
|
||||
default: {
|
||||
$chroot = ""
|
||||
$confdir = "/etc/named"
|
||||
}
|
||||
}
|
||||
}
|
||||
"ubuntu": {
|
||||
$chroot = ""
|
||||
$confdir = "/etc/bind"
|
||||
$config = "${confdir}/named.conf"
|
||||
$rndckey = "${confdir}/rndc.key"
|
||||
}
|
||||
default: {
|
||||
"openbsd": {
|
||||
$chroot = "/var/named"
|
||||
$confdir = "/etc"
|
||||
}
|
||||
}
|
||||
# if some var is not set use default value
|
||||
if !$confdir {
|
||||
$confdir = "/etc"
|
||||
}
|
||||
if !$config {
|
||||
$config = "/etc/named.conf"
|
||||
}
|
||||
if !$rndckey {
|
||||
$rndckey = "/etc/rndc.key"
|
||||
}
|
||||
if !$chroot {
|
||||
$chroot = ""
|
||||
}
|
||||
|
||||
case $operatingsystem {
|
||||
"ubuntu": {
|
||||
|
@ -51,7 +62,7 @@ class dns::server {
|
|||
}
|
||||
}
|
||||
|
||||
file { "${chroot}${confdir}/rndc.key":
|
||||
file { "${chroot}${rndckey}":
|
||||
ensure => present,
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
|
@ -67,12 +78,13 @@ class dns::server {
|
|||
default => "rndc-confgen -r /dev/urandom -a -t ${chroot}",
|
||||
},
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
unless => "test -s ${chroot}${confdir}/rndc.key",
|
||||
require => File["${chroot}${confdir}/rndc.key"],
|
||||
unless => "test -s ${chroot}${rndckey}",
|
||||
require => File["${chroot}${rndckey}"],
|
||||
}
|
||||
if "${chroot}" != "" {
|
||||
file { "/etc/rndc.key":
|
||||
ensure => "${chroot}${confdir}/rndc.key",
|
||||
ensure => link,
|
||||
target => "${chroot}${rndckey}",
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => Exec["rndc-confgen"],
|
||||
|
@ -98,51 +110,66 @@ class dns::server {
|
|||
require => Exec["rndc-confgen"],
|
||||
}
|
||||
|
||||
case $operatingsystem {
|
||||
"ubuntu": {
|
||||
$ipaddr = $dns_listener_ipaddr
|
||||
file { "${chroot}${confdir}/named.conf.local":
|
||||
ensure => present,
|
||||
content => template("dns/named.conf.local.erb"),
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => Package["bind"],
|
||||
notify => Service["named"],
|
||||
}
|
||||
file { "${chroot}${confdir}/named.conf.options":
|
||||
ensure => present,
|
||||
content => template("dns/named.conf.options.erb"),
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => Package["bind"],
|
||||
notify => Service["named"],
|
||||
}
|
||||
}
|
||||
default: {
|
||||
file { "named.conf":
|
||||
path => $operatingsystem ? {
|
||||
"centos" => $operatingsystemrelease ? {
|
||||
/^5\..*/ => "${chroot}${confdir}/named.conf",
|
||||
default => "/etc/named.conf",
|
||||
},
|
||||
"fedora" => "/etc/named.conf",
|
||||
default => "${chroot}${confdir}/named.conf",
|
||||
},
|
||||
ensure => present,
|
||||
source => [ "puppet:///files/dns/named.conf.${fqdn}",
|
||||
"puppet:///files/dns/named.conf", ],
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => $operatingsystem ? {
|
||||
openbsd => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
notify => Service["named"],
|
||||
}
|
||||
}
|
||||
file { "named.conf":
|
||||
path => "${chroot}${config}",
|
||||
ensure => present,
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => $operatingsystem ? {
|
||||
"openbsd" => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
notify => Exec["generate-named-conf"],
|
||||
}
|
||||
file { "/usr/local/sbin/generate-named-conf.sh":
|
||||
ensure => present,
|
||||
content => template("dns/generate-named-conf.sh.erb"),
|
||||
mode => 0755,
|
||||
owner => "root",
|
||||
group => $operatingsystem ? {
|
||||
"openbsd" => "wheel",
|
||||
default => "root",
|
||||
},
|
||||
notify => Exec["generate-named-conf"],
|
||||
}
|
||||
exec { "generate-named-conf":
|
||||
command => "/usr/local/sbin/generate-named-conf.sh > ${chroot}${config}",
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
user => "root",
|
||||
refreshonly => true,
|
||||
require => File["/usr/local/sbin/generate-named-conf.sh"],
|
||||
notify => Service["named"],
|
||||
}
|
||||
|
||||
file { "${chroot}${confdir}/named.conf.options":
|
||||
ensure => present,
|
||||
source => [ "puppet:///files/dns/named.conf.options.${fqdn}",
|
||||
"puppet:///files/dns/named.conf.options",
|
||||
"puppet:///modules/dns/named.conf.options", ],
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => $operatingsystem ? {
|
||||
"openbsd" => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
notify => Service["named"],
|
||||
}
|
||||
|
||||
file { "${chroot}${confdir}/named.conf.local":
|
||||
ensure => present,
|
||||
source => [ "puppet:///files/dns/named.conf.local.${fqdn}",
|
||||
"puppet:///files/dns/named.conf.local",
|
||||
"puppet:///modules/dns/named.conf.local", ],
|
||||
mode => 0640,
|
||||
owner => "root",
|
||||
group => $group,
|
||||
require => $operatingsystem ? {
|
||||
"openbsd" => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
notify => Service["named"],
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -208,10 +235,10 @@ define dns::zone($role = "master", $master = [], $slaves = [], $source = "AUTO")
|
|||
"openbsd" => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
notify => Service["named"],
|
||||
notify => Exec["generate-named-conf"],
|
||||
}
|
||||
|
||||
if $role == "master" {
|
||||
if $role == "master" and $zone != "." {
|
||||
if $source != "AUTO" {
|
||||
file { "${dns::server::chroot}${zonedir}/db.${zonefile}":
|
||||
ensure => present,
|
||||
|
@ -223,7 +250,7 @@ define dns::zone($role = "master", $master = [], $slaves = [], $source = "AUTO")
|
|||
"openbsd" => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
notify => Service["named"],
|
||||
notify => Exec["generate-named-conf"],
|
||||
}
|
||||
} else {
|
||||
file { "${dns::server::chroot}${zonedir}/db.${zonefile}":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue