Ansible之YAML语言
playbook写yml语句,若干模块发给Ansible,变成一个一个play,多个片段组合起来变成大片。
最终还是要读取主机清单,来确定作用在哪些机器上。
YAML语言
YAML是一个可读性高的用来表示资料序列的格式。
YAML参考了其他多种语言,包括XML、C、Python、Perl
YAML是一种语言,通用的标记性语言。
:"Yet Another Markup Language"(
YAML更加的简洁,可读性更好。
YAML语法简介
开始用---
多个文件也可以用---隔离开
文件后缀用yml
- 在单一文件第一行,用连续三个连字号“-” 开始,还有选择性的连续三个点号( ... )用来表示文件的结尾
- 次行开始正常写Playbook的内容,一般建议写明该Playbook的功能
- 使用#号注释代码
- 缩进必须是统一的,不能空格和tab混用
- 缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的
- YAML文件内容是区别大小写的,key/value的值均需大小写敏感
- 多个key/value可同行写也可换行写,同行使用,分隔
- v可是个字符串,也可是另一个列表
- 一个完整的代码块功能需最少元素需包括 name 和 task
- 一个name只能包括一个task
- YAML文件扩展名通常为yml或yaml
YAML字典
- 字典 键值对 不用横线 冒号后又空格 用 , 隔开
- 缩进 同一级必须一样,按照缩进来判断是否同一级别。
- 字典由多个key与value构成,key和value之间用 :分隔,所有k/v可以放在一行,或者每个 k/v 分别放在不同行
List列表
列表由多个元素组成,每个元素放在不同行,且元素前均使用“-”打头,或者将所有元素用 [ ] 括起来放在同一行
常见的三种数据格式
- XML:Extensible Markup Language,可扩展标记语言,可用于数据交换和配置
- JSON:JavaScript Object Notation, JavaScript 对象表记法,主要用来数据交换或配置,不支持注释
- YAML:YAML Ain't Markup Language YAML 不是一种标记语言, 主要用来配置,大小写敏感,不支持tab
YAML配置文件,不利于在网络中传输,用JSON传输数据更加方便。
可以用工具互相转换,参考网站:
https://www.json2yaml.com/
http://www.bejson.com/json/json2yaml/
* * *
胖并快乐着的死肥宅
* * *