我们有以下示例剧本文件,其中包含
import_playbook
任务:
- import_playbook: "{{playbook_folder}}/install_stage1.yml"
- import_playbook: "{{playbook_folder}}/install_stage2.yml"
- import_playbook: "{{playbook_folder}}/install_stage3.yml"
- import_playbook: "{{playbook_folder}}/install_stage4.yml"
- import_playbook: "{{playbook_folder}}/install_stage5.yml"
- import_playbook: "{{playbook_folder}}/install_stage6.yml"
- import_playbook: "{{playbook_folder}}/install_stage7.yml"
上述每个
import_playbook
任务都是在 RHEL OS Linux 计算机上安装 rpm
我们需要的是仅针对
RHEL 7.x排除
install_stage7.yml
,而其他 - install_stage1.yml - install_stage6.yml
可以在 RHEL 版本 7.9 和 8.6 上运行
根据我的理解,我们可以使用以下
when: ansible_facts['distribution_version'] == "8.6"
但不确定如何为
import_playbook
设置该条件
只需在导入中添加
when
子句即可:
- import_playbook: playbook1.yml
- import_playbook: playbook2.yml
when: some_condition | d(false) | bool
- import_playbook: playbook3.yml
请注意,该条件并不应用于导入,而是应用于导入的每个任务。因此,当条件为 false 时,导入的剧本中的所有任务都将在输出中显示为已跳过。