我想根据条件值跳过一些比赛。 一开始我可以有一个任务,当满足条件时可以跳过其他一些任务。
我知道我总是可以使用set_fact
并将其作为运行其他游戏(角色和任务)的条件,或者直接在我要跳过的每个游戏中评估所述条件。
但是,由于这些剧本已经具有标记系统,因此可以在Ansible中使用set_tags
之类的东西来避免在整个剧本中添加条件并使已经很沉重的剧本肿。 / p>
诸如:
- name: skip terraform tasks if no file is provided
hosts: localhost
tasks:
set_tags:
- name: terraform
state: skip
when: terraform_files == ""
我想跳过的两部戏:
- name: bootstrap a testing infrastructure
hosts: localhost
roles:
- role: terraform
state: present
tags:
- create_servers
- terraform
[...]
- name: flush the testing infrastructure
hosts: localhost
roles:
- role: terraform
state: absent
tags:
- destroy_servers
- terraform
答案 0 :(得分:0)
如果我理解正确,则应该执行以下操作。
- name: bootstrap a testing infrastructure
hosts: localhost
roles:
- role: terraform
state: present
when: terraform_files != ""
tags:
- create_servers
- terraform
[...]
- name: flush the testing infrastructure
hosts: localhost
roles:
- role: terraform
state: absent
when: terraform_files != ""
tags:
- destroy_servers
- terraform
这基本上与在角色中的每个任务上设置when子句相同。因此,如果条件为假,将检查每个任务,但会跳过。