jinja2模板,不多解释,请看例子

[root@LeoDevops jinjatwo]# cat  j1.yaml
- hosts: u12
gather_facts: False
vars:
list: [1,2,3,4,5]
one: "1"
str: "string"
ansible: "heh"
tasks:
- name: run commands
shell: df -h
register: info
- name: debug print filter
debug: msg="{{ info.stdout | pprint }}"
- name: debug conditionals filter
debug: msg="the run commands status is changed"
when: info|changed
- name: debug int capitalize filter
debug: msg="the int value {{ one|int }} the lower value is {{ str|capitalize }}"
- name: debug default filter
debug: msg="the variable value is {{ ansible | default('ansible is not define') }} "
- name: debug list max and min filter
debug: msg="the list max value is {{ list|max }},the list min value is {{ list|min }}"
- name: debug random filter
debug: msg="the list random value is {{ list|random }} and generate a random value is {{ 1000| random(1,10) }}"
- name: debug join filter
debug: msg="the join filter value is {{ list|join('+') }}"
- name: debug replace and regex_replace filter
debug: msg="the replace value is {{ str| replace('t','T') }} , the regex_replace_value is {{ str|regex_replace('.*tr(.*)$','\\1') }} "
  1. info.stdout 使用pprint进行格式化
  2. info的执行状态使用changed filter 进行判断
  3. one的值进行int转变,然后对str的值进行capitalize格式化
  4. 对ansible变量进行判断,如果该变量定义了就引用它的值,如果没有定义就使用default内值
  5. 对list内取最大值和最小值
  6. 对list内的值使用random filter随机挑选一个,然后随机生成1000以内的数字,step是10
  7. 对list内的值使用join filter链接在一起。
  8. 第八个是对str的值使用replace与regex_replace替换

运行结果如下


[root@LeoDevops jinjatwo]# ansible-playbook j1.yaml PLAY [u12] ************************************************************************************************************************************************************************************ TASK [run commands] ***************************************************************************************************************************************************************************
changed: [192.168.93.137] TASK [debug print filter] *********************************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "u'Filesystem Size Used Avail Use% Mounted on\\n/dev/sda1 19G 3.0G 16G 17% /\\nudev 367M 4.0K 367M 1% /dev\\ntmpfs 150M 296K 150M 1% /run\\nnone 5.0M 0 5.0M 0% /run/lock\\nnone 374M 0 374M 0% /run/shm'"
} TASK [debug conditionals filter] **************************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the run commands status is changed"
} TASK [debug int capitalize filter] ************************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the int value 1 the lower value is String"
} TASK [debug default filter] *******************************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the variable value is heh "
} TASK [debug list max and min filter] **********************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the list max value is 5,the list min value is 1"
} TASK [debug random filter] ********************************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the list random value is 1 and generate a random value is 241"
} TASK [debug join filter] **********************************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the join filter value is 1+2+3+4+5"
} TASK [debug replace and regex_replace filter] *************************************************************************************************************************************************
ok: [192.168.93.137] => {
"msg": "the replace value is sTring , the regex_replace_value is ing "
} PLAY RECAP ************************************************************************************************************************************************************************************
192.168.93.137 : ok=9 changed=1 unreachable=0 failed=0

4 playlook-Jinja2 filter的更多相关文章

  1. ansible 配置文件设置

    目录 ansible 配置文件设置 一.ansible configuration settings 二.ansible 配置文件查找顺序(从上到下,依次查找) 三.附录ansible配置参数 ans ...

  2. django 操作数据库--orm(object relation mapping)---models

    思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...

  3. Jinja2模版语言自定义filter的使用

    Jinja2模版语言,自带有一些filter,能够在前端的模版中控制数据按照相应的方式显示.比如以下两种filter,分别能在前端控制数字的近似精度显示和根据字符串长度补齐: round(value, ...

  4. 自定义jinja2 过滤器

    今天,我们要讲的是自定义jinja2 过滤器这个知识点,因为官方文档对此一代而过,讲得不够清楚,所以我们专门拿出来讲一下. 例子 例子写了两个自定义过滤器,一个是转换字典到字符串的过滤器,一个是返回当 ...

  5. Jinja2学习笔记暨官方文档的翻译

    http://blog.csdn.net/lgg201/article/details/4647471 呵呵, 刚刚看完Python模板引擎Jinja2的文档, 感觉很好, 觉得动态语言真是很好.  ...

  6. jinja2模板常用方法

    数学运算+,-,*,/,**,//,%等数学运算符都支持. 逻辑运算and,or,not也同样支持 1.in判断元素是否在集合中 2.|管道操作符,默认使用Apply调用一个方法 3.~字符串连接 4 ...

  7. Flask 页面缓存逻辑,jinja2 过滤器,测试器

    回调接入点-页面缓存逻辑 from flask import Flask,request,render_template from werkzeug.contrib.cache import Simp ...

  8. ansible的Filter

    filter的格式:   value..| filter() 在python中就是类的实例化 filter(self,*args,**kwargs) self就是filter中管道符前的value. ...

  9. 【Ansible 文档】【译文】模版(Jinja2)

    Templating (Jinja2) 正如在 variables 部分描述的那样, Ansible 使用Jinja2模版来启用动态表达式和访问变量. Ansible 扩展了许多 filtes 和 t ...

随机推荐

  1. BZOJ3737 : [Pa2013]Euler

    首先枚举$n$的每个约数$d$,检查一下$d+1$是否是质数,这些数都有可能作为答案的质因子出现. 考虑爆搜,每次枚举下一个要在答案中出现的质因子$p$,将$n$除以$p-1$,再枚举$p$的指数,然 ...

  2. [Vijos1532]区间 (差分约束)

    又是一题我不会的模板题…… 讲一下差分约束吧 差分约束 参考博客 如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统.— ...

  3. hadoop实现倒排索引

    hadoop实现倒排索引 本文用hadoop实现倒排索引算法,用基本的分两步完成,不使用combine 第一步 读入文档,统计文档中各个单词的个数,与word count类似,但这里把word-fil ...

  4. 数据格式JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...

  5. js float运算精度问题

    先放个前辈的文章:JavaScript数字精度丢失问题总结 今天遇到了19.99*100的问题,答案不等于1999,因为在javascript中浮点数的计算是以2进制计算的.自己写了一波解决方法(不能 ...

  6. django之视图获取用户请求相关信息以及请求头

    def index(request): print(type(request)) print(request.environ['HTTP_USER_AGENT'])#字典格式 print(reques ...

  7. java内部类(一)

    内部类(一) 一.定义: 内部类就是定义在另一个类内部的类,与之对应,包含内部类的类就是外部类. 二.作用: 1.内部类提供更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包之中的其他类访问该类 ...

  8. 用css实现自定义虚线边框

    开发产品功能的时候ui往往会给出虚线边框的效果图,于是乎,我们往往第一时间想到的是用css里的border,可是border里一般就提供两种效果,dashed或者dotted,ui这时就不满意了,说虚 ...

  9. ASP.NET Core 发布

    ASP.NET Core 发布,asp.netcore发布 第一步:运行 dotnet restore 命令,以还原项目中指定的依赖项 dotnet restore 第二步:使用 dotnet bui ...

  10. Project with Match in aggregate not working in mongodb

    [问题] 2down votefavorite I am trying to fetch data based on some match condition. First I've tried th ...