我正在寻找一种使用 Ansible 进行配置管理的方法。
我有结构 repo/1.2.3.4/file.conf。
Ansible 能否获取每个主机的 IP 1.2.3.4 并将文件部署到主机?使用变量将使配置更容易。
- copy: src=/repo/$IP/file.conf dest=/etc/file.conf owner=foo group=foo mode=0644
答案1
是的,您可以使用 Ansible 做到这一点。Ansible 在每次运行之前都会收集系统的事实。您可以使用模块检查有关系统的这些事实,setup
如下所示:
ansible hostname -m setup
查看文档了解更多信息。
我猜你正在寻找默认的 ip4 地址。也就是ansible_default_ipv4
。你可以像这样访问变量的值:
- copy: src=/repo/{{ ansible_default_ipv4.address }}/file.conf dest=/etc/file.conf owner=foo group=foo mode=0644