![如何将 Ansible 清单重用于本地任务?](https://linux22.com/image/65632/%E5%A6%82%E4%BD%95%E5%B0%86%20Ansible%20%E6%B8%85%E5%8D%95%E9%87%8D%E7%94%A8%E4%BA%8E%E6%9C%AC%E5%9C%B0%E4%BB%BB%E5%8A%A1%EF%BC%9F.png)
我正在尝试利用 Ansible 进行配置管理和集中管理。
我感兴趣的所有机器实际上都是将运行 Ansible 的主机上的容器。
目前,我正在编写一个动态清单脚本,该脚本对不同的主机进行分组,并使某些主机变量可用于每个组和每个主机。
如何使用库存信息来运行本地任务?
例子:我有一个名为 的容器foo
,动态清单为其定义了某些项目,如 IP 地址、cgroup 限制等。如何在来宾容器启动之前重用该信息,以便在主机上生成(使用常用的 Jinja2 模板)容器配置?
答案1
如果我理解正确的话,您需要访问为通用主机定义的一些 ansible 变量。您可以通过字典访问所有主机变量hostvars
,该字典以主机名作为主键,例如:
{{ hostvars['foo']['ipv4']['address'] }}
学分转到: