Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ruby script /usr/local/externalnodes/bin/create_yaml_config.rb
- #!/usr/bin/env /usr/local/externalnodes/script/runner
- #!/usr/bin/env /Users/macbar/dev/externalnodes/script/runner
- require 'yaml'
- classes = []
- vars = {}
- node = Node.find(:last, :conditions => {:fqdn => ARGV[0]})
- if node == nil
- exit 0
- end
- parents = node.get_parents([])
- node.get_all_classes(parents).each do |c|
- classes << c.name
- end
- params = node.get_all_variable_values(parents)
- config = {}
- if params != {}
- config['parameters'] = node.get_all_variable_values(parents)
- end
- if classes != []
- config['classes'] = classes
- end
- if config != {}
- puts config.to_yaml.gsub(/\s*$/,'') #.gsub(/^-([^-].*)/,' -\1').gsub(/\"/,'')
- end
- exit 0
- root@slug:/usr/local/externalnodes/bin # ./create_yaml_config.rb slug.b.cegeka.punchtelematix.net
- ---
- classes:
- - testt
- - common
- puppetmasterd output using
- external_nodes = /usr/local/externalnodes/bin/create_yaml_config.rb
- notice: Starting Puppet server version 0.24.8
- debug: Overriding puppet with cert name slug.b.cegeka.punchtelematix.net
- debug: Allowing authenticated client slug.b.cegeka.punchtelematix.net(127.0.0.1) access to puppetmaster.getconfig
- debug: Our client is remote
- info: Expiring the node cache of slug.b.cegeka.punchtelematix.net
- info: Not using expired node for slug.b.cegeka.punchtelematix.net from cache; expired at Fri Nov 27 13:21:48 +0100 2009
- debug: Executing '/usr/local/externalnodes/bin/create_yaml_config.rb slug.b.cegeka.punchtelematix.net'
- info: Caching node for slug.b.cegeka.punchtelematix.net
- notice: Scope(Class[main]): in site.pp
- notice: Compiled catalog for slug.b.cegeka.punchtelematix.net in 0.02 seconds
- shell script /usr/local/bin/en.sh
- #!/bin/sh
- # Super-simple external_node script for versions 0.23 and later
- cat <<"END"
- ---
- classes:
- - testt
- - common
- END
- exit 0
- puppetmasterd log using
- external_nodes = /usr/local/bin/en.sh
- notice: Starting Puppet server version 0.24.8
- debug: Overriding puppet with cert name slug.b.cegeka.punchtelematix.net
- debug: Allowing authenticated client slug.b.cegeka.punchtelematix.net(127.0.0.1) access to puppetmaster.getconfig
- debug: Our client is remote
- info: Expiring the node cache of slug.b.cegeka.punchtelematix.net
- info: Not using expired node for slug.b.cegeka.punchtelematix.net from cache; expired at Fri Nov 27 13:20:14 +0100 2009
- debug: Executing '/usr/local/bin/en.sh slug.b.cegeka.punchtelematix.net'
- info: Caching node for slug.b.cegeka.punchtelematix.net
- notice: Scope(Class[main]): in site.pp
- info: Could not find class common for slug.b.cegeka.punchtelematix.net
- notice: Scope(Class[testt]): in class testt - site.pp
- notice: Compiled catalog for slug.b.cegeka.punchtelematix.net in 0.01 seconds
Add Comment
Please, Sign In to add comment