这是因为Ansible使用了默认的行为,如果您在变量文件中使用主机组变量,则会创建一个新的主机作用域变量列表来存储每个主机的值。要避免这种行为,您可以使用Ansible v2.3引入的“组合连接符”来连接主机和组变量。例如:
在变量文件中定义:
myvar: group1: value1 group2: value2
在主机清单文件中定义:
[group1] host1
[group2] host2
连接主机和组变量使用“::”符号:
group1::myvar: group2::myvar:
这将使Ansible将变量关联到组和主机。这样,每个主机将具有组变量的值,而不是创建不必要的主机作用域变量列表。