Ask Your Question

Puppet environment per service

asked 2016-10-11 09:02:16 -0600

markvr gravatar image

I'm attempting to design our Puppet workflow, and one concern I have with the workflows as described at is that module versions are global. i.e. if one particular service (i.e. profile) requires an updated version of e.g. the Apache forge module, that is a global change that has to be applied to all services. This means that all profiles have to be tested and validated against the upgraded version before it can be changed.

I'm considering a workflow that has one puppet (i.e. r10k) environment per service/profile. This would lead to a lot of environments, but isolates the module dependencies, so each service/profile can use the exact dependencies it wants.

This seems a bit like an abuse of the concept of environments as described at but would be one solution to this problem.

Has anyone tried this, or have any recommendations of other ways to solve the problem?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-10-11 11:15:37 -0600

DarylW gravatar image

If you are managing the environment, you would typically want to migrate all of the environments to the updated version of the module. You would create a 'test' environment, make sure that the new version of the modules works for those environments, and when you've verified that it works for all your servers, then you merge it into the production environment.

Sometimes people are managing a puppet server for multiple teams, and sometimes in those cases it makes sense to have one 'environment' per team, but remember that each environment is a different branch, and anything that you need to do to update lots of branches will be very manual to do.

I would say that isolating module versions should be the exception, not the rule, and it's generally better practice to keep at most two versions of software, the 'stable' and the 'next' version, work on migrating everything to next, then replace stable with next.

edit flag offensive delete link more


This makes a lot more sense thanks

markvr gravatar imagemarkvr ( 2016-10-12 06:08:32 -0600 )edit

Your welcome! You are right that sometimes you may need different versions of the same module, but usually that would only be if multiple teams are using the same master, which r10k does have support for (it can prefix the environments from different control repos)

DarylW gravatar imageDarylW ( 2016-10-12 09:17:49 -0600 )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


Asked: 2016-10-11 09:02:16 -0600

Seen: 34 times

Last updated: Oct 11 '16