YAML编写遇到的坑(好吧,是我的错)

准备用ansible管理服务器。
打算从最基础的安装服务器开始。
于是按照别人写的playbook,自己也写(chao)了以下的playbook:

- hosts: local_stage
  tasks:
    - name: install latest apache2
       apt: name=apache2 state=latest

然而却运行不了。

难道和python一样,要对齐?
于是改成这样:

- hosts: local_stage
  tasks:
    - name: install latest apache2
    apt: name=apache2 state=latest

奇怪。丢到YAMLLint上检查了一下,报的也不知道什么鬼,看不懂。毕竟是第一次写YAML。

明明有:,但是他又不认……
还尝试了以下几种写法,还都不行……

- hosts: local_stage
  tasks:
  - name: install latest apache2
    apt: name=apache2 state=latest
- hosts: local_stage
  tasks:
    - name: install latest apache2
       apt:name=apache2 state=latest

尝试的其他写法我就不在这里一一列举出来了。
最终可行的是这个:

---
- hosts: local_stage
  tasks:
    - name: install latest apache2
      apt: name=apache2 state=latest

可能大家没看出来。其实是这样的,

  1. - 代表无须列表,其每一项需要对齐。hoststasks从一开始就对齐了的,所以报错没有在那一行。
  2. tab和space不能混用。
  3. - : 后面必须跟一个空格。

第一次写yaml,感觉比python或java还严格……

标签:yaml

添加新评论