我是YAML和ansible的新手,我很困惑哪一行是关键,哪一行是列表。例如,在下面的剧本中,似乎“ - ”代表一个列表项。
---
- hosts: all
gather_facts: no
sudo: yes
tasks:
- name: Ensure NTP is installed.
yum: name=ntp state=present
- name: ensure ntp is running
service: name=ntpd state=started enabled=yes
因此host
是列表键,all
是其值,但gather_facts: no
,sudo:
yes
和task: ...
也是列表的字典,其中键为- hosts
?
将上述剧本运行到yamllint.com时,我得到以下输出:
---
-
gather_facts: false
hosts: all
sudo: true
tasks:
-
name: "Ensure NTP is installed."
yum: "name=ntp state=present"
-
name: "ensure ntp is running"
service: "name=ntpd state=started enabled=yes"
答案 0 :(得分:3)
-
代表一个列表项。在剧本的顶层,列表项代表“游戏”。
每个游戏都由一个字典表示,该字典包含许多具有值的参数/键(这些值中的一些,反过来,也可能是列表或词典)。
因此,更具体地回答您的问题:hosts
,gather_facts
,tasks
是第一个,也是唯一一个在剧本中播放的键。因此,它们应该缩进到同一级别。
任务的价值又是一个由字典表示的task
列表。
对于由yamllint.com生成的自动“固定”YAML,我不知道Ansible是否会正确解析它,因为它看起来很奇怪,但技术上应该如此。我仍然坚持使用非“固定”的YAML,因为格式化看起来特别奇怪。