On Wed, May 15, 2013 at 2:44 AM, Stephen Gran
<
stephe...@guardian.co.uk> wrote:
> Your push server can run git update and then rsync to the masters.
Why rsync if you have git?
You have
- the machine(s) where you edit and make commits on git, you then
_git push_ to what I'll call a "gold" git server
- the gold git server, normally it answers requests, but in Alex's
company it would run a cron to push to essentially local mirrors in
their various networks.
- "local puppet masters" -- given that you are using push from the
gold server to the "local puppet masters", you can use a post-receive
hook to auto-checkout the update as part of the push. so as soon as
the push completes, the puppet server code is serving the new files...
- puppet clients that pull from their local puppet masters.
--
if you use rsync, you have a potentially large window of time during
which the tree of files is inconsistent on the local puppet masters --
larger if the network connection is slow or unreliable. rsync updates
each file atomically, but not the tree atomically.
Using git shrinks that window considerably -- but not completely.
I am currently working on a similar infra, but local puppet masters
are allowed to "git fetch" from the gold server. The tooling I've
developed around it is here
http://repo.or.cz/w/puppet-git.git/ with
some discussion of usage and design here
https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/OilxMytnD_k
cheers,
m
--
martin....@gmail.com
- ask interesting questions
- don't get distracted with shiny stuff - working code first
~
http://docs.moodle.org/en/User:Martin_Langhoff