Ansible之YAML语言

playbook写yml语句,若干模块发给Ansible,变成一个一个play,多个片段组合起来变成大片。

Ansible之YAML语言

最终还是要读取主机清单,来确定作用在哪些机器上。

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

    Ansible之YAML语言

YAML配置文件,不利于在网络中传输,用JSON传输数据更加方便。

可以用工具互相转换,参考网站:

https://www.json2yaml.com/

http://www.bejson.com/json/json2yaml/

上一篇:阿里云 Redis 服务遇到的问题


下一篇:ansible-playbook的YAML语法学习