Ansible文件格式

JSON格式解析
json是什么
  • JSON是javeScript对象表示法,它是一种基于文本(基于字符串)独立于语言的的轻量级数据交换格式
  • JSON中的分隔符限于单引号“ ‘ ” ,小括号“()”、中括号“ [ ]"、大括号” { }“、冒号” : “、和逗号” ,“
JSON特性
  • JSON是纯文本
  • JSON具有”自我描述性“(人类可读)
  • JSON具有层级结构(值中存在值)
  • JSON可通过JaveScript进行解析
JSON语法规则
  • 数据在名称/值对中 key:value键值对

  • 数据由逗号分隔 [a,b,c,d]

  • 大括号保存对象 {key:value}

  • 中括号保存数组

  • JSON数据的书写格式是:名称/值对

    名称/值对 包括字段名称(在双括号中),后面写一个冒号,然后是值,例:

    ”诗仙“ : ”李白“ 基本结构

    嵌套结构

    key : [“a”,“b”,“123”]

    [“a”,”b“,”xx“ :”123“]

    [“a”,“b”,[1,2,3] ]

    key: {k1:v1}

    结构:括号对齐

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VArzOwxD-1629805027424)(C:\Users\22380\AppData\Roaming\Typora\typora-user-images\image-20210818230103477.png)]

YAML简介
YAML是什么
  • 是一个可读性高,用来表达数据序列的格式
  • YAML(YAML Ain’t Markup Language)
  • YAML参考了多种语言,如C语言、python、Perl等,并从XML、电子邮件的数据格式中获得灵感,Clark Evans在2001年首次发表了这种语言,目前已有数种编程语言或脚本支持这种语言
YAML基础语法
  • YAML的结构通过空格来展示

  • 数组通过” - “来表示

  • 键值对使用” :“(冒号空格)来表示

  • YAML使用一个固定的缩进风格表示数据层结构关系

  • 一般每个缩进级别由两个以上空格组成

  • #表示注释

  • 注意

    不要使用tab,缩进是最容易出错的地方

    同一层级必须对齐

YAML的键值表示方法
  • 采用冒号分隔

  • :后面必须有一个空格

  • YAML键值对例子

    ”诗仙“ : “李白” 或

    ’李白‘:

    ​ ”诗仙“

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QMzahnsc-1629805027426)(C:\Users\22380\AppData\Roaming\Typora\typora-user-images\image-20210818232235918.png)]

复杂YAML的键值对嵌套

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2qsipS4-1629805027427)(C:\Users\22380\AppData\Roaming\Typora\typora-user-images\image-20210818232300647.png)]

YAML数组表示方法
在这里插入图片描述

高级复合表达式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Notp9Oev-1629805027428)(C:\Users\22380\AppData\Roaming\Typora\typora-user-images\image-20210818232417351.png)]

Jinja2模板
Jinja2是什么
  • Jinja2是基于python的模板引擎,包含变量和表达式两部分。两者在模板求值时会被替换为值,模板中还有标签,控制模板的逻辑

为什么要学习Jinja2模板

  • 因为playbook的模板使用python的Jinja2模块来处理
Jinja2模板的基本用法
  • 模板的表达式都是包含在分隔符” {{ }}“内的

  • 控制语句都是包含在分隔符” {% %}"内的

  • 模板支持注释,都是包含在分隔符“ {# #}"内,支持块注释

  • 调用变量

    {{varname}}

  • 计算

    {{2+3}}

  • 判断

    {{1 in [1,2,3]}}

Jinja2模板控制语句

判断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6uWiFNL-1629805027429)(C:\Users\22380\AppData\Roaming\Typora\typora-user-images\image-20210818233432124.png)]

循环

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SZi2DXAQ-1629805027429)(C:\Users\22380\AppData\Roaming\Typora\typora-user-images\image-20210818233529079.png)]

Jinja2过滤器

Jinja2过滤器

  • 变量可是通过过滤器修改,过滤器与变量用管道符号(|)分割,也可以用圆括号传递可选参数,多个过滤器可以链式调用,前一个过滤器的输出会被作为后一个过滤器的输入

  • 例:

    加密一个字符串:{{ ‘astr’ | password_hash(‘sha512’)}}

    过滤器这里不再一一列举,需要可以查询在线文档:http://docs.jinkan.org/docs/jinja2/templates.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值