我正在尝试利用 Ansible 进行配置管理和集中管理。
我感兴趣的所有机器实际上都是将运行 Ansible 的主机上的容器。
目前,我正在编写一个动态清单脚本,该脚本对不同的主机进行分组,并使某些主机变量可用于每个组和每个主机。
如何使用库存信息来运行本地任务?
例子:我有一个名为 的容器foo
,动态清单为其定义了某些项目,如 IP 地址、cgroup 限制等。如何在来宾容器启动之前重用该信息,以便在主机上生成(使用常用的 Jinja2 模板)容器配置?
答案1
如果我理解正确的话,您需要访问为通用主机定义的一些 ansible 变量。您可以通过字典访问所有主机变量hostvars
,该字典以主机名作为主键,例如:
{{ hostvars['foo']['ipv4']['address'] }}
学分转到: