]> git.donarmstrong.com Git - dsa-puppet.git/commitdiff
Lets see if putting the extra functions in git works
authorStephen Gran <steve@lobefin.net>
Mon, 27 Apr 2009 00:11:59 +0000 (01:11 +0100)
committerStephen Gran <steve@lobefin.net>
Mon, 27 Apr 2009 00:11:59 +0000 (01:11 +0100)
Signed-off-by: Stephen Gran <steve@lobefin.net>
files/etc/puppet/lib/puppet/parser/functions/nodeinfo.rb [new file with mode: 0644]
files/etc/puppet/puppet.conf
modules/debian-org/manifests/init.pp

diff --git a/files/etc/puppet/lib/puppet/parser/functions/nodeinfo.rb b/files/etc/puppet/lib/puppet/parser/functions/nodeinfo.rb
new file mode 100644 (file)
index 0000000..db16133
--- /dev/null
@@ -0,0 +1,39 @@
+module Puppet::Parser::Functions
+  newfunction(:nodeinfo, :type => :rvalue) do |args|
+
+    host = args[0]
+    yamlfile = args[1]
+    parser.watch_file(yamlfile)
+
+    require 'ldap'
+    require 'yaml'
+
+    $KCODE = 'utf-8'
+
+    yaml = YAML.load_file(yamlfile)
+    results = {}
+
+    ['nameinfo', 'footer'].each do |detail|
+      if yaml.has_key?(detail)
+        if yaml[detail].has_key?(host)
+          results[detail] = yaml[detail][host]
+        end
+      end
+    end
+
+    ldap = LDAP::Conn.new('samosa.debian.org')
+
+    results['ldap'] = []
+    filter = '(hostname=' + host +')'
+    begin
+      ldap.search2('ou=hosts,dc=debian,dc=org', LDAP::LDAP_SCOPE_SUBTREE, filter) do |x|
+        results['ldap'] << x
+      end
+    rescue LDAP::ResultError
+    rescue RuntimeError
+    ensure
+      ldap.unbind
+    end
+    return(results)
+  end
+end
index 67938895a11692c9827325f1b8004db38c38180d..931ce3ce61ad70a5a9688503752cffc8b173d6c8 100644 (file)
@@ -13,3 +13,4 @@ pluginsync=true
 
 [puppetmasterd]
 templatedir=/etc/puppet/templates
+libdir=/etc/puppet/lib
index ad03165546c7bea7f6851ed19f5333f517565d10..4943c7006eddb6c943b7fed9d8608dd0ac252fbb 100644 (file)
@@ -46,11 +46,26 @@ class debian-org {
       "/etc/default/puppet":
              source => "puppet:///files/etc/default/puppet",
              notify  => Exec["puppet restart"];
+      case $hostname {
+           spohr: {
+      "/etc/puppet/lib":
+             ensure  => directory,
+             source => "puppet:///files/etc/puppet/lib",
+             recurse => true,
+             notify  => Exec["puppetmaster restart"];
+           }
+           default: {}
+      }
    }
+
    exec { "puppet reload":
              path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
              refreshonly => true,
    }
+   exec { "puppetmaster restart":
+             path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
+             refreshonly => true,
+   }
    exec { "puppet restart":
              path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
              refreshonly => true,