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 -~----------~----~----~----~------~----~------~--~---