2011-02-09 12 views
2

這可能聽起來很奇怪(甚至是危險的),但我想部署一個rails應用程序到多個域。我爲一些不同的客戶建立了一個CMS。站點之間的唯一區別是CSS文件,圖像,database.yml和config.yml文件。當我部署時,我想一次更新他們的所有網站。每個域使用不同的用戶名和密碼,因此我不能使用deploy.rb文件中正常設置的單個用戶。基本上我需要在不同的用戶,域和數據庫上運行部署。如何在Capistrano和Rails 3中將Rails應用程序部署到多個域/用戶/數據庫組合?

我的需求與部署到多個分段,測試或負載平衡服務器不同。每個Web服務器都是一個獨特的獨立生產服務器,運行起來就像是一個不同的Rails應用程序。

我需要做的是這樣的deploy.rb如下:

role :app, "www.cats.com", "www.dogs.com" 
role :web, "www.cats.com", "www.dogs.com" 
role :db, "www.cats.com", "www.dogs.com" # both need the same migrations 

set :deploy_to "/home/#{cats_user}/www.cats.com", "/home/#{dogs_user}/www.dogs.com" 

是這樣的可能嗎?如果沒有,一個很好的選擇將不勝感激!

+0

+1我認爲這是在第一次重複,但它比關於這一主題的正常問題,有些不同。 – jdl 2011-02-09 06:31:29

回答

2

我們使用capistrano-ext的多級選項,如this article中所述。

博客帖子中的示例針對發佈(測試,驗收,製作)的不同階段,但您也可以使用它來部署到不同的服務器。由於每個階段都有自己的配置文件,您可以輕鬆地更改每個階段的配置(config.yml/database.yml)。

如果您還有其他問題,只問:)

相關問題