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.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to