I regularly but randomly get the following error message when I run the puppet client on machines (non-daemonized):
err: Could not create : Parameter path failed: File paths must be fully qualified warning: Not using cache on failed catalog warning: Configuration could not be instantiated: Parameter path failed: File paths must be fully qualified
It seems moderately clear what it means -- that I don't have a fully-qualified path in a parameter. However, it doesn't tell me where I can find this to fix it, or even which parameter is wrong :(
(If I use the debug option it consistently works, so it seems like a problem with the caching of the manifests... It would be nice to get rid of this for production use, still)
Note : I cannot make this happen consistently :/
[Answering own question after getting around to prodding at the config for a while]
I've managed to track this down to one of the modules which I have written (of course), but it was due to a use of a variable which didn't work out how I expected.
What happened was:
..which basically caused some confusion with the File[] using a variable. I've replaced these with the explicit value of the variable for now and it all works fine, but it was something of a surprise! I'm assuming that my understanding of scope and when variables can be defined/used is somewhat out of whack with Puppet, so I'm going to learn that a lot better...
It seems to have caused the same behaviour as using non-fully-qualified paths on file strings, by failing to find the variable or not obtaining the value? Quite odd, anyway.
Edit : It's quite possible that the variable wasn't found in scope, and so was empty and definitely not a fully-qualified path. Doesn't explain why this was not consistent, however...
When you test your puppet configuration, you can do it by running
which will give you much more verbose output, and it should show you where it fails. If you are really desperate, you can tack on
--debug
to get even more output.If you want to go looking in your
.pp
files you should search for awhich has a missing
/
(i.e. it should read/path/to/file
instead)You can put the actual path to path property, then it works. This works for me:
Full path should be placed in the key name, unless you're using
path
parameter.For example:
or:
If you're using variable, make sure it's defined. If it's in different class, use standard
$class::variable
syntax. For any further information, run puppet with-vd
(verbose+debug) parameter.