4 playlook-Jinja2 filter
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') }} "
- info.stdout 使用pprint进行格式化
- info的执行状态使用changed filter 进行判断
- one的值进行int转变,然后对str的值进行capitalize格式化
- 对ansible变量进行判断,如果该变量定义了就引用它的值,如果没有定义就使用default内值
- 对list内取最大值和最小值
- 对list内的值使用random filter随机挑选一个,然后随机生成1000以内的数字,step是10
- 对list内的值使用join filter链接在一起。
- 第八个是对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的更多相关文章
- ansible 配置文件设置
目录 ansible 配置文件设置 一.ansible configuration settings 二.ansible 配置文件查找顺序(从上到下,依次查找) 三.附录ansible配置参数 ans ...
- django 操作数据库--orm(object relation mapping)---models
思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...
- Jinja2模版语言自定义filter的使用
Jinja2模版语言,自带有一些filter,能够在前端的模版中控制数据按照相应的方式显示.比如以下两种filter,分别能在前端控制数字的近似精度显示和根据字符串长度补齐: round(value, ...
- 自定义jinja2 过滤器
今天,我们要讲的是自定义jinja2 过滤器这个知识点,因为官方文档对此一代而过,讲得不够清楚,所以我们专门拿出来讲一下. 例子 例子写了两个自定义过滤器,一个是转换字典到字符串的过滤器,一个是返回当 ...
- Jinja2学习笔记暨官方文档的翻译
http://blog.csdn.net/lgg201/article/details/4647471 呵呵, 刚刚看完Python模板引擎Jinja2的文档, 感觉很好, 觉得动态语言真是很好. ...
- jinja2模板常用方法
数学运算+,-,*,/,**,//,%等数学运算符都支持. 逻辑运算and,or,not也同样支持 1.in判断元素是否在集合中 2.|管道操作符,默认使用Apply调用一个方法 3.~字符串连接 4 ...
- Flask 页面缓存逻辑,jinja2 过滤器,测试器
回调接入点-页面缓存逻辑 from flask import Flask,request,render_template from werkzeug.contrib.cache import Simp ...
- ansible的Filter
filter的格式: value..| filter() 在python中就是类的实例化 filter(self,*args,**kwargs) self就是filter中管道符前的value. ...
- 【Ansible 文档】【译文】模版(Jinja2)
Templating (Jinja2) 正如在 variables 部分描述的那样, Ansible 使用Jinja2模版来启用动态表达式和访问变量. Ansible 扩展了许多 filtes 和 t ...
随机推荐
- 游戏中Row所指代的是什么?
游戏中Row所指代的是: HTML中row指的是行 SQL指的是列 其实,在翻译中来说,Row既是行也是列:准确一点讲,是横着的 现多指代的是行:
- 获取html下的所有纯文本的方法
第一种是看别人博客的,第二种是自己发现的. 第一种: #-*- coding: utf8 -*- import re html = """ <div class=& ...
- IO流(4)—字符流
1.IO体系: 抽象基类 --节点流(文件流) InputStream -- FileInputStream OutputStream --FileOutputSteam Reader --FileR ...
- J - 青蛙的约会(扩展欧几里得)
https://vjudge.net/contest/218366#problem/J 第一步追及公式要写对:y+nk-(x+mk)=pL => (n-m)k+lp=x-y 可以看出扩展欧几里得 ...
- Deepin 15.4 升级 chrome flash
到 adobe 官方下载 flash插件 flash_player_ppapi_linux ~/.config/google-chrome/PepperFlash下建个目录 23.0.0.185,把 ...
- [CentOS7]redis设置开机启动,设置密码
简介 上篇文章介绍了如何安装redis,但每次重启服务器之后redis不会自启,这里将介绍如何进行自启设置,以及如何设置redis的密码,进行密码验证登陆. 上篇文章: Centos7安装Redis ...
- JavaScript常用,继承,原生JavaScript实现classList
原文链接:http://caibaojian.com/8-javascript-attention.html 基于 Class 的组件最佳实践(Class Based Components) 基于 C ...
- mui 打开外网链接返回的正姿势!
我们的返回分两种: 一:按返回按钮只能返回上一页 二:向右滑动一步返回app的面页
- ConditionalOnProperty
配置Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效 1.matchIfMissing属性:从application.properties ...
- MySQL DBA工作角色和职责介绍
MySQL DBA分架构DBA,运维DBA和开发DBA三种角色,职责介绍如下: