Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将rails应用程序部署到Capistrano和rails 3中的多个域/用户/db组合?_Ruby On Rails_Ruby On Rails 3_Capistrano - Fatal编程技术网

Ruby on rails 如何将rails应用程序部署到Capistrano和rails 3中的多个域/用户/db组合?

Ruby on rails 如何将rails应用程序部署到Capistrano和rails 3中的多个域/用户/db组合?,ruby-on-rails,ruby-on-rails-3,capistrano,Ruby On Rails,Ruby On Rails 3,Capistrano,这听起来可能很奇怪(甚至很危险),但我想将一个rails应用程序部署到多个域。我为几个不同的客户建立了一个CMS。这些站点之间的唯一区别是CSS文件、图像、database.yml和config.yml文件。当我部署时,我想一次更新他们的所有站点。每个域使用不同的用户名和密码,因此我不能使用deploy.rb文件中正常设置的单个用户。基本上,我需要在不同的用户集、域和数据库上运行部署 我的需求不同于仅仅部署到几个暂存、测试或负载平衡服务器。每个web服务器都是一个独特且独立的生产服务器,运行起来

这听起来可能很奇怪(甚至很危险),但我想将一个rails应用程序部署到多个域。我为几个不同的客户建立了一个CMS。这些站点之间的唯一区别是CSS文件、图像、database.yml和config.yml文件。当我部署时,我想一次更新他们的所有站点。每个域使用不同的用户名和密码,因此我不能使用deploy.rb文件中正常设置的单个用户。基本上,我需要在不同的用户集、域和数据库上运行部署

我的需求不同于仅仅部署到几个暂存、测试或负载平衡服务器。每个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"

这样的事情可能吗?如果没有,一个好的选择将不胜感激

我们使用了
capistrano ext
的多级选项,如中所述

blogpost中的示例针对发布的不同阶段(测试、验收、生产),但您也可以使用它部署到不同的服务器。由于每个阶段都有自己的配置文件,您可以轻松地更改每个阶段的配置(config.yml/database.yml)


如果你有更多的问题,只要问:)

+1我起初以为这是一个重复的问题,但这与这个话题上的普通问题有点不同。