On Tue, Dec 28, 2010 at 9:45 AM, Dustin J. Mitchell <dus...@mozilla.com> wrote:
> First, apologies if this is a FAQ: a few weeks of searching and reading
> hasn't uncovered anything particularly helpful.  I'll be happy to
> summarize the results in a blog post or some more official place.
>
> I'm having a hard time figuring out how best to develop and test changes
> to Puppet manifests.
>
> First, I don't have any way to test a change aside from tossing it on
> the server and running puppetd --test --noop on a potentially-affected
> client.  Fundamentally, this is testing puppet's function mapping [
> facts, manfiests, files ] => actions, and I would love to have a way to
> run that function without requiring a full, distributed
> puppetmasterd/puppetd setup, replete with correct facts on the client.
> Is there another way?

You can do an awful lot of testing locally with "puppet" (puppet apply
if you're on 2.6.x) rather than puppetd and a server.

Something I've found particularly useful is to make use of the facter
feature where environment variables prefixed with "FACTER_" get turned
into facts.

e.g.

FACTER_foo="bar" puppet --verbose /tmp/test.pp

will create "$foo" with a value of "bar".

You can also make use of the "factpath" setting to supply multiple
locations. I do this a fair bit when testing fact interactions.

puppet --verbose
--factpath="/var/lib/puppet/lib/facter:/tmp/testfacts" /tmp/test.pp

As is often the case, RI has a good blog post up about this too:

http://www.devco.net/archives/2009/08/19/tips_and_tricks_for_puppet_debugging.php

>
> Second, I'm working on refactoring our puppet configuration, and in so
> doing it would be best to ensure I haven't unexpectedly changed any
> resources.  Is there any machine-parsable way of seeing the set of
> resources that result from a particular manifest and set of facts?

When working with the server you can inspect the catalog. Again, RI
has a tool he's been working on, and I expect we'll end up
distributing something in the Puppet codebase to achieve the same
goals.

https://github.com/ripienaar/puppet-catalog-diff



>
> Thanks for any pointers!
>
> Dustin
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To post to this group, send email to puppet-us...@googlegroups.com.
> To unsubscribe from this group, send email to 
> puppet-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to