【发布时间】:2017-12-19 15:36:11
【问题描述】:
我们有一些脚本可以帮助我们在 AWS 中设置具有多达 6 个虚拟机的 VPC。现在我想登录到这些机器中的每一个。出于安全原因,我们只能通过 SSH 访问其中一个,然后通过隧道/代理连接到其他机器。所以在我们的清单中,我们有 SSH 主机的 IP 地址(我们称之为 Redcarpet)和其他一些主机,如 Elasticsearch、Mongodb 和 工人:
#inventory/hosts
[redcarpet]
57.44.113.25
[services]
10.0.1.2
[worker]
10.0.5.77
10.0.1.200
[elasticsearch]
10.0.5.30
[mongodb]
10.0.1.5
现在我需要告诉每个组,除了红地毯使用某些 SSH 设置。如果这些适用于所有组,我会将它们放入inventory/group_vars/all.yml,但现在我必须将它们放入:
inventory/group_vars/services.ymlinventory/group_vars/worker.ymlinventory/group_vars/elasticsearch.ymlinventory/group_vars/mongodb.yml
这会导致重复。因此,我想使用include 或include_vars 来包含来自公共文件的一个或两个变量(例如inventory/common.yml)。但是,当我尝试在上面的任何 group_var 文件中执行此操作时,它不会获取变量。使用多个组共有的变量的最佳做法是什么?
【问题讨论】:
标签: ssh deployment ansible