70 lines
1.8 KiB
Puppet
70 lines
1.8 KiB
Puppet
# Install DNS server.
|
|
#
|
|
class dns::server {
|
|
|
|
case $operatingsystem {
|
|
centos,fedora: {
|
|
$rootdir = "/var/named/chroot"
|
|
package { "bind":
|
|
name => "bind-chroot",
|
|
ensure => installed,
|
|
}
|
|
}
|
|
default: {
|
|
$rootdir = "/var/named"
|
|
}
|
|
}
|
|
|
|
file { "${rootdir}/etc/rndc.key":
|
|
ensure => present,
|
|
mode => 0640,
|
|
owner => root,
|
|
group => named,
|
|
require => $operatingsystem ? {
|
|
openbsd => undef,
|
|
default => Package["bind"],
|
|
},
|
|
}
|
|
exec { "rndc-confgen":
|
|
command => "rndc-confgen -a -t ${rootdir}",
|
|
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
|
unless => "test -s ${rootdir}/etc/rndc.key",
|
|
require => File["${rootdir}/etc/rndc.key"],
|
|
}
|
|
file { "/etc/rndc.key":
|
|
ensure => "${rootdir}/etc/rndc.key",
|
|
owner => root,
|
|
group => $operatingsystem ? {
|
|
openbsd => wheel,
|
|
default => root,
|
|
},
|
|
require => Exec["rndc-confgen"],
|
|
notify => Service["named"],
|
|
}
|
|
|
|
service { "named":
|
|
ensure => running,
|
|
enable => true,
|
|
status => "/usr/sbin/rndc status",
|
|
start => $operatingsystem ? {
|
|
openbsd => "/usr/sbin/named",
|
|
default => undef,
|
|
},
|
|
require => Exec["rndc-confgen"],
|
|
}
|
|
|
|
file { "${rootdir}/etc/named.conf":
|
|
ensure => present,
|
|
source => [ "puppet:///files/dns/named.conf.${fqdn}",
|
|
"puppet:///files/dns/named.conf", ],
|
|
mode => 0640,
|
|
owner => root,
|
|
group => named,
|
|
require => $operatingsystem ? {
|
|
openbsd => undef,
|
|
default => Package["bind"],
|
|
},
|
|
notify => Service["named"],
|
|
}
|
|
|
|
}
|