[chef] Re: Re: Re: Re: Re: Push Jobs Questions


Chronological Thread 
  • From: "Cerny,Nathan" < >
  • To: " " < >
  • Subject: [chef] Re: Re: Re: Re: Re: Push Jobs Questions
  • Date: Mon, 24 Nov 2014 15:48:44 +0000
  • Accept-language: en-US

I don’t think the quorum functionality behaves like you think.  The quorum essentially says “If at least X% is available, run on all”.

In my opinion, a better pattern here would be to create an orchestration recipe that depends on the push_jobs cookbook (and thus gets access to the push_jobs resource).  Within that recipe, you would do a search to grab all of your potential nodes, then loop over that resource N nodes at time (being sure to set the parameter to wait for the job to finish before moving on).



You may be able to use the Quorum functionality to half-bake this [0]:

```
knife job start --quorum 90% 'chef-client' --search 'role:webapp'
```

The minimum number of nodes that match the search criteria, are
available, and acknowledge the job request. This can be expressed as a
percentage (e.g. 50%) or as an absolute number of nodes (e.g. 145).
Default value: 100%

I'd try values like 50% of your available foobars and see how it works
out for ya.

Good Luck!

cheers,

--aj

[0] https://github.com/opscode/knife-push#examples

On Sat, Nov 22, 2014 at 8:56 AM, Bryan Baugher < "> > wrote:
> Great, thanks for the links. Somehow google wasn't being helpful.
>
> My use case is fairly simple. I want to run chef-client on my nodes in a
> particular environment but I want to ensure that,
>
>  * I don't end up restarting all the services at once
>  * A bad config doesn't take out the whole service
>
> The simplest version of this would just be to group the nodes into X number
> of groups and run chef-client one group at a time. Knife ssh has a
> concurrency option which limits the number of ssh connections which would
> also achieve the same goal.
>
> On Fri Nov 21 2014 at 1:45:45 PM AJ Christensen
> < "> > wrote:
>>
>> https://github.com/opscode/omnibus-pushy
>> https://github.com/opscode/oc-pushy-pedant
>> https://github.com/opscode/omnibus-push-jobs-client
>> https://github.com/opscode/opscode-pushy-server
>> https://github.com/opscode/opscode-pushy-simulator
>> https://github.com/opscode/pushy_common
>> https://github.com/opscode/knife-push
>> https://github.com/opscode/opscode-pushy-client
>>
>> Try searching through the issues, or logging an issue or feature
>> request or RFC. "don't run command X on all nodes at the same time"
>> sounds a little hard to implement. Do you mean mutually exclusive,
>> configurable contention, locking of commands?
>>
>> Can you describe your use-case? An independent team of Chef operators
>> has been evaluating use cases and building tests/example cases for
>> Pushy and tools in the same field (our cases thus far have been around
>> Cassandra ring bootstrap, expansion and contraction)
>>
>> cheers,
>>
>> --aj
>>
>> On Sat, Nov 22, 2014 at 8:39 AM, Bryan Baugher < "> > wrote:
>> > Hello everyone,
>> >
>> > Is the push jobs code available on github anywhere? Also are there any
>> > plans
>> > to add a kind of concurrency option (i.e. don't run command X on all
>> > nodes
>> > at the same time)?
>> >
>> > Bryan

CONFIDENTIALITY NOTICE This message and any included attachments are from Cerner Corporation and are intended only for the addressee. The information contained in this message is confidential and may constitute inside or non-public information under international, federal, or state securities laws. Unauthorized forwarding, printing, copying, distribution, or use of such information is strictly prohibited and may be unlawful. If you are not the addressee, please promptly delete this message and notify the sender of the delivery error by e-mail or you may call Cerner's corporate offices in Kansas City, Missouri, U.S.A at (+1) (816)221-1024.



Archive powered by MHonArc 2.6.16.

§