Gotchya, I understand now.
Here's another way that could work
Put everything back to working in parallel with no max_hosts
Create a new task deploy:rolling
task :rolling do
orig_servers = find_servers(:roles => :servers)
orig_servers.each do |s|
roles[:servers].reset
server s.host, :servers
deploy.default
end
end
The intent is to use the roles but only put one through the deploy at a time,
if one breaks; it gets rolled back.
On Jan 3, 2012, at 9:47 PM, Haim Ashkenazi <[email protected]> wrote:
> Hi Donovan,
>
> On Jan 4, 6:21 am, Donovan Bray <[email protected]> wrote:
>> Post your code via gist so I can see what your trying.
> Here are 2 samples. working example (which cause duplication) and
> desired example. The output is included:
>
> https://gist.github.com/1558678
>
> Thanks
>
>>
>> On Jan 3, 2012, at 12:01 PM, Haim Ashkenazi <[email protected]> wrote:
>>
>>
>>
>>
>>
>>
>>
>>> Hi Donovan,
>>
>>> On Jan 3, 6:45 pm, Donovan Bray <[email protected]> wrote:
>>>> Put the start and stop task contents in methods and call those methods
>>>> from within the start stop tasks; then you can create the restart method
>>>> by calling the requisite start stop methods.
>>
>>>> Since the commands in the method will always be running in the task that
>>>> was directly invoked it should act the way you need.
>>> This is what I first thought, but it seems that It's not the case (At
>>> least not in my tests, I'll be happy to be wrong). If I limit the task
>>> with max_host => 1, it does run every command consecutively but in a
>>> wrong way:
>>
>>> - first they will consecutively stop the load balancer on all servers
>>> in the role
>>> - then they will consecutively stop the app on all servers in the role
>>> - (by not you get the point).
>>
>>> This is not a rolling deploy :(
>>
>>> The only way I found around it is by passing the :hosts key as option
>>> to the 'run' command. Am I wrong about it?
>>
>>>> You need to be careful with naming as methods will take precedence over
>>>> tasks when you use the namespace to call them.
>>> Thanks for the info
>>
>>> Bye
>>> --
>>> Haim
>>
>
> Haim
>
> --
> * You received this message because you are subscribed to the Google Groups
> "Capistrano" group.
> * To post to this group, send email to [email protected]
> * To unsubscribe from this group, send email to
> [email protected] For more options, visit this group at
> http://groups.google.com/group/capistrano?hl=en
--
* You received this message because you are subscribed to the Google Groups
"Capistrano" group.
* To post to this group, send email to [email protected]
* To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/capistrano?hl=en