0

我有一个相当简单的hosts文件

[clients]
qas0062
[dbs_server]
qas0063

对于项目的用户,我们不希望他们修改hosts文件,而是我们有一个单独的user.config.yml文件,其中包含各种用户可配置的参数。在那里我们有条目,例如

dbs_server: qas0065

所以问题是:是否可以在hosts文件中使用一个变量来使用定义的值user.config.yml?格式是什么?

4

2 回答 2

3

很确定您不能模板化清单中的实际主机密钥条目,但您可以模板化其ansible_host连接 var 的值以实现大致相同的效果,例如:

[clients]
clienthost ansible_host="{{ clienthost_var }}"
[dbs_server]
dbsserver ansible_host="{{ dbsserver_var }}"

然后在播放开始执行之前从外部变量中设置这些变量的值(例如,使用vars_files指令或-e)。

于 2016-07-29T19:02:13.733 回答
0

还有另一种方法可以做同样的事情。我们可以通过在我们的剧本中使用以下语法来简单地引用主机(库存)文件中的值

host={{ groups['dbs_server'][0] }}

当您在组中有一个条目时,这很有效(在这种特定情况下为 db_server)

于 2017-01-06T21:28:24.137 回答