2011-02-09 57 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)。

如果您还有其他问题,只问:)

相关问题