Jinja2 filter
-
hosts: test
gather_facts: False
vars:
list: [1,2,3,4,5]
one: "1"
str: "string"
tasks:-
name: run commands
shell: df -h
register: info -
name: debug pprint 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 ramdom 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 filter进行格式化
第2个是对info的执行状态使用changed filter进行判断
第3个是对one的值进行int转变,然后对str的值进行capitalize格式化
第4个是对ansible变量进行判断,如果该变量定义了就引用它的值,如果没有定义就使用default内值
第5个是对list内的值进行最大值max和最小值取值
第6个是对list内的值使用random filter随机挑选一个,然后随机生成1000以内的数字,step是10
第7个是对list内的值使用join filter连接在一起.
第8个是对str值使用replace与regex_replace替换
转载于:https://blog.51cto.com/yangxiongchun/2072140