You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible.cfg配置Inventory通配路径无效,命令行-i正常,求排查

问题原因与解决方案

问题根源

命令行使用-i /Users/myuser/inventory/*.ini时,Shell会先解析通配符*,将其展开为目录下所有.ini文件的具体路径,传给Ansible的是多个独立的inventory文件路径,因此能正常加载。

而在ansible.cfg中配置inventory=/Users/myuser/inventory/*.ini时,Ansible会直接把这个带通配符的字符串当作单个文件路径去读取,系统中不存在名为*.ini的文件,自然会出现解析失败的警告,无法加载任何inventory内容。

两种可行解决方案

方案1:直接指定inventory目录(推荐)

Ansible支持直接将目录作为inventory源,会自动加载目录下所有符合已启用插件格式的文件(你的配置中已经启用了ini插件)。修改ansible.cfg的defaults段:

[defaults]
inventory=/Users/myuser/inventory/

这样Ansible会自动扫描该目录下所有.ini文件,无需手动维护文件列表。

方案2:手动列出所有inventory文件(适合固定文件列表的场景)

如果需要精确指定加载哪些文件,可以用逗号分隔多个文件路径:

[defaults]
inventory=/Users/myuser/inventory/file1.ini,/Users/myuser/inventory/file2.ini

注意新增或删除inventory文件时,需要同步更新这个配置。

验证

修改配置后执行ansible-inventory all --graph,应该能看到和命令行-i参数执行时一致的主机组结构。

内容的提问来源于stack exchange,提问作者Ricky Levi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 17:12:31