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. BZOJ3877 : [Ahoi2014&Jsoi2014]保龄球

    考虑从前往后放所有轮. 如果上一轮是全中: 那么这一轮如果是补中,一定放第一次最小的,这样可以让第一次大的放在其它补中之后. 如果这一轮是失误,那么一定放总分最大的. 如果上一轮是补中: 这一轮一定放 ...

  2. 函数(二):input、raw_input、lambda、repr、map、filter、reduce、eval、exec、range、xrange

    一.input()和raw_input(): input()支持用户输入数字或表达式,按类型存或存表达式的计算结果 raw_input():输入所有内容当成字符串存 二.lambda函数:匿名函数 l ...

  3. 如何实现CSS限制字数,超出部份显示点点点...

    <div style="width:200px; white-space:nowrap;overflow:hidden;text-overflow:ellipsis; border:1 ...

  4. HTML5 学习06——Geolocation(地理定位)

    HTML5 Geolocation(地理定位) HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. HTML ...

  5. Kubernetes中资源配额管理

    设置资源请求数量 创建Pod的时候,可以为每个容器指定资源消耗的限制.Pod的资源请求限制则是Pod中所有容器请求资源的总和. apiVersion: v1 kind: Pod metadata: n ...

  6. Java全栈程序员之09:IDEA+GitHub

    GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装 ...

  7. Google Maps V3 之 路线服务

    概述 您可以使用 DirectionsService 对象计算路线(使用各种交通方式).此对象与 Google Maps API 路线服务进行通信,该服务会接收路线请求并返回计算的结果.您可以自行处理 ...

  8. CSAPP Tiny web server源代码分析及搭建执行

    1. Web基础 webclient和server之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议). 一个webclient(即浏览器)打开一个到server的因特网连接,而且请求 ...

  9. EAS开发报错 :数据库表 或 视图 不存在

      一:原因分析     建模之后,发布数据时未能及时在数据库创建相应的表格或视图.   二:解决办法     建模视图下——右键模型——更新数据库.   三:名称字段.描述字段在数据库里的存储格式 ...

  10. python 过滤文本中的标点符号(转)

    网上搜到的大都太复杂,最后找到一个用正则表达式实现的: import re s = "string. With. Punctuation?" # 如果空白符也需要过滤,使用 r'[ ...