【发布时间】:2012-02-14 00:07:52
【问题描述】:
一些背景知识,我是运行 2.9.0 和 capistrano-ext 1.2.1 的 capistrino。多阶段部署按预期工作。就像向角色添加服务器数组一样。
INSTANCES = ["this.server.com", "that.server.com"]
role(:web) {INSTANCES}
我一直在尝试使 :deploy_to 根据正在部署的服务器的名称生成一个路径,如下所示:
set :deploy_to, lambda { "/var/www/application/$HOSTNAME" }
这运行得很好,除了 this.server.com 和 that.server.com 实际上是同一个主机。在这个例子中,根据我的 deploy/stage.rb 文件中定义的服务器名称而不是有两个部署文件夹,它只生成一个 /var/www/application/server.com/
我一直在寻找一种方法来在 capistrano 级别注入它或引用一个可以保留这些细节的 shell 变量。似乎需要托管具有多个应用程序实例的应用程序服务器很常见。
我真正需要的是:
set :deploy_to, lambda { "/var/www/application/$SERVER_NAME_CAP_IS_USING" }
【问题讨论】:
-
我认为在这里使用不同的用户名也行不通。
标签: capistrano