Newer
Older
# Defines the DNS configuration of a system.
class base::dns {
base::dns::resolv_conf { "$fqdn": ensure => present }
# This class adds a reference to a local DNS caching server.
class base::dns::cache {
include base::dns::cache_packages
base::dns::resolv_conf { "$fqdn":
ensure => present,
dns_cache => true,
}
}
class base::dns::cache_packages {
# Stanford package for DNS caching.
package { 'stanford-dnscache':
ensure => present,
notify => Exec['chown dnslog:dnslog /var/log/dnscache'],
}
# This is required because ownership is wrong on reinstall of packages
# but not on initial install.
exec {'chown dnslog:dnslog /var/log/dnscache':
command => 'chown -R dnslog:dnslog /var/log/dnscache',
refreshonly => true,
}
}
# This class is for servers at Livermore. The resolv.conf puts the
# Livermore dns server first in the search list.
class base::dns::dr {
base::dns::resolv_conf { $fqdn :
ensure => present,
first_dns_server => '204.63.227.68',
}
}
# This class is for servers at Livermore. The resolv.conf puts the
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# local caching server first and includes Livermore dns server.
class base::dns::dr-cache {
include base::dns::cache_packages
base::dns::resolv_conf { $fqdn :
ensure => present,
dns_cache => true,
first_dns_server => '204.63.227.68',
}
}
define base::dns::resolv_conf (
$ensure = present,
$dns_cache = 'NONE',
$first_dns_server = 'NONE'
) {
case $ensure {
'absent': {
file { '/etc/resolv.conf': ensure => absent }
}
'present': {
# RHEL6 requires a custom resolv.conf to deal with a
# single-threaded lookup bug which reduces performance to a
# crawl for services like sshd. TODO: remove EL6 custom
# resolv.conf when this bug is fixed.
if $::lsbdistcodename == 'santiago' {
$set_dns_options = true
$dns_options = 'single-request-reopen'
} else {
$set_dns_options = false
}
if $dns_cache != 'NONE' {
$set_dns_cache = true
} else {
$set_dns_cache = false
}
if $first_dns_server != 'NONE' {
$set_first_dns_server = true
} else {
$set_first_dns_server = false
}
# resolv.conf is constructed from a template
file { '/etc/resolv.conf':
content => template('base/dns/etc/resolv.conf.erb')
}