I were probably doing something stupid...
Its working now, but... it loops through the list of servers and the
executes the task for each server 16 times in total.
role :dev_xml_gerrard, "longtct03g", "longtct03h", "longtct03i",
"longtct03j"
task :foo, roles => :dev_xml_gerrard do
find_servers(:roles => :dev_xml_gerrard).each do |server|
run "uname -a"
run "sleep 4"
end
end
I have taken multistage out of the equation and am only using this
code above.
Regards
On Jan 30, 3:14 pm, Jamis Buck <[email protected]> wrote:
> 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
-~----------~----~----~----~------~----~------~--~---