首页 > 解决方案 > 有条件的ansible任务

问题描述

我在我的剧本中使用以下任务,并尝试使用“何时”设置条件来触发任务。

打击是有效的

ansible-playbook vdomqury.yml -e adom=In-Adom-01  -e FGT=FGVM04TM19001830  -e vdom= -vvv 

如果我删除 var vdom 剧本停止

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

标签: ansibleansible-facts

解决方案


您应该在对其进行比较之前检查是否定义了 vdom,否则解释器将无法成功地尝试获取其值。这应该有效(现在无法检查)when: vdom is defined and vdom != "":.


推荐阅读