Skip to content

Instantly share code, notes, and snippets.

@dcarley
Created September 27, 2012 10:26
Show Gist options
  • Save dcarley/3793342 to your computer and use it in GitHub Desktop.
Save dcarley/3793342 to your computer and use it in GitHub Desktop.
Smoke testing Puppet nodes

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment