Ansible:列出要将其添加到';主机';文件

Ansible:列出要将其添加到';主机';文件,ansible,ansible-inventory,Ansible,Ansible Inventory,我设置了一组测试虚拟机(使用纯Debian)来玩,它们都在测试网络上,所以它是一个独立的虚拟机组。这些虚拟机很快就会被销毁,所以我不想将其名称添加到DNS中,同时我需要让它们与主机名通信 是否有任何方法可以基于Ansiblehosts文件中的主机IP在这些虚拟机上形成/etc/hosts文件 我可以这样设置主机名 192.168.0.5 myhostname=host01.local 192.168.0.6 myhostname=host02.local 所以我想我可以以某种方式形成这样的/e

我设置了一组测试虚拟机(使用纯Debian)来玩,它们都在测试网络上,所以它是一个独立的虚拟机组。这些虚拟机很快就会被销毁,所以我不想将其名称添加到DNS中,同时我需要让它们与主机名通信

是否有任何方法可以基于Ansible
hosts
文件中的主机IP在这些虚拟机上形成
/etc/hosts
文件

我可以这样设置主机名

192.168.0.5 myhostname=host01.local
192.168.0.6 myhostname=host02.local
所以我想我可以以某种方式形成这样的
/etc/hosts

{{ ip }} {{ myhostname }}

但我们可以将其存档。我想我可以迭代
组['all']
并使用
lineinfle
/etc/hosts
添加行,但到目前为止它对我不起作用。

您可以使用
inventory\u file
变量来获取hosts文件的路径文件名:

同样可用,
inventory\u dir
是保存Ansible的库存主机文件的目录的路径名,
inventory\u file
是指向Ansible的库存主机文件的路径名和文件名

您可以通过以下方式读取其变量:

tasks:
  - local_action: shell cat {{ inventory_file }}
    register: result
按照建议。更多关于这里


然后,您可以使用和来使用变量。

您可以使用
inventory\u文件
变量来获取主机文件的路径文件名:

同样可用,
inventory\u dir
是保存Ansible的库存主机文件的目录的路径名,
inventory\u file
是指向Ansible的库存主机文件的路径名和文件名

您可以通过以下方式读取其变量:

tasks:
  - local_action: shell cat {{ inventory_file }}
    register: result
按照建议。更多关于这里

然后可以使用和来使用变量