如何使用“cap deploy”部署到多个冗余生产服务器?

时间:2010-06-08 15:39:56

标签: deployment capistrano

Capistrano非常适合部署到单个服务器。但是,我的Web应用程序有多个生产API服务器。部署时,我的代码需要立即部署到每个API服务器。手动指定每个服务器不是我正在寻找的解决方案(例如,我不想做“cap api1 deploy; cap api2 deploy”)。

有没有办法,使用Capistrano,只需一个简单的“上限部署”,一次部署到所有服务器?我想知道我需要对典型的deploy.rb文件做出哪些更改,我是否需要为每个服务器创建一个单独的文件,以及是否以及如何更改Capfile。此外,我需要能够为每个服务器指定不同的deploy_to路径。理想情况下,我不必在不同的配置文件中为不同的服务器重复一些事情(例如,不必多次指定:repository,:application等)。

我花了几个小时在谷歌上搜索并查看教程,但我没有发现任何有用的信息。

以下是我当前deploy.rb文件的摘录:

set :application, "testapplication" 
set :repository,  "ssh://domain.com//srv/hg/#{application}" 
set :scm, :mercurial

set :deploy_to, "/srv/www/#{application}" 

role :web, "domain.com" 
role :app, "domain.com" 
role :db,  "domain.com", :primary => true, :norelease => true

我应该只使用多级扩展吗?

task :deploy_everything do
  system "cap api1 deploy" 
  system "cap api2 deploy" 
  system "cap api2 deploy" 
end

这可行,但我觉得这不是这个扩展意味着...

1 个答案:

答案 0 :(得分:0)

您似乎对Getting Started page上的“多个服务器”标题感兴趣。这就是你要追求的吗?