python - Ansible-lint:不理解混淆 linting 错误
问题描述
我正在使用 CI/CD 管道,并且管道的一部分ansible-lint
针对一些剧本运行。Ansible-lint 通过 docker 容器运行。我有一些剧本给了我一个非常令人困惑的错误。这是一个示例剧本和运行结果ansible-lint
。
剧本:
---
- name: "SET CONFIG"
hosts: my_host
tasks:
- name: Test
debug:
msg: "Test message"
ansible-lint 命令:ansible-lint playbook.yml
ansible-lint 输出:
Couldn't parse task at playbook.yml:6 (conflicting action statements: debug, __line__
The error appears to be in '<unicode string>': line 6, column 7, but may
be elsewhere in the file depending on the exact syntax problem.
(could not open file to display line))
{ 'debug': {'__file__': 'playbook.yml', '__line__': 8, 'msg': 'Test message'},
'name': 'Test',
'skipped_rules': []}
我在几本剧本上都遇到了这个错误,但我把它归结为这个小测试剧本来说明正在发生的事情。我真的无法理解发生了什么。如果我删除tasks
定义,剧本会很好。
我正在运行以下内容:
- 蟒蛇:3.8.5
- Ansible:2.8.5
- Ansible-lint:4.2.0
- 码头工人:19.03.5
有人对发生了什么有想法吗?我在 StackOverflow 上看到过其他类似的问题,但这些解决方案似乎都表明需要分离任务。这个剧本只有一个任务。
解决方案
我遇到了几乎相同的问题,但是在基于 Debian Stretch 的 docker 映像中使用了 python2.7。Ansible 2.10 是共同因素,@mdaniel 的建议是正确的,因为该错误是问题所在 - 因此升级到 ansible 4.3.5 或更高版本是解决方案。
推荐阅读
- angular - UI 未在 IE 中更新,Array 正在使用 ngFor 显示
- angular - Moment() 未在 Angular 中定义
- highcharts - Highcharts 区域填充顶部
- java - Cmake 在构建 OpenCv 时无法识别 java
- hibernate - 如何在hibernate中编写SQL sum() 和groupby?
- sql - 仅当值不同时,才在不同实例上从模式 A 更新到模式 B
- vba - 在输入数组之前从变量帖子中减去值
- html - 当尺寸缩小到移动设备时图片消失
- .net-core - .NET Core 2.0 LDAP/AD 身份验证使用 SSL VPN 隧道
- delphi - Delphi:.dcu 未找到,但代码可在另一台计算机上运行