Ask Your Question
0

using puppetlabs module when 3rd party opensource modules not allowed by policy

asked 2017-04-03 10:54:55 -0500

TODDL gravatar image

My company does not allow 3rd party modules to be installed at the root level. If I want to use the logic in a puppetlabs module (I'm most interested in https://forge.puppetlabs.com/garethr/...) then I'm going to need to take the code and manually insert it into my site folder.

Can someone guide me? Should I just take the PP files in the manifest folder and add them to my site/manifest that I provide the IT department?

Of is there a better way to wrap modules manually for use?

TODDL

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-04-03 16:14:35 -0500

DarylW gravatar image

What you should be doing is using the control-repo pattern similar to https://github.com/puppetlabs/control.... In that case, you have puppet-librarian or r10k which will pull down any modules into the appropriate environment, and the 'self contained' modules live under the 'site' folder, and your environment.conf is updated to add the additional folder of 'modules' to your modulepath.

You could even use a tool like librarian-puppet or r10k during build time to pull in your dependencies (i.e. from an internal git mirror of the repository) and create a deployment artifact that you ship to your puppet master which contains all of the code. There is an example of that being done in the Scaling Puppet on AWS ECS With Terraform and Docker talk from puppetconf 2016.

In that talk, he uses puppet-librarian/r10k to pull in all of the modules locally, build a .deb package with all of his module configuration, and he makes that package available to his puppet master (which is running a single environment inside of a docker container).

There is nothing, however, stopping you from simply having a 'monorepo' with all of your puppet modules in it, copying over the version of the externals you want to use, and just having them embedded directly into your baseline. At the end of the day, all that is require to get puppet to work is to have all of the modules, available within your 'environment', a.k.a. able to be resolved on the modulepath for the puppet master.

edit flag offensive delete link more

Comments

i found out that my company does allow puppetlabs in the control repo Puppetfile as is mentioned in this answer. So my original question was wrong - however it might help someone else too...

TODDL gravatar imageTODDL ( 2017-04-04 08:05:02 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-04-03 10:54:55 -0500

Seen: 17 times

Last updated: Apr 03