Douglas Garstang <doug.garst...@gmail.com> writes:

> I'd like to be able to split out my puppet production and test
> environments so that I can continue to develop puppet modules/manifests
> without breaking production. How are people doing this? Puppet
> environments may be one way. I guess I'd have a main(prod) environment
> and a test one. When I was finished with testing, I could rsync the
> files over to the prod environment. Is this how others are doing it?

Our plan is to do basically that but with Git branches rather than rsync.
We currently already have our entire Puppet configuration in a version
control system (currently Subversion), and will be converting it to Git
and then using Git branches to maintain the separate environments.

The advantage of Git branches is that we can much more easily merge or
cherry-pick changes between the environments.  For example, changes that
must be made in production can be made there and then merged into test, so
that test stays in sync easily but can maintain separate changes.

Our intention is to then cut a new production branch from test every three
months and retain two production branches, cutting each production server
from the old branch over to the new branch on a quarterly cycle according
to the requirements of that production environment.  That way, all servers
benefit from general architectural changes, but those changes are
thoroughly tested first in the test/dev environments (which will all point
to the master branch).

-- 
Russ Allbery (r...@stanford.edu)             <http://www.eyrie.org/~eagle/>

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.


Reply via email to