首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Capistrano部署到单个特定服务器

如何使用Capistrano部署到单个特定服务器
EN

Stack Overflow用户
提问于 2009-01-09 21:28:28
回答 5查看 32.9K关注 0票数 60

我在生产环境中有一个系统,它有几个服务器,分别扮演不同的角色。我想通过部署到特定的服务器来测试新的应用程序服务器,而不必重新部署到生产中的每台服务器。有没有办法让Capistrano部署到特定的服务器?理想情况下,我希望能够运行以下内容

代码语言:javascript
复制
cap SERVER=app2.example.com ROLE=app production deploy

如果我只是想部署到app2.example.com。

谢谢!

更新我尝试了武隆建议的解决方案,执行:

代码语言:javascript
复制
cap HOSTS=app2.server.hostname ROLE=app qa deploy 

但capistrano似乎试图在该服务器上执行除应用程序任务之外的其他角色的任务。也许我需要更新我的cap版本(我运行的是v2.2.0)?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-22 19:59:03

我最终在capistrano用户列表here上发布了一个问题,并从Jamis那里得到了以下回复(为了清楚起见,我在这里编辑了一下):

尝试HOSTS环境变量:

代码语言:javascript
复制
cap HOSTS=app2.example.com production deploy

请注意,这样做会将app2视为在每个角色中,而不仅仅是在恰好声明它的角色中。

如果您想要执行常规部署,但仅对app2执行操作,并且仅在您的配方文件中声明了app2,则可以使用HOSTFILTER变量:

代码语言:javascript
复制
cap HOSTFILTER=app2.example.com production deploy 

..。

考虑这个具体的例子。假设您的脚本定义了三个服务器,A、B和C。它定义了一个任务"foo",该任务(默认情况下)希望在A和B上运行,而不是在C上运行。如下所示:

代码语言:javascript
复制
role :app, "A", "B"
role :web, "C"

task :foo, :roles => :app do
  run "echo hello"
end

现在,如果您执行cap foo,它将在A和B上运行echo命令。

如果使用cap HOSTS=C foo,它将在C上运行echo命令,而不考虑任务的:roles参数。

如果执行cap HOSTFILTER=C foo,它根本不会运行echo命令,因为(A、B)和(C)的交集是一个空集。(foo的主机列表中没有与C匹配的主机。)

如果您执行cap HOSTFILTER=A foo,它将只在A上运行echo命令,因为( A,B)与(A)相交的是(A)。

最后,如果您执行cap HOSTFILTER=A,B,C foo,它将在A和B(而不是C)上运行echo命令,因为(A、B)与(A、B、C)相交的是(A、B)。

总而言之:主机完全覆盖任务的主机或角色声明,并强制所有内容在指定的主机上运行。另一方面,HOSTFILTER只是根据给定的列表过滤现有主机,只选择那些已经在任务服务器列表中的服务器。

票数 128
EN

Stack Overflow用户

发布于 2009-01-11 00:49:47

以下内容应该开箱即用:

代码语言:javascript
复制
cap HOSTS=app2.example.com ROLE=app deploy

如果您希望部署到具有相同角色的>1台服务器:

代码语言:javascript
复制
cap HOSTS=app2.example.com,app3.example.com,app4.example.com ROLE=app deploy
票数 3
EN

Stack Overflow用户

发布于 2011-01-24 10:00:02

我也有类似的问题,并尝试了以下方法。它是有效的:

代码语言:javascript
复制
cap production ROLES=web HOSTS=machine1 stats
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/429816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档