我自学与YAML的Ansible。我写了一个小测试来测试我环境中的主机名。
---
- hosts: all
tasks:
- name: get server hostname
command: hostname
但是当我运行ansible-playbook playbooks/hostname.yml
时,它给了我以下错误:
ERROR! Syntax Error while loading YAML.
The error appears to have been in '/home/ansible/work/ansible/playbooks/hostname.yml': line 5, column 1, but may be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: get server hostname
command: hostname
^ here
我已经仔细检查过没有额外的新行。此外,当我删除
name: get server hostname
它对我来说非常好。任何人都可以指出可能导致这个问题的原因吗?
答案 0 :(得分:1)
解析YAML对缩进很敏感,因此您发布的内容可能是:正确和错误,具体取决于前面的空格数。除非你非常精确,否则很难回答。
第1列中出现错误的最可能原因是空格以外的字符,但是如果有标签,则错误消息会直接指示。
使用以下代码以避免出现问题。将其复制到新文件并重新运行。
---
- hosts: all
tasks:
- name: get server hostname
command: hostname
此外,您的任务不是在Ansible中获取主机名的正确方法,尽管它可能有用。