运维自动化之ANSIBLE--- YAML语法简介

本文介绍了YAML,一种具有高可读性和良好交互性的数据序列化格式,其特点包括易实现、信息模型一致和强大的表达能力。文章详细阐述了YAML的语法规则,如列表、字典的表示方法和结构划分,以及文件的组织方式。
摘要由CSDN通过智能技术生成

YAML语法简介

三种常见的数据交换格式

YAML介绍

  • YAML是一个可读性高的用来表达资料序列的格式。
  • YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822等。
  • Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。
  • YAML Ain't Markup Language,即YAML不是XML。 不过,在开发的这种语言时,YAML的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

特性

  • YAML的可读性好
  • YAML和脚本语言的交互性好
  • YAML使用实现语言的数据类型
  • YAML有一个一致的信息模型
  • YAML易于实现
  • YAML可以基于流来处理
  • YAML表达能力强,扩展性好

更多的内容及规范参见:The Official YAML Web Site

语法

> 在单一档案中,可用连续三个连字号(——)区分多个档案。 另外,还有选择性的连续三个点号( ... )用来表示档案结尾;

> 次行开始正常写Playbook的内容,一般建议写明该Playbook的功能;

> 使用#号注释代码;

> 缩进必须是统一的,不能空格和tab混用;

> 缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的;

> YAML文件内容是区别大小写的,k/v的值均需大小写敏感;

> 多个k/v可同行写也可换行写,同行使用:分隔;

> v可是个字符串,也可是另一个列表[];

> 一个完整的代码块功能需最少元素需包括 name 和 task;

> 一个name只能包括一个task > YAML文件扩展名通常为yml或yaml。

List:列表,其所有元素均使用“-”打头
      列表代表同一类型的元素
示例:
# A list of tasty fruits
- Apple
- Orange
- Strawberry
- Mango

Dictionary:字典,通常由多个key与value构成 键值对
示例:
---
# An employee record
name: Example Developer
job: Developer
skill: Elite

也可以将key:value放置于{}中进行表示,用,分隔多个key:value
示例:
---
# An employee record
{name: Example Developer, job: Developer, skill: Elite}  有空格

YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表、标量等数据结构。 其结构(Structure)通过空格来展示,序列(Sequence)里的项用"-"来代表,Map里的键值对用":"分隔。

示例:

name: John Smith
    age: 41
    gender: Male
    spouse:
      name: Jane Smith
      age: 37
      gender: Female
    children:
      - name: Jimmy Smith
        age: 17
        gender: Male
      - name: Jenny Smith
        age 13
        gender: Female

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值