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. YIi url美化

    一.Yii Url美化,配置urlManager组件 'urlManager' => [ 'enablePrettyUrl' => true, // 开启URL美化,可以去掉 index. ...

  2. Incorrect username or password ( access token )解决

    Q:Git提交时,给出提示Incorrect username or password ( access token ) K: 此处是用户名或者密码有误,建议解决方法两种.具体看哪一种可行,可试. 第 ...

  3. 利用Ajax和JSON实现关于查找省市名称的二级联动功能

    功能实现的思路:我们经常碰见网上购物时候填写收件地址会用到这个查找省市县的三级联动查找功能,我们可以利用Ajax和JSON技术模拟这个功能,说白了同样是使用Ajax的局部数据更新功能这个特性.因为省市 ...

  4. jQuery 学习05——AJAX:定义、load()方法、get()/post()方法

    AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). load() 方法:从服务器加载数据,并把返回的数据放入被选元素中. 语法:$ ...

  5. [原创]Burp Suite web应用程序渗透测试神器

    [原创]Burp Suite web应用程序渗透测试神器 一 Burp Suite介绍 Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描 ...

  6. ASP.NET Core 发布

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

  7. 20、MySQLdb

    MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQLdb库 ...

  8. URL参数编码

    简单明了区分escape.encodeURI和encodeURIComponent 一.前言讲这3个方法区别的文章太多了,但是大部分写的都很绕.本文试图从实践角度去讲这3个方法. 二.escape和它 ...

  9. VirtualBox虚拟机磁盘瘦身

    操作系统 : windows7_x64 VirtualBox 版本 : 4.3.28 原理: 使用0填充虚拟系统磁盘,然后删除填充文件,再使用VBoxManage进行压缩. Linux系统磁盘瘦身 一 ...

  10. string与stringBuffer区别

    string 的 “+” 操作就是根据 StringBuilder (或 StringBuffer )类及其 append 方法实现的. String 不可变其实就是说一个 String 对象创建之后 ...