We upgraded to Puppet 3.7 and some things stopped working. Some files that we refer to using puppet URLs are not found by Puppet Enterprise anymore. The biggest change is that we are now using directory environments.

When referring to a file in a module's "files" directory, you have to drop the "/files" part of the path when composing the puppet URL. For example, in the Docs is this example:

URL: puppet:///modules/my_module/service.conf

Path: my_module/files/service.conf

Is there some similar rule for dropping or changing the environment name part of a path when forming puppet URLs?


Yes - for example templates become: template('modulename/template.erb').

Directory environments change what modules are visible, so if you're looking for a template in a module that isn't available, the catalog won't compile. This does allow you to have two versions of the same module in two different environments though!

Also, beware of what modules you put where - I still occasionally get errors where I forget to move a dependency module out of my 'development' environment into 'production'!

EDIT: on re-reading your question, I'm not sure I answered it 100%. I think the short answer is that there is no environment name needed in paths any more, as far as I've encountered in my work on Puppet 3 so far.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.