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 inherits base::dns {
include base::daemontools,
base::dns::cache_packages
Base::Dns::Resolv_conf[$::fqdn] { 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 inherits base::dns {
Base::Dns::Resolv_conf[$::fqdn] { first_dns_server => '204.63.227.68' }
}
# This class is for servers at Livermore. The resolv.conf puts the
# local caching server first and includes Livermore dns server.
class base::dns::dr-cache inherits base::dns::cache {
Base::Dns::Resolv_conf[$::fqdn] { first_dns_server => '204.63.227.68' }
# 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.
define base::dns::resolv_conf (
$ensure = present,
$dns_cache = 'NONE',
$first_dns_server = 'NONE'
) {
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':
ensure => $ensure,
content => template('base/dns/etc/resolv.conf.erb'),