ansible - Ansible 主机文件解析未按预期工作
问题描述
我有一个奇怪的问题。我有一个包含多个组的“主机”文件。出于某种原因,当我使用“ansible-playbook playbook.yml -l GROUPNAME”时,ansible 会将 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:
可靠的日志:
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
在“playbook.yml”文件中,我确实有“主机:全部”,但在不同的工作中我没有这个问题。
Ansible 确实注意到了我指出的子集,但没有对其进行过滤,而是针对所有主机成功运行 playbook。
我昨天在网上梳理了一整天,找不到问题。
任何帮助将不胜感激。
解决方案
我想我自己找到了解决这个问题的方法。默认情况下,Ansible 使用一组清单插件解析主机文件,直到成功。通过在“ansible.cfg”中指定插件:
[inventory]
enable_plugins = yaml
问题解决了,不知道为什么。
https://docs.ansible.com/ansible/latest/plugins/inventory.html
推荐阅读
- image - 使用 css 更改 jfx TableView ShowHideColumnButton 大小
- javascript - Express 路由器的函数 app.use(path, require path) 是如何工作的?
- python - Python作为非管理员?
- scala - 将地图转换为火花中的mapPartitions
- hyperledger-fabric - 添加新组织时,是否需要应用锚点?
- swift - 如何从不同的视图控制器访问引用插座?
- javascript - 如何使用 JS/Jquery 将 div 覆盖在其他 2 个 div 上
- html - 在 Swift 4 中将属性文本转换为 HTML
- excel - '>>' 附近的语法不正确。Excel VBA 读取带有有趣前导字符的 .SQL 文件(即  从测试中选择前 100 个 *)。编码问题
- c# - 有没有一种“简单的方法”来创建一个队列,在一定时间后,它会出队?(C#)