Ansible 入门 4 (Ansible管理docker的容器)

Submitted by Lizhe on Wed, 06/07/2017 - 17:39

上一章节我给出了一个简单的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: value1

key2: value2

对于较长的内容,   大于号 > 标记 折行 , 而所有的换行符反而会被替换成空格

 

通过观察,你现在可以看出一个yaml文件的内容, 实际上就是 由字典元素组成的列表

- 列表

  字典key1:字典value1

  字典key2:字典value2

  字典key3:

    -key3的列表

     key3列表里的key1:value1

 

每个play必需包含下面两项

  • host
  • task

host用于标示一组主机

task用于标示需要执行的任务