A little experiment to smoke test Puppet nodes and all of their respective modules.
May or may not come to anything.
Some of this code has been liberally borrowed from the wonderful rspec-puppet.
A little experiment to smoke test Puppet nodes and all of their respective modules.
May or may not come to anything.
Some of this code has been liberally borrowed from the wonderful rspec-puppet.
source :rubygems | |
gem 'puppet', '~> 2.6.0' | |
gem 'facter' | |
gem 'randexp' |
require 'puppet' | |
require 'randexp' | |
Puppet[:manifest] = "manifests/site.pp" | |
Puppet[:modulepath] = "modules" | |
Puppet::Node::Environment.new(Puppet[:environment]).known_resource_types.nodes.each do |node| | |
if node[1].name_is_regex? | |
nodename = node[1].instance_eval { @name }.generate | |
nodename.gsub!(/(^\^|\$$)/, "") | |
else | |
nodename = node[0] | |
end | |
facts = { | |
'fqdn' => nodename, | |
'domain' => nodename.split('.').last, | |
'hostname' => nodename.split('.').first, | |
'osfamily' => 'RedHat', | |
'operatingsystem' => 'CentOS', | |
'operatingsystemrelease' => '6.2', | |
'operatingsystemmajrelease' => '6', | |
} | |
node_obj = Puppet::Node.new(nodename, :parameters => facts) | |
node_obj.fact_merge | |
begin | |
Puppet::Resource::Catalog.find(node_obj.name, :use_node => node_obj) | |
rescue => error | |
puts "#{nodename}: #{error}" | |
end | |
end |