我想在部署capistrano时访问yml
模板文件中的当前主机/远程机器角色。
我试过的
host
变量,但似乎没有任何影响。
$CAPISTRANO:HOST$
似乎是旧版本的capistrano。我怎么能在模板化的yaml文件中做这样的伪代码呢?
production:
app_name: <%= TODO: IF HOST A/b/c -- App 1. If host Z -- app 2 %>
据我所知,我已经以编程方式处理了类似的问题。
您可能知道每个环境在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文件中编写此代码。