我有一个奇怪的问题。我有一个包含多个组的"hosts"文件。出于某种原因,当我使用"可行的剧本剧本"时。
将playbook应用到'hosts'文件中的所有主机。主机文件
all:
children:
GROUP1:
children:
webservers:
hosts:
hostname1:
sqlservers:
hosts:
hostname2:
GROUP2:
children:
webservers:
hosts:
hostname3:
hostname4:
GROUP3:
children:
webservers:
hosts:
hostname5:
hostname6:
sqlservers:
hosts:
hostname7:
ansible日志:
Positional arguments: playbook.yml
verbosity: 4
connection: smart
timeout: 10
become_method: sudo
tags: ('all',)
inventory: ('hostsfile',)
subset: GROUP1
forks: 5
1 plays in playbook.yml
在剧本里。我确实有'hosts: all',但在不同的工作中我没有这个问题。
Ansible注意到我指示的子集,但没有过滤它,而是成功地对所有主机运行剧本。
我昨天上网搜了一天也没找到问题。
任何帮助都将非常感激。
我想我自己找到了解决这个问题的方法。默认情况下,Ansible使用一组库存插件解析hosts文件,直到解析成功。在'ansible.cfg'中指定插件:
[inventory]
enable_plugins = yaml
问题解决了,我不知道为什么。
https://docs.ansible.com/ansible/latest/plugins/inventory.html