Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
scripts to automate puppet manifest compliation
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
README.md formating
manitest.rb

README.md

Manitest compiles a manifest using another hosts facts

Usage: ./manitest.rb

Manitest compiles a manifest using another hosts facts.

-v, --verbose                    Output more information
-d, --debug                      Output the full puppet debug
-e, --environment                Override node environment
-t, --tmpdir DIR                 Where to write temp files - defaults to /tmp
-n, --node FILE                  YAML node file to use
-c, --class CLASSA,CLASSB        node classes to use
-h, --help                       Display this screen

example runs:

verbose mode

$ ./manitest.rb -n /var/lib/puppet/yaml/node/hostname.yaml -v
Setting up environment: development
Setting up facts:
The manifest compilation for hostname is OK
$ echo $?
0

debug mode

$  ./manitest.rb -n /var/lib/puppet/yaml/node/hostname.yaml -d -e global_puppetmaster
Setting up environment: global_puppetmaster
Setting up facts:
puppetmaster=>puppet
...
< a lot of facts info here >
/usr/bin/puppet --config /tmp/.tmp_puppet.conf --certname hostname --debug /tmp/.tmp_node.pp 2>&1
< a lot of puppet debug messages here >
Could not find class xyz in namespaces zzz at /etc/puppet/modules/zzz/manifests/init.pp:7 on node hostname
The manifest compilation for hostname is broken

known limitations

It seems that this script will work only on the same architecture, as puppet internally tries to load the provides automatically, I'm not sure if its possible to run a Solaris manifest on a Linux host.

When not using external nodes, the class information must be specified manually with the -c option - e.g. ./manitest -c ntp::server,ssh::client etc.

Something went wrong with that request. Please try again.