1. Define your roles in each stage file. E.g.
# config/deploy/staging.rb
role :app, "stage-app-01", "stage-app-02"
# config/deploy/production.rb
role :app, "prod-app-01", "prod-app-02"
2. Put the snippet in a task.
task :foo do
find_servers(:roles => :app).each do |server|
# ...
end
end
3. There is no step three!
- Jamis
On 1/30/09 7:51 AM, Gerhardus Geldenhuis wrote:
> True,
> But I do need multistage to deploy to different stages eg production,
> test, demo, load-test etc.
>
> I have also defined stages for different application stacks in
> production for example. eg prod-app1, prod-app2
>
> We need to deploy our tomcat application to one server at a time in
> production to prevent any outages. We handle about 350 web
> transactions a second on a busy day in one of our environments which
> makes it critical that deployment is one at a time. I have been trying
> to modify this line to be a task
> find_servers(:roles => :foo).each do |server|
> but no success so far. It is probably due to my lack of ruby language
> knowledge.
>
> In the example given a specific role is given, however all my tasks
> defined in my cap file have no specific role attached and will thus
> execute for all servers defined in the config file of the stage.
>
> Regards
>
> On Jan 30, 2:23 pm, Lee Hambley <[email protected]> wrote:
>> Ger,
>>
>> You don't need multistage to deploy to an array of servers?
>>
>> - Lee
>>
>> 2009/1/30 Gerhardus Geldenhuis <[email protected]>:
>>
>>
>>
>>> Hi
>>> I have finally found time to start implementing this but am a bit
>>> stuck atm. I am not sure how to convert this code snippet into a
>>> working task. I also need to adapt my task to work in a multistage
>>> environment where I set my role definition in each stage's config
>>> file.
>>> Regards
>>> On Jan 28, 3:31 pm, Jamis Buck <[email protected]> wrote:
>>>> find_servers(:roles => :foo).each do |server|
>>>> run "disable server on load balancer", :host => server
>>>> run "install new software", :host => server
>>>> run "test server", :host => server
>>>> # etc.
>>>> end
>>>> - Jamis
>>>> On 1/28/09 8:16 AM, Gerhardus Geldenhuis wrote:
>>>>> Hi
>>>>> I need to do something like the following:
>>>>> for server in role do
>>>>> Disable server on load balancer
>>>>> Install new software
>>>>> Test Server
>>>>> Enable server in load balancer
>>>>> If successful then deploy next server else fail/rollback.
>>>>> done
>>>>> The individual steps is not a problem but I am unsure how to approach
>>>>> the sequential install in a capistrano way.
>>>>> I could not find anything on the wiki or list archives.
>>>>> Regards
> >
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---