On Wed, Oct 6, 2010 at 10:43 AM, Nigel Kersten <ni...@explanatorygap.net>wrote:

> On Tue, Oct 5, 2010 at 7:39 PM, Jeff McCune <j...@puppetlabs.com> wrote:
> > On Tue, Oct 5, 2010 at 6:05 PM, Mohamed Lrhazi <lrh...@gmail.com> wrote:
> >> Hello all,
> >>
> >> This is not a puppet proper issue of course.. but I was wondering if
> >> any of you could share some thoughts...
> >>
> >> When you deploy a system like Puppet at a large park of systems, you
> >> instantly increase the efficacy of mistakes and bugs in destroying the
> >> environment....
> >
> > With great power comes great responsibility.
> >
> >> How do you deal with that? I would be interested in any experience or
> >> input, especially puppet proper best practices...
> >
> > In addition to the other responses (testing, some more testing, and a
> > well defined release process) I also recommend a "Big red stop button"
> > of sorts.  Few sites seem to employ this, but the ones who have have
> > reported it to be incredibly useful when necessary and enjoy a little
> > more peace of mind.
> >
> > The big red stop button can take many forms.  I personally use a
> > wrapper script to launch puppet agent runs from cron, so the stop
> > button in my case  could be a simple curl command before running
> > puppet agent and the agent proceeds if and only if the curl command
> > does not get a valid 200 response from the HTTP request.
> >
> > This allow you to quickly touch a file somewhere and know it will halt
> > all puppet agents on all of your nodes.
>
>
> We have a slightly more sophisticated BigRedButton that we use.
>
> The clients make an HTTP request, supplying some core facts as
> parameters, like domain, hardware-type, major OS version, release
> track, etc.
>
> If they get anything other than a 404 for the response, they stop.
>
> Server side it's something you could whip up in any language quickly,
> where we have a simple YAML file that the app reads to work out
> whether it should be returning non-404 depending upon the parameters
> provided.
>
> This allows you to have slightly more fine-grained control over a
> disparate fleet, where you can block individual geographic regions,
> releases, hardware models from executing their normal update.
>
> You could implement all of this in puppet pre-run hooks nowadays
> rather than a wrapper script, but we have other reasons to want a
> wrapper. Admittedly these reasons are getting smaller and smaller each
> puppet release. :)
>
> --
> 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<puppet-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>
Write a script that does a diff between what's in revision control, and
what's in /etc/puppet. Show those changes to the user and prompt before
updating the local working copy. Then, do a puppetrun.

Doug.

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