如果操作系统版本与清单中的不同,如何停止执行角色

时间:2020-07-28 13:23:40

标签: ansible

我的清单中有两个不同的Centos版本6.x和7.x。我可以使用以下代码打印操作系统版本

 - name: Get OS details
   debug: msg="{{ item }}"
   with_items:
   - "{{ ansible_distribution_version }}"
  1. 如果OS版本是7而不是6,如何停止执行剩余的角色,反之亦然?我所有的库存都放在一个文件中。

  2. 如果我针对版本6运行代码,那么如果不是版本6,则它需要打印主机名并停止执行其余角色。

1 个答案:

答案 0 :(得分:1)

例如,您可以使用meta选项end_play

- name: end play if not centos6
  meta: end_play
  when: ansible_distribution_version == "centos6"

https://docs.ansible.com/ansible/latest/modules/meta_module.html

中的更多信息

您可能想做的就是将设置任务分为tasks/centos6.ymltasks/centos7.yml,并且仅在剧本中包含相关文件,例如

- name: setup centos7
  include: tasks/centos7.yml
  when: ansible_distribution_version == centos7