We use a cron job in addition to git hooks. The hooks work 99% of the time, and the cron job handles the occasional miss because the network burped. They're very complimentary.
On Thursday, May 19, 2016, Christopher Wood <[email protected]> wrote: > On Thu, May 19, 2016 at 11:39:30AM -0400, Rob Nelson wrote: > > Doug, > > > > If all your git repositories are local filestores, that's probably a > > pretty reasonable workflow. However, most people use some form of > > dedicated service as their git origins, that reside external to the > local > > systems - GitHub, Bit Bucket, Git Lab, etc. If you are using one of > those > > systems, or you can migrate to it, you can then improve your code > flow by > > using pull requests to review changes and merge them into the branch > at > > the upstream. These services would also be able to fire a web hook, an > > event sent to your puppet master as an http/https payload, that can > > trigger r10k to deploy the updated code. > > Our inter-datacenter connectivity tends to skip a beat whenever there's a > DDOS. It's old skule but a cron job gives us some easy resilience here. > > [root@puppetmaster6 ~]# crontab -l | grep r10k > # Puppet Name: r10k deploy > * * * * * /usr/bin/lockrun --lockfile=/var/run/r10k-deploy -- > /opt/puppetlabs/puppet/bin/r10k deploy environment --puppetfile >/dev/null > 2>&1 > > Also when I set this up there were issues setting up plain git hooks with > the gitlab instance we were originally using, using a cron job saved weeks > of inter-team ticket discussion judging by other hook tickets. > > > That might sound complicated, but I promise you, it's not. It's just > using > > some peculiar terminology you're not familiar with. For learning git > and > > services like GitHub, there are countless tutorials out there; I > recommend > > [1]https://github.com/commitmas/12-days-of-commitmas. That will > introduce > > you to git, GitHub, Pull Requests (PRs), and code review processes. I > > wrote an article on using r10k with a webhook at > > [2] > https://rnelson0.com/2015/05/03/configuring-an-r10k-webhook-on-your-puppet-master/ > , > > and I and others have tons of articles about using r10k. With this in > > place, your process would be a little simpler: > > > > git commit -am 'Something I want to push to test' > > git push origin test_change > > <open a PR from test_change to test, merge> > > > > The webhook fires, r10k starts deploying code, and in a few seconds to > > minutes, your test environment has been updated to incorporate those > > changes. You'd then use PRs to promote code from test -> dev -> qa -> > uat > > -> production. This has other impacts to your workflow, of course, > and you > > may actually be able to remove a level of environments (feature -> qa > -> > > uat -> production). You could later add some continuous integration > tests > > to your code, that are automatically run by GitHub/GitLab/Jenkins/etc, > > which could lead to removing the qa level as well. But that's down the > > road a bit. > > > > There is a lot of room for improvement here as you have time to focus > on > > your pipeline. > > Rob Nelson > > [3][email protected] <javascript:;> > > On Wed, May 18, 2016 at 9:02 PM, dkoleary > > <[4][email protected] <javascript:;>> wrote: > > > > Hey; > > To put this in perspective, I'm a sysadmin, not a developer. While > I've > > used git for a couple of years, until today, I could easily count > the > > number of times I issued a 'git branch' command. > > I'm practicing setting up a new puppet 4 server and, after some > > research, I've got various environments under git management and > have > > successfully 'promoted code' from test through production. It's a > wee > > bit tedious but I'm sure I could get used to it. > > What I'm hoping is to have someone more familiar the process verify > I'm > > doing it somewhat close to right and/or make suggestions on an > > improvements. I have heard of r10k; however, I'm one of those that > has > > to know what's going on under the covers. Up until now, r10k has > been > > of of those 'developer' things. Once I run through this a few > times, > > *then* I'll start playing with r10k. > > So, bit of a build up. Here's what I have: > > one git repo covering all puppet environments thusly:: > > # git branch -r > > origin/HEAD -> origin/master > > origin/dev > > origin/master > > origin/prod > > origin/qa > > origin/test > > origin/uat > > On a different system, one pulls the test system, develops code, > > commits, pushes, etc. In the test environment, the admin pulls the > > updated work and tests > > # pwd > > /etc/puppetlabs/code/environments/test > > # git branch > > * test > > once the tests are complete, a responsible admin accesses the dev > > environment and executes: > > git checkout test > > git pull # if necessary > > git checkout dev > > git merge test > > Process iterates through the environments to prod. > > # git log --oneline > > e298de7 prod.rst: mved from uat > > 07f3ab1 uat: merged from qa > > a20a85c qa: mved from dev > > 2f644f2 dev: renamed from test > > c8c067b test: added > > a432124 puppet production environment initial check in > > Thanks for any hints/tips/suggestion. > > Doug O'Leary > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Puppet Users" group. > > To unsubscribe from this group and stop receiving emails from it, > send > > an email to [5][email protected] > <javascript:;>. > > To view this discussion on the web visit > > [6] > https://groups.google.com/d/msgid/puppet-users/729cd1f2-2828-4d46-b008-2e0033fed34d%40googlegroups.com > . > > For more options, visit [7]https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Puppet Users" group. > > To unsubscribe from this group and stop receiving emails from it, > send an > > email to [8][email protected] <javascript:;>. > > To view this discussion on the web visit > > [9] > https://groups.google.com/d/msgid/puppet-users/CAC76iT_LczDuGm1kdJ-bmm11sM2ib%2BNbaHSvqqUOc34jj5C%2BTQ%40mail.gmail.com > . > > For more options, visit [10]https://groups.google.com/d/optout. > > > > References > > > > Visible links > > 1. https://github.com/commitmas/12-days-of-commitmas > > 2. > https://rnelson0.com/2015/05/03/configuring-an-r10k-webhook-on-your-puppet-master/ > > 3. mailto:[email protected] <javascript:;> > > 4. mailto:[email protected] <javascript:;> > > 5. mailto:[email protected] <javascript:;> > > 6. > https://groups.google.com/d/msgid/puppet-users/729cd1f2-2828-4d46-b008-2e0033fed34d%40googlegroups.com?utm_medium=email&utm_source=footer > > 7. https://groups.google.com/d/optout > > 8. mailto:[email protected] <javascript:;> > > 9. > https://groups.google.com/d/msgid/puppet-users/CAC76iT_LczDuGm1kdJ-bmm11sM2ib%2BNbaHSvqqUOc34jj5C%2BTQ%40mail.gmail.com?utm_medium=email&utm_source=footer > > 10. https://groups.google.com/d/optout > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:;>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-users/20160519172802.GA8993%40iniquitous.heresiarch.ca > . > For more options, visit https://groups.google.com/d/optout. > -- Rob Nelson [email protected] -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAC76iT-Q07fcjf8rLsm6cxjxvn13m3-_dnTxe3YMq-YJAUCawg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
