如何按RHEL版本在Ansible Playbook中排除指定import_playbook任务?
Ansible Playbook 条件导入解决方案
import_playbook 支持直接添加 when 条件判断,你可以针对不同阶段的剧本设置对应的执行条件,满足你的版本要求:
# stage1-stage6 允许在RHEL7.9和8.6执行 - import_playbook: "{{playbook_folder}}/install_stage1.yml" when: ansible_facts['distribution_version'] in ["7.9", "8.6"] - import_playbook: "{{playbook_folder}}/install_stage2.yml" when: ansible_facts['distribution_version'] in ["7.9", "8.6"] - import_playbook: "{{playbook_folder}}/install_stage3.yml" when: ansible_facts['distribution_version'] in ["7.9", "8.6"] - import_playbook: "{{playbook_folder}}/install_stage4.yml" when: ansible_facts['distribution_version'] in ["7.9", "8.6"] - import_playbook: "{{playbook_folder}}/install_stage5.yml" when: ansible_facts['distribution_version'] in ["7.9", "8.6"] - import_playbook: "{{playbook_folder}}/install_stage6.yml" when: ansible_facts['distribution_version'] in ["7.9", "8.6"] # stage7 仅在RHEL8.6执行(排除所有RHEL7.x版本) - import_playbook: "{{playbook_folder}}/install_stage7.yml" when: ansible_facts['distribution_version'] == "8.6"
如果需要更灵活地排除所有RHEL7.x子版本(不局限于7.9),可以改用主版本判断:
- import_playbook: "{{playbook_folder}}/install_stage7.yml" when: ansible_facts['distribution_major_version'] != "7"
内容的提问来源于stack exchange,提问作者King David
相关产品推荐
相关产品推荐

