与字符串有关的过滤器
---
- hosts: testB
remote_user: root
vars:
var1: "acaa192PLI acc"
var2: " abc "
var3: '1241209501'
var4: "1l#@*&"
tasks:
- debug:
msg: "{{ var1 | upper }}"
- debug:
msg: "{{ var1 | lower }}"
- debug:
msg: "{{ var1 | capitalize }}"
- debug:
msg: "{{ var1 | reverse }}"
- debug:
msg: "{{ var1 | first }}"
- debug:
msg: "{{ var1 | last }}"
- debug:
msg: "{{ var2 | trim }}"
- debug:
msg: "{{ var2 | center(width=30) }}"
- debug:
msg: "{{ var3 | length }}"
- debug:
msg: "{{ var4 | list }}"
- debug:
msg: "{{ var4 | shuffle }}"
与数字有关的过滤器
---
- hosts: testB
remote_user: root
vars:
var: -1
tasks:
- debug:
msg: "{{ 8+('8' | int) }}"
- debug:
msg: "{{ 'a' | int(default=6) }}"
- debug:
msg: "{{ '8' | float }}"
- debug:
msg: "{{ var | abs }}"
- debug:
msg: "{{ 17.5 | round }}"
- debug:
msg: "{{ 3.141592653 | round(5) }}"
- debug:
msg: "{{ 100 | random }}"
- debug:
msg: "{{ 10 | random(start=5) }}"
- debug:
msg: "{{ 15 | random(start=5,step=3) }}"
与列表有关的过滤器
---
- hosts: testB
remote_user: root
vars:
var1: [22,18,5,33,27,30]
var2: [1,[5,3,[14,0]],6,7]
var3: [1,'b',5]
var4: [1,'A','b',['QQ','wechat'],'GhlK']
var5: ['abc',1,3,'abc','1',3]
var6: ['abc',2,'b','a','c']
tasks:
- debug:
msg: "{{ var1 | length }}"
- debug:
msg: "{{ var1 | first }}"
- debug:
msg: "{{ var1 | last }}"
- debug:
msg: "{{ var1 | min }}"
- debug:
msg: "{{ var1 | max }}"
- debug:
msg: "{{ var1 | sort }}"
- debug:
msg: "{{ var1 | sort(reverse=true) }}"
- debug:
msg: "{{ var1 | sum }}"
- debug:
msg: "{{ var2 | flatten }}"
- debug:
msg: "{{ var2 | flatten(levels=1) }}"
- debug:
msg: "{{ var2 | sort(reverse=true) }}"
- debug:
msg: "{{ var3 | join }}"
- debug:
msg: "{{ var3 | join(',') }}"
- debug:
msg: "{{ var3 | random }}"
- debug:
msg: "{{ var3 | shuffle }}"
- debug:
msg: "{{ var4 | upper }}"
- debug:
msg: "{{ var4 | lower }}"
- debug:
msg: "{{ var5 | unique }}"
- debug:
msg: "{{ var5 | union(var6) }}"
- debug:
msg: "{{ var5 | intersect(var6) }}"
- debug:
msg: "{{ var5 | difference(var6) }}"
- debug:
msg: "{{ var5 | symmetric_difference(var6) }}"
过滤是否为空
---
- hosts: testB
remote_user: root
gather_facts: no
vars:
var1: ''
tasks:
- debug:
msg: "{{ var2 | default('aplox') }}"
- debug:
msg: "{{ var1 | default('rico',boolean=true) }}"
- debug:
msg: "{{ var2 | mandatory }}"
创建3个文件,一个有权限,两个默认
---
- hosts: testB
remote_user: root
vars:
paths:
- path: /tmp/test1
mode: '0444'
- path: /tmp/test2
- path: /tmp/test3
tasks:
- file: dest={{item.path}} state=touch mode={{item.mode}}
with_items: "{{ paths }}"
when: item.mode is defined
- file: dest={{item.path}} state=touch
with_items: "{{ paths }}"
when: item.mode is undefined

---
- hosts: testB
remote_user: root
vars:
paths:
- path: /testdir/test1
mode: '0444'
- path: /testdir/test2
- path: /testdir/test3
tasks:
- file: dest={{item.path}} state=touch mode={{item.mode | default(omit)}}
with_items: "{{ paths }}"
