有条件的任务
ansible task with condition
我在剧本中使用以下任务,并尝试使用 "when" 设置条件来触发任务。
第一击有效
ansible-playbook vdomqury.yml -e adom=In-Adom-01 -e FGT=FGVM04TM19001830 -e vdom= -vvv
如果我删除 var vdom playbook stopped
ansible-playbook vdomqury.yml -e adom=In-Adom-01 -e FGT=FGVM04TM19001830 -vvv
tasks:
- name: USE CUSTOM TYPE TO QUERY AVAILABLE SCRIPTS
f_query:
adom: "{{ adom }}"
object: "custom"
custom_endpoint: "/pm/config/adom/{{ adom }}/_package/status/{{ FGT }}/{{ vdom }}"
register: results
tags: ADDLAG
when: vdom != ""
- name: USE CUSTOM TYPE TO QUERY AVAILABLE SCRIPTS
f_query:
adom: "{{ adom }}"
object: "custom"
custom_endpoint: "/pm/config/adom/{{ adom }}/_package/status/{{ FGT }}"
register: results
tags: ADDLAG
when: vdom == "" or vdom is not defined
你应该在对它进行比较之前检查是否定义了 vdom,否则解释器将无法成功地尝试获取它的值。这应该有效(现在无法检查):when: vdom is defined and vdom != ""
.
将条件更改为
when: vdom|default("")|length > 0
分别
when: vdom|default("")|length == 0
我在剧本中使用以下任务,并尝试使用 "when" 设置条件来触发任务。
第一击有效
ansible-playbook vdomqury.yml -e adom=In-Adom-01 -e FGT=FGVM04TM19001830 -e vdom= -vvv
如果我删除 var vdom playbook stopped
ansible-playbook vdomqury.yml -e adom=In-Adom-01 -e FGT=FGVM04TM19001830 -vvv
tasks:
- name: USE CUSTOM TYPE TO QUERY AVAILABLE SCRIPTS
f_query:
adom: "{{ adom }}"
object: "custom"
custom_endpoint: "/pm/config/adom/{{ adom }}/_package/status/{{ FGT }}/{{ vdom }}"
register: results
tags: ADDLAG
when: vdom != ""
- name: USE CUSTOM TYPE TO QUERY AVAILABLE SCRIPTS
f_query:
adom: "{{ adom }}"
object: "custom"
custom_endpoint: "/pm/config/adom/{{ adom }}/_package/status/{{ FGT }}"
register: results
tags: ADDLAG
when: vdom == "" or vdom is not defined
你应该在对它进行比较之前检查是否定义了 vdom,否则解释器将无法成功地尝试获取它的值。这应该有效(现在无法检查):when: vdom is defined and vdom != ""
.
将条件更改为
when: vdom|default("")|length > 0
分别
when: vdom|default("")|length == 0