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
可能大家没看出来。其实是这样的,
-
代表无须列表,其每一项需要对齐。hosts
和tasks
从一开始就对齐了的,所以报错没有在那一行。- tab和space不能混用。
-
、:
后面必须跟一个空格。
第一次写yaml,感觉比python或java还严格……