tasks: #如果一些变量没有定义,可以使用Jinja2的define测试。,来执行一些操作
- shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
when: foo is defined
- fail: msg="Bailing out. this play requires 'bar'"
when: bar is undefined
1
2
3
tasks: #有时一些变量的返回结果是字符串,但是你想对它做一些数学运算
- shell: echo "only on Red Hat 6, derivatives, and later"
when: ansible_os_family == "RedHat" and ansible_lsb.major_release|int >= 6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--- #对是否执行一些外部任务进行条件判断
- hosts: local
vars:
test: true
tasks:
- name: Test test
debug: msg="Hello When"
when: test
- include: pre.yml #根据条件判断,是否include某个外部任务文件。
when: test
roles:
- { role: /home/aheahe/roles/test, when: test } #结合条件判断,是否加载某个Role