如何排除操作系统版本的 playbook 文件中的任务?

问题描述 投票:0回答:1

我们有以下示例剧本文件,其中包含

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

设置该条件
ansible rhel ansible-facts
1个回答
0
投票

只需在导入中添加

when
子句即可:

- import_playbook: playbook1.yml
- import_playbook: playbook2.yml
  when: some_condition | d(false) | bool
- import_playbook: playbook3.yml

请注意,该条件并不应用于导入,而是应用于导入的每个任务。因此,当条件为 false 时,导入的剧本中的所有任务都将在输出中显示为已跳过。

© www.soinside.com 2019 - 2024. All rights reserved.