2010-06-08 51 views
1

Capistrano正在很好地部署到單個服務器。但是,我的Web應用程序有多個生產API服務器。當我部署時,我的代碼需要立即部署到每個API服務器。手動指定每個服務器不是我正在尋找的解決方案(例如,我不想執行「cap api1 deploy; cap api2 deploy」)。如何通過「cap deploy」部署到多個冗餘生產服務器?

有沒有一種方法,使用Capistrano,一次部署到所有服務器,只需一個簡單的「cap deploy」?我想知道我需要對典型的deploy.rb文件進行哪些更改,是否需要爲每個服務器創建單獨的文件以及是否以及如何更改Capfile。另外,我需要能夠爲每個服務器指定不同的deploy_to路徑。理想情況下,我不必爲不同服務器的不同配置文件重複一些操作(例如,不需要多次指定:repository,:application等)。

我花了好幾個小時在Google上搜索並查看了教程,但是我沒有發現任何幫助。

這裏是我目前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 

可以工作,但我覺得這不是什麼這個擴展是爲...

回答

0

好像你可能會感興趣的「多服務器」上Getting Started page標題。那是你的追求?

+0

我看到了,但他們只指定域名。就像我說的:我需要指定域名和每個服務器的自定義路徑。我可以做'role:libs,'private.capify.org','mail.capify.org'',但是我怎樣才能爲每個服務器指定一個路徑(並且以這種方式與capistrano兼容)? – 2010-06-08 16:47:18

+0

現在您已經重申了自定義路徑要求,但我有點茫然。我沒有廣泛使用這個系統。 – 2010-06-08 21:43:55

+0

好的。感謝您的嘗試。 – 2010-06-08 21:56:08

相關問題