YAML语法错误(Ansible 2.2.1.0)

时间:2017-03-07 04:02:13

标签: ansible yaml

我自学与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

它对我来说非常好。任何人都可以指出可能导致这个问题的原因吗?

1 个答案:

答案 0 :(得分:1)

解析YAML对缩进很敏感,因此您发布的内容可能是:正确和错误,具体取决于前面的空格数。除非你非常精确,否则很难回答。

第1列中出现错误的最可能原因是空格以外的字符,但是如果有标签,则错误消息会直接指示。

使用以下代码以避免出现问题。将其复制到新文件并重新运行。

---
- hosts: all
  tasks:
    - name: get server hostname
      command: hostname

此外,您的任务是在Ansible中获取主机名的正确方法,尽管它可能有用。