上一章节我给出了一个简单的playbook
这一章节让我们来看看细节
playbook 是 YAML 格式的
YAML是”YAML Ain’t a Markup Language”(YAML不是一种置标语言)的递归缩写。
在开发的这种语言时,YAML 的意思其实是:”Yet Another Markup Language”(仍是一种置标语言)
YAML 文件应该以三个减号 — 开头, 不过你也可以忽略它, 不会带来任何问题
注释是通过 # , 和 shell 脚本一样
字符串文本也不需要使用 引号 括起来, 当然如果括起来可以, 即使中间包含空格也可以不用引号
hello world 这样的字符串完全可以识别正确
对于布尔类型的值十分灵活
如果一个值为”真” 可以使用
true, True , TRUE , yes, Yes, YES, on, On, ON , y ,Y
对应的如果一个值为 “假” 可以使用
false, False, FALSE, no, No, NO, off, Off, OFF, n, N
列表格式
如果你使用过json, json的列表格式是这样的
[ “hello”, “world”] |
YAML中列表使用 减号 “-” 分割列表
– hello- world |
第三节中我们使用了 – name: install 这样的描述
YAML中的 冒号 是用来表示 “字典” 的, 但是这个字典更像是 json中的对象, python中的字典
我们以一个python字典为例
{key1 : value1, key2 : value2 } |
对应的YAML是
key1: value1key2: value2 |
对于较长的内容, 大于号 > 标记 折行 , 而所有的换行符反而会被替换成空格
通过观察,你现在可以看出一个yaml文件的内容, 实际上就是 由字典元素组成的列表
– 列表
字典key1:字典value1
字典key2:字典value2
字典key3:
-key3的列表
key3列表里的key1:value1
每个play必需包含下面两项
- host
- task
host用于标示一组主机
task用于标示需要执行的任务