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

Ubuntu 26.04下Ansible inventory.yml解析失败:冒号缺失问题求助

解决Ubuntu 26.04中Ansible Inventory YAML解析失败的问题

针对你遇到的[ERROR]: YAML parsing failed: While scanning a simple key could not find expected ':'错误,按以下步骤排查:

1. 检查文件缩进是否合规

YAML对缩进要求严格,必须使用空格,不能混用Tab。即使你的示例看起来正确,实际文件可能存在隐藏的Tab字符。执行以下命令查看文件中的不可见字符:

cat -A inventory.yml

如果输出中出现^I,说明存在Tab,将所有Tab替换为2或4个空格即可。

2. 排查UTF-8 BOM头问题

部分编辑器保存文件时会添加UTF-8 BOM头(字节序列EF BB BF),这会干扰YAML解析器。执行以下命令检查文件开头:

hexdump -C inventory.yml | head -1

如果开头显示ef bb bf,使用以下命令去除BOM:

sed -i '1s/^\xef\xbb\xbf//' inventory.yml

3. 验证Ansible版本兼容性

Ubuntu 26.04默认搭载的Ansible版本(通常为2.16+)对YAML语法的校验比旧版本更严格。你可以尝试用简化的inventory格式测试:

webservers:
  hosts:
    192.168.56.9:
      ansible_user: root

如果这个格式能正常解析,说明原文件的写法可能存在隐性语法问题(比如键名前后有不可见空格)。

4. 使用ansible-lint做语法检查

安装ansible-lint并检查inventory文件:

sudo apt install ansible-lint
ansible-lint inventory.yml

工具会直接指出具体的语法错误位置和原因。

5. 测试INI格式的inventory

如果YAML格式始终报错,临时切换为INI格式验证是否是YAML解析器的问题:

[webservers]
dev ansible_host=192.168.56.9 ansible_user=root

执行ansible-inventory -i inventory.ini --list,如果能正常输出,说明问题出在YAML文件本身而非Ansible环境。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 03:47:27