Ansible标准循环无法运行,请求排查错误原因
解决Ansible剧本的YAML缩进错误问题
我看了你的剧本和报错信息,问题出在YAML的缩进不符合规范上——Ansible对YAML的缩进要求非常严格,哪怕一个空格不对都会触发语法错误。
从你提供的代码来看,user模块下的state和groups参数缩进比name要少,这就导致YAML解析器无法正确识别这些参数属于user模块,进而抛出语法错误。而错误提示指向的- name: looptask只是解析器最先发现异常的位置,实际问题在下方的参数缩进部分。
修正后的完整剧本
把state和groups的缩进调整到和name完全一致,确保它们都是user模块的子参数:
--- # Playbook file: loopplay.yml - name: loopplay hosts: centos2 tags: - loopplay tasks: - name: looptask user: name: "{{ item }}" state: present groups: "wheel" loop: - testuser1 - testuser2
额外小建议
- 编写YAML时统一用2个空格作为缩进单位,绝对不要混用Tab和空格,大部分YAML语法错误都来自这类细节
- 可以用
yamllint工具提前检查YAML文件的语法,能快速定位缩进、格式这类问题
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

