加载YAML时出现语法错误

时间:2017-10-22 09:12:22

标签: ansible yaml

我确实有这样定义的角色foo

# roles/foo/tasks/main.yml
---
- name: restart Apache
    systemd:
      name: apache2
      state: restarted
      daemon_reload: yes

当我启动请求此角色的剧本时,我会收到此错误:

ERROR! Syntax Error while loading YAML.


The error appears to have been in '/root/roles/foo/tasks/main.yml': line 4, column 12, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

- name: restart Apache
    systemd:
           ^ here

我不明白这里有什么问题,因为我在文件中找到了这样的样本...... (我遗漏了这个角色定义的其他部分并且运作良好)

1 个答案:

答案 0 :(得分:1)

修复缩进:

---
- name: restart Apache
  systemd:
    name: apache2
    state: restarted
    daemon_reload: yes
  

我不明白这里有什么问题,因为我在文档中找到了这样的样本......

YAML中的缩进对于解释很重要。必须在同一级别定义某些元素。

请注意,systemd:行以冒号结尾,后跟缩进块(整个块变为其值),而name:在同一行中定义了值restart Apache