当前位置:  开发笔记 > 运维 > 正文

使用Capistrano将Rails应用程序部署到多个Web服务器

如何解决《使用Capistrano将Rails应用程序部署到多个Web服务器》经验,为你挑选了2个好方法。

我目前正在为Rails应用程序设置一个新的生产环境,该应用程序包括多个负载均衡的应用程序服务器(目前只有两个,但随着时间的推移会增加).

我想使用Capistrano(我已经用于现有的单个服务器)在单个命令中处理应用程序到所有这些服务器的部署.我可以看到这样做的唯一方法是使用capistrano-ext(我其实已经使用部署到我的测试和试运行环境),通过定义一个新的"环境"为每个应用服务器(app1,app2等等),并进行了使用部署就像是:

cap app1 app2 app3 deploy

这是推荐的做法还是有更好的方法?



1> cwninja..:

假设capistrano多级:

config/deploy/production:

role :app, "server1", "server2", "server3"

现在cap deploy production将部署到所有3台服务器.



2> Damien MATHI..:

是啊.Capistrano本地管理多个服务器.不需要capistrano分机.
您只需要定义多个角色

role :app, "myserver.example.com"
role :db,  "mysecondserver.example.com"

默认情况下,您的任务将在每台服务器上执行.但您可以将任务限制为仅限一个或一些服务器.

task :migrate, :roles => [:app, :db] do
    # ...
end

此处,任务仅在app和db角色上执行.

您可以使用run方法执行相同的操作.

run "rake db:migrate", :roles => :db

rake db:migrate将仅在db服务器上运行.


请注意以上配置.多个应用服务器看起来像:role:app,"app1.example.com","app2.example.com","app3.example.com"
根据提出的问题,这不是正确的答案
推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有