如何在Capistrano中访问当前主持人的角色?

问题描述 投票:1回答:1

我想在部署capistrano时访问yml模板文件中的当前主机/远程机器角色。

我试过的

  • 我试过试验看是否有可用的host变量,但似乎没有任何影响。 $CAPISTRANO:HOST$似乎是旧版本的capistrano。

我怎么能在模板化的yaml文件中做这样的伪代码呢?

production: app_name: <%= TODO: IF HOST A/b/c -- App 1. If host Z -- app 2 %>

capistrano newrelic capistrano3
1个回答
0
投票

据我所知,我已经以编程方式处理了类似的问题。

您可能知道每个环境在config / deploy /目录中都有一个.rb文件。

在我们的问题中,我们有一个YAML文件,其中包含主机和角色信息,即。下图: A: - web - db - mongo B: - web - app

为了应用特定于每个主机的这个角色,我们遍历这个YAML文件(ruby很容易按照说明)并添加了一行代码。这是伪代码:

for host in HOST_LIST_YAML do for role in ROLE_LIST do role :role, %w{USER@host} end end

此处,所有角色映射都应用于主机。同样,您可以在environment.rb文件中编写此代码。

© www.soinside.com 2019 - 2024. All rights reserved.