我已经开始学习和使用 ansible 来配置我的登台和生产服务器。我想做的一件事是通过清单文件配置 /etc/hosts 。
看来这是可能的。这是一种这样的用法: https ://gist.github.com/rothgar/8793800
但是,我对 Ansible 有点陌生,我不明白。有人可以用简单的英语解释我如何使它在实践中工作吗?
例如,如果我的库存文件包含。
[compute]
1.2.3.4
5.6.7.8
[db]
2.3.4.5
6.7.8.9
10.11.12.13
[all]
compute
db
[all:vars]
...
我想说的是,运行剧本后我的主机文件包含
2.3.4.5 db1
6.7.8.9 db2
10.11.12.13 db3
1.2.3.4 compute1
5.6.7.8 compute2
这可能吗?
您可以从模板生成主机条目。遍历组列表,丢弃类似
all
and的组ungrouped
,然后遍历每个组中的主机列表:以上
{{host}}
用于IP地址,因为这让我可以在我的系统上测试它,但你可能更喜欢{{hostvars[host]['ansible_default_ipv4']['address']}}
在真实环境中,除非你确定你总是在你的库存中使用IP地址。在库存文件中:
在 playbook.yaml