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
这可行,但我觉得这不是这个扩展意味着...