三·Implementing Playbooks
1)YAML简介
● ansible playbook 的编写使用YAML Ain’t Markup Language 语言
● Yaml设计为用于表示数据结构,如列表和关系组,它采用易于编写、方便理解的格式
● 达成目标主要是通过摒弃传统包围式语法,方括号、大括号等
● 在YAML中,数据层次结构通过使用大纲缩进
● YAML文件使用可选的三短划线表示文档开始,以及可选的三局点表示文档结束
● 在文档开始和结束之间,数据结构通过一种大纲格式表示,将空格字符用于缩进
● 对于用于缩进的空格字符数量没有严格要求,但是数据元素的缩进量必须超过其父级
● 处于数据层次结构中同一级别的数据元素必须具有相同的缩进量
● 可以添加空行满足可读性
● 缩进只能通过空格字符实现,缩进对YAML的正确解释十分重要
● 由于各种编辑器和工具以不同的方式处理TAB制表符,因此YAML禁止将制表符用于缩进
---
title: My book
author:
first_name: Join
last_name: Doe
publish_date: 2018.01.16
chapters:
- number: 1
title: Chapter 1 Title
pages: 10
- numbre: 2
title: chapter 2 Title
pages: 7
...
2)在 Ansible playbook使用YAML开始于结束标志
● 编写playbook仅要求掌握YAML语法的基本知识
● YAML文件的开头是由三个端划线组成的开始标志,可选
● YAML文件的结尾是由三个句点组成的文档结束标志着,可选
3)在Ansible playbook中使用YAML字符串string
● 在YAML中的字符串不要求放在引号里,即使字符串中包含空格
● 如果需要字符串可以做双引号与单引号扩起
this is a string
'this is a string'
"this is a string"
● 编写多行字符串有两种方式。一种是使用竖线(|)字符表示保留字符串中的换行符
● 另一种方式是,使用大于号(>)字符来表示换行字符转换成空格,且行前的空白将被删除
include_newlines: |
Example Company
123 Main Street
Atlanta , GA 30303
4)Ansible playbook 中使用YAML字典
● YAML使用的key/value 键值对也成为字典、散列或关联数组
● 在key/value中,键与值通过由冒号和空格组成的分隔符隔开
● 字典通常以缩进的块格式表示
● 字典也可以使用内嵌块格式表示,其中多个key/value 用花括号扩起,并用逗号和空格隔开
● key: value
---
name: Automation using Ansible
code: 407
---
{
name: Automation using Ansible, code: