5.YAML介绍

  1. 什么是YAML
    YAML是一种存储数据的文件格式。类似jsonxml
    Ansible playbooks或者配置文件,以称为YAML的特定格式编写。如果您使用过其他数据结构格式(如XMLJSON),则应该能够轻松地使用它。
    在这里插入图片描述
    上图中就是以3种格式表示的一个server的定义

  2. 简单的数据格式

    1. 键值对: 键和值由冒号分隔, 冒号后面必须有空格。
    2. 数组: 数组名key后面加冒号,然后换行,每个数组元素前面加-,表示这是数组中的一个元素
    3. 字典(Map):字典是在一个项目下组合在一起的一组属性。字典名字后面加冒号;每个单一项目的属性前有相等数目的空格,每一项都对齐在一起。单一项目是key: value的形式。
      在这里插入图片描述
      YAML中的空格很关键,例如下面的例子,想将FatCarbs设置为Calories的值,就会报错。因为Calories已经有一个值105了。
      在这里插入图片描述
      数组(lists)可以包含字典。例如下面的例子,有个数组名字为Fruits,包含两个元素BananaGrape,这两个元素分别又是一个字典,字典里面包含了详细的信息。
      在这里插入图片描述
  3. 什么时候用数组?什么时候用字典?
    以汽车为例子。汽车是一个单一的对象, 它具有颜色、型号、 变速箱和价格等属性。为了存储单个对象的不同信息或属性,我们使用字典。
    在这里插入图片描述
    在这个简单的字典中,我以键值对定义了car的属性。可能不像这样简单, 例如, 如果我们需要将模型进一步拆分为model namemake year, 则可以将其表示为另一个字典中的字典。
    在这里插入图片描述
    在本例中, model的单个值现在被一个小字典替换,该字典包含两个属性:nameyear

    假设我们要存储六辆汽车的名称。名字是由汽车的颜色和型号来命名的。为了存储它, 我们将使用一个数组,因为它是同一类型对象的多个项。因为我们只存储名称, 所以我们有一个简单的字符串列表。如果我们想存储每辆车的所有信息。
    在这里插入图片描述
    我们之前列出的所有信息,如颜色、 型号、 变速器和价格, 该怎么办?我们将把数组从字符串列表修改为字典列表。因此, 我们展开数组中的每一项,并将名称替换为前面构建的字典。这样, 我们就可以使用字典列表在单个YAML文件中表示多辆汽车的所有信息。
    在这里插入图片描述

  4. 字典是无序集合, 而列表是有序集合
    您在这里看到的两个字典具有相同的banana属性。但是, 您可以看到, 脂肪和碳水化合物属性的顺序并不匹配。在第一本词典中, 脂肪的定义在碳水化合物之前,在第二本词典中, 碳水化合物排在脂肪之后, 但这并不重要。属性可以按任意顺序定义,但只要每个属性的值匹配,两个字典将仍然相同。
    在这里插入图片描述
    这对于数组是不同的。数组是有序集合,因此项的顺序很重要。所示的两个数组并不相同, 因为applebanana位于不同的位置。这是在使用数据结构时要记住的一点。
    在这里插入图片描述
    还请记住, 任何以#开头的行都将被自动忽略,并被视为注释。

    YAML例子: payslips是数组,包含三个对象,每个对象包含monthamount两个键值对。

    employee:
      name: john
      gender: male
      age: 24
      address:
        city: 'edison'
        state: 'new jersey'
        country: 'united states'
      payslips:
        - month: june
          amount: 1400
        - month: july
          amount: 2400
        - month: august
          amount: 3400
    

    更多关于Ansible的文章,请参考我的Ansible专栏:https://blog.csdn.net/u011069294/category_12331290.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值