Added support for generating dns records for puppet nodes
This commit is contained in:
parent
aadf34cbe8
commit
f72325de30
2 changed files with 78 additions and 5 deletions
|
@ -391,12 +391,9 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [],
|
|||
},
|
||||
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,
|
||||
|
@ -406,6 +403,22 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [],
|
|||
},
|
||||
notify => Service["named"],
|
||||
}
|
||||
file { "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d":
|
||||
ensure => directory,
|
||||
mode => "0640",
|
||||
owner => "root",
|
||||
group => $dns::server::group,
|
||||
require => $::operatingsystem ? {
|
||||
"openbsd" => undef,
|
||||
default => Package["bind"],
|
||||
},
|
||||
purge => true,
|
||||
force => true,
|
||||
recurse => true,
|
||||
source => "puppet:///modules/custom/empty",
|
||||
notify => Service["named"],
|
||||
}
|
||||
|
||||
file { "${dns::server::chroot}${zonedir}/db.${zone}-static":
|
||||
ensure => present,
|
||||
source => [
|
||||
|
@ -421,12 +434,64 @@ define dns::zone($role = "master", $master = "", $slaves = [], $forwarders = [],
|
|||
},
|
||||
notify => Service["named"],
|
||||
}
|
||||
|
||||
exec { "update-db.${zone}-dynamic":
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
command => "/bin/sh -c 'find db.${zone}-dynamic.d -name rr.\\* | xargs cat > db.${zone}-dynamic'",
|
||||
cwd => "${dns::server::chroot}${zonedir}",
|
||||
user => "root",
|
||||
refreshonly => true,
|
||||
notify => Service["named"],
|
||||
}
|
||||
|
||||
Dns::Node::Record <<| tag == $zone |>> {
|
||||
dbdir => "${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d",
|
||||
notify => Exec["update-db.${zone}-dynamic"],
|
||||
require => File["${dns::server::chroot}${zonedir}/db.${zone}-dynamic",
|
||||
"${dns::server::chroot}${zonedir}/db.${zone}-dynamic.d"],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class dns::node {
|
||||
|
||||
if !$dns_node_name {
|
||||
$dns_node_name = $::hostname
|
||||
}
|
||||
if !$dns_node_ipaddr {
|
||||
$dns_node_ipaddr = $::ipaddress
|
||||
}
|
||||
if !$dns_node_zone {
|
||||
$dns_node_zone = $::domain
|
||||
}
|
||||
|
||||
if $dns_node_alias {
|
||||
$dns_node_cname = inline_template("<% dns_node_alias.each do |a| -%><%= a %>\tCNAME\t<%= dns_node_name %>\n<% end -%>")
|
||||
}
|
||||
|
||||
@@dns::node::record { "${dns_node_name}.${dns_node_zone}":
|
||||
name => $dns_node_name,
|
||||
cname => $dns_node_cname,
|
||||
ipaddr => $dns_node_ipaddr,
|
||||
tag => $dns_node_zone
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
define dns::node::record($dbdir, $ipaddr, $name, $cname="") {
|
||||
|
||||
file { "${dbdir}/rr.${name}":
|
||||
ensure => present,
|
||||
content => "${name}\tA\t${ipaddr}\n${cname}",
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Install dynamic DNS update script
|
||||
#
|
||||
# === Global variables
|
||||
|
|
|
@ -75,6 +75,14 @@ EOF
|
|||
|
||||
for name in ${chroot}/${confdir}/* ; do
|
||||
[ -d ${name} ] || continue
|
||||
printview `basename ${name}`
|
||||
name=`basename ${name}`
|
||||
case ${name} in
|
||||
db.*)
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
printview ${name}
|
||||
;;
|
||||
esac
|
||||
done
|
||||
printview default
|
||||
|
|
Loading…
Add table
Reference in a new issue