Hi there

On 18 Sep, 14:56, Leah <[EMAIL PROTECTED]> wrote:
> I am looking at storing all my configs in Git as that seems to be the
> version control of choice here and it's time I learned it.  I was
> wondering what other people do to automatically update their puppet
> server with the latest version from git.  I was looking at using some
> sort of git hook, but I'm not sure how to implement it efficiently and
> securely with a shared repository on another server.  I went looking
> on the wiki, but could only find information about doing this with
> subversion.

I've just started working on getting our Puppet configurations under
version control (currently Git). Like Paul (who might've suggested
this to me in the first place) we have environments for production,
testing and for each developer/admin. Each of these corresponds to a
branch within Git. Developers develop in their local environment, push
changes into testing to be staged (we'll have representative machines
running testing at some point) and then to production once we're sure
it's okay. I manually pull changes from the repo to the puppetmasters.

It works fairly well but not perfectly. Problems are:

1) It's fiddly. From my cloned repo I have to switch to my branch,
make the change, commit, push to the central repo, switch to testing,
merge with my branch and then push to the central repo to get a change
live. For most things that's fine -- I want to be sure -- but when a
developer comes along and wants a rewriterule fixed or some other
simple change or feature request that's already signed off from above
it's a bit of a task to get it live. (Perhaps we should consider
storing application configs elsewhere, in a more straightforward repo,
or building them into an RPM or something.)

2) Git's distributed approach is a bit confusing (read: I don't know
how to work it). Local branches tracking remote (central) branches,
pushing a local branch to a remote branch, etc, makes my brain ache a
bit. SVN's versioned-tree model might work better, especially if you
can just set tags representing testing and production and check those
tags out to the puppetmasters. However, Git's branching does make it
possible to develop several features in parallel, which a tagged
approach might not give you. Swings and roundabouts. Git has tags but
I haven't yet figured out how they work.

3) I haven't worked out how to get the central repo to push to all the
puppetmasters. Like Paul, I don't want this to happen automatically.
What I really want is a way for admins to push their changes to
testing, have this action recorded and sent to a mailing list (with a
diff!) by running a single script on the central repo. Same for
production. Currently this happens when an admin merges changes into
his local testing/production and then pushes these branches to the
central repo, which I think might be asking for trouble.

Sorry, this is a bit rambly -- early morning and all that. I'm on the
Puppet course next week so I'm hoping I'll learn The One True Way
then.

Cheers,

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

Reply via email to