YAML语法错误(Ansible 2.2.1.0)

YAML语法错误(Ansible 2.2.1.0),ansible,yaml,Ansible,Yaml,我在自学,与YAML合作。我编写了一个小测试来测试我环境中的主机名 --- - hosts: all tasks: - name: get server hostname command: hostname 但当我运行ansible playbook playbooks/hostname.yml时,它给了我以下错误: ERROR! Syntax Error while loading YAML. The error ap

我在自学,与YAML合作。我编写了一个小测试来测试我环境中的主机名

   ---
     - 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

这对我来说非常好。有人能指出是什么导致了这个问题吗?

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

列1中出现错误的最可能原因是空格以外的字符,但是如果有制表符,错误消息会直接指出这一点

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

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

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

请确认您发布的代码,特别是前面的空格数(如果有)。另外:这是整个剧本吗?我将文件移动到升华文本。它显示了在命令之后有一个额外的行,这在Linux shell中很难注意到。在shell中编写YAML的最佳实践是什么?