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 <haim.ashken...@gmail.com> wrote:

> Hi Donovan,
> 
> On Jan 4, 6:21 am, Donovan Bray <donno...@gmail.com> 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 <haim.ashken...@gmail.com> wrote:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> Hi Donovan,
>> 
>>> On Jan 3, 6:45 pm, Donovan Bray <donno...@gmail.com> 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 capistrano@googlegroups.com
> * To unsubscribe from this group, send email to 
> capistrano+unsubscr...@googlegroups.com 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 capistrano@googlegroups.com
* To unsubscribe from this group, send email to 
capistrano+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/capistrano?hl=en

Reply via email to