Ask Your Question

What is the best way to do version control and deployment in puppet open source?

asked 2016-11-16 04:49:54 -0600

Nath Stone gravatar image

Hi All,

I have just started out with puppet.

We have a small team of 3 developers that will be creating different modules and manifests for one environment (starting with test, then later using the production environment).

I've read about CodeManager and r10k but the documentation is for Puppet Enterprise so I asumme I can't use these tools?

What are the industry best practices for deploying modules and site manifests to a puppetserver in puppet open source?

Kind Regards, Nath

edit retag flag offensive close merge delete


Same situation here. Since our system gained quite some complexity over the yrs, n our staff's got some fluctuation, too, – ppl responsible for PP change evry one or two yrs – we stick to a git repository w/ some shell scripts, placing evrything to the right place. Not the best, but frankly what is?

Kai Burghardt gravatar imageKai Burghardt ( 2016-11-16 17:15:33 -0600 )edit

We are currently not following the r10k workflow do to $reasonable_reasons and $not_so_reasonable_reasons, and it's pretty terrible. We moved from a single repo to a 4 way chopped up repo, and we now have none of the advantages of either process. I would suggest sticking to r10k/Puppetfile

DarylW gravatar imageDarylW ( 2016-11-17 07:02:13 -0600 )edit

There are also alternatives that you can do, if you must ship around built/tested puppet code, you can use r10k/librarian puppet to pull everything together at build time, and then create a package containing your code. See 'Terraform and ECS' from puppetconf 2016

DarylW gravatar imageDarylW ( 2016-11-17 07:05:06 -0600 )edit

1 Answer

Sort by » oldest newest most voted

answered 2016-11-16 22:34:02 -0600

lupin gravatar image

You can use r10k + Git with Puppet OSS, then:

  • create one repo per module
  • either use multiple puppet environment(testing, prod -r10k will auto create this base on git branches) or single environment with multiple masters(testing,prod)
  • use Puppetfile and deploy specific module to the Puppet environment using branch,tag or commit.



edit flag offensive delete link more



Thanks Lupin et al for your answers and clarifications. I've got r10k set up and running. KR, Nath

Nath Stone gravatar imageNath Stone ( 2016-11-18 08:32:21 -0600 )edit

@nath-stone What is your approach on testing the changes? r10k will checkout all branches of the control repo (as "environment"s), but then do you roll them out on some test environments? Do you spin up VMs dynamically? See also:

bittner gravatar imagebittner ( 2017-08-04 05:54:13 -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

1 follower


Asked: 2016-11-16 04:49:54 -0600

Seen: 123 times

Last updated: Nov 16 '16