ansible - 分组主机在 group_vars 目录中查找哪个文件?

ansible - which file does grouped host look up in group_vars directory?

我已将每个组 (/inventory/hosts) 的 group_name.yml 个文件放在 /inventory/group_vars/ 目录中。 如何让群组查找其对应的 var.yml? 如果变量相同,它会被 /inventory/group_vars/all 覆盖吗?

/inventory/hosts

[group_1]
host_1
host_2

[group_2]
host_3
host_4

/inventory/group_vars/目录有

/inventory/group_vars/host_1.yml
/inventory/group_vars/host_2.yml
/inventory/group_vars/host_3.yml
/inventory/group_vars/host_4.yml

我希望host_1引用/inventory/group_vars/host_1.yml

中的变量

主机变量使用 host_vars 目录,组变量使用 group_vars.

对于您的情况,有效路径是:

/inventory/group_vars/all.yml
/inventory/group_vars/group_1.yml
/inventory/group_vars/group_2.yml
/inventory/host_vars/host_1.yml
/inventory/host_vars/host_2.yml
/inventory/host_vars/host_3.yml
/inventory/host_vars/host_4.yml

在不同版本的Ansible中(如果我没记错的话)vars文件是按字母顺序或组嵌套顺序处理的,所以你最好试试看。我认为在您的情况下,将首先应用 all.yml 中的变量,然后是 groupN.yml 中的变量,然后是 hostN.yml.

中的变量