【问题标题】:How to deploy to multiple redundant production servers with "cap deploy"?如何使用“cap deploy”部署到多个冗余生产服务器?
【发布时间】:2011-03-01 05:51:31
【问题描述】:

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

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

我花了几个小时在 Google 上搜索并浏览教程,但没有发现任何帮助。

这是我当前 deploy.rb 文件中的一个 sn-p:

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

这可以工作,但我觉得这不是这个扩展的目的......

【问题讨论】:

    标签: deployment capistrano


    【解决方案1】:

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

    【讨论】:

    • 我看到了,但他们只指定域名。就像我说的:我需要为每台服务器指定域名和自定义路径。我可以做 'role :libs, "private.capify.org", "mail.capify.org"',但是我如何指定每个服务器的路径(并且以与 capistrano 兼容的方式)?跨度>
    • 既然您重申了自定义路径要求,我有点不知所措。我没有广泛使用该系统。
    猜你喜欢
    • 2016-05-30
    • 2019-01-05
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多