From: Peter Palfrader Date: Wed, 2 Mar 2011 14:56:15 +0000 (+0100) Subject: Move hosterinfo into nodeinfo X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=commitdiff_plain;h=69c19f570b0c7668d1374600a5a7cedaa81fbe2d Move hosterinfo into nodeinfo --- diff --git a/manifests/site.pp b/manifests/site.pp index 4d0ef65a..f0699a9e 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -16,9 +16,7 @@ Exec { node default { $localinfo = yamlinfo('*', "/etc/puppet/modules/debian-org/misc/local.yaml") $nodeinfo = nodeinfo($fqdn, "/etc/puppet/modules/debian-org/misc/local.yaml") - $hosterinfo = whohosts($nodeinfo, "/etc/puppet/modules/debian-org/misc/hoster.yaml") $allnodeinfo = allnodeinfo("sshRSAHostKey ipHostNumber", "purpose mXRecord") - notice("hoster for ${fqdn} is ${hosterinfo}") include munin-node include syslog-ng diff --git a/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb b/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb index ff447e89..947caf70 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb @@ -5,9 +5,14 @@ module Puppet::Parser::Functions yamlfile = args[1] require '/var/lib/puppet/lib/puppet/parser/functions/ldapinfo.rb' + require '/var/lib/puppet/lib/puppet/parser/functions/whohosts.rb' results = function_yamlinfo(host, yamlfile) results['ldap'] = function_ldapinfo(host, '*') + unless results['ldap']['ipHostNumber'] + raise Puppet::ParseError, "Host #{host} does not have ipHostNumber values in ldap" + end + results['hoster'] = whohosts(results['ldap']['ipHostNumber'], "/etc/puppet/modules/debian-org/misc/hoster.yaml") results['misc'] = {} fqdn = lookupvar('fqdn') diff --git a/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb b/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb index 4b4371db..20f83d36 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb @@ -3,7 +3,7 @@ module Puppet::Parser::Functions require 'ipaddr' require 'yaml' - nodeinfo = args[0] + ipAddrs = args[0] yamlfile = args[1] parser.watch_file(yamlfile) @@ -12,24 +12,22 @@ module Puppet::Parser::Functions ans = {"name" => "unknown"} yaml = YAML.load_file(yamlfile) - if (nodeinfo['ldap'].has_key?('ipHostNumber')) - nodeinfo['ldap']['ipHostNumber'].each do |addr| - yaml.keys.each do |hoster| - if yaml[hoster].kind_of?(Hash) and yaml[hoster].has_key?('netrange') - netrange = yaml[hoster]['netrange'] - else - next - end + ipAddrs.each do |addr| + yaml.keys.each do |hoster| + if yaml[hoster].kind_of?(Hash) and yaml[hoster].has_key?('netrange') + netrange = yaml[hoster]['netrange'] + else + next + end - netrange.each do |net| - begin - if IPAddr.new(net).include?(addr) - ans = yaml[hoster] - ans['name'] = hoster - end - rescue => e - raise Puppet::ParseError, "Error while trying to match addr #{addr} for net #{net}: #{e.message}\n#{e.backtrace}" + netrange.each do |net| + begin + if IPAddr.new(net).include?(addr) + ans = yaml[hoster] + ans['name'] = hoster end + rescue => e + raise Puppet::ParseError, "Error while trying to match addr #{addr} for net #{net}: #{e.message}\n#{e.backtrace}" end end end diff --git a/modules/resolv/templates/resolv.conf.erb b/modules/resolv/templates/resolv.conf.erb index 4e9f7650..f4257666 100644 --- a/modules/resolv/templates/resolv.conf.erb +++ b/modules/resolv/templates/resolv.conf.erb @@ -12,9 +12,9 @@ if %w{draghi liszt widor spohr samosa}.include?(hostname) nameservers << "127.0.0.1" end -nameservers += hosterinfo['nameservers'] if hosterinfo['nameservers'] -searchpaths += hosterinfo['searchpaths'] if hosterinfo['searchpaths'] -options += hosterinfo['resolvoptions'] if hosterinfo['resolvoptions'] +nameservers += nodeinfo['hoster']['nameservers'] if nodeinfo['hoster']['nameservers'] +searchpaths += nodeinfo['hoster']['searchpaths'] if nodeinfo['hoster']['searchpaths'] +options += nodeinfo['hoster']['resolvoptions'] if nodeinfo['hoster']['resolvoptions'] searchpaths << "debian.org" diff --git a/modules/ssh/templates/authorized_keys.erb b/modules/ssh/templates/authorized_keys.erb index c9a3cbd6..c05d4ed6 100644 --- a/modules/ssh/templates/authorized_keys.erb +++ b/modules/ssh/templates/authorized_keys.erb @@ -1,5 +1,5 @@ # local admin -<%= hosterkeys = case hosterinfo['name'] +<%= hosterkeys = case nodeinfo['hoster']['name'] when "ubcece" then "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvEEyxznxleAhk98K7SkAeAKWibijL5uFjIl1+tr8rz+XmFsjabTK2+hQXkgzmU+jqQ2+MPp6btfAq9Oe27GQYWUFfsAZMRb907dReFQYPKbPhQZoo5LUfkrCiR3tD0Nm2JfepTV0079K1+Q50EMImttwbI94FfSoSgTxgF4rCoLpUgmF0IHDR1+kTGow7YnuS1Y/I1zKAbofg8KBGXOLArkcZbxArt25Y2wlnE+ZHIb3Rn3pYc3/KmPPvEQy9IkR/uzzkWSaCBVMFJEO0ejjWrV4HR64GlKUPQ0CekSYn1EErY55CF5sWkasXhflluwSf7b+/jedDM1A1Vrp9Z/F8Q== chrisd" end