从剧本内部检查Ansible版本

时间:2016-01-15 11:16:15

标签: ansible ansible-playbook

我有一个在Ansible 1.9.x和2.0中以不同方式运行的剧本。我想检查当前在我的剧本中运行的ansible版本,以避免有人用旧版本运行它。

我不认为这是最好的解决方案:

- local_action: command ansible --version
  register: version

你会建议什么?

2 个答案:

答案 0 :(得分:11)

您可以使用assert module

- assert:
    that: ansible_version.major < 2

答案 1 :(得分:2)

Ansible提供了一个称为ansible_version的全局字典,该字典包含以下内容

"ansible_version": {
        "full": "2.7.4", 
        "major": 2, 
        "minor": 7, 
        "revision": 4, 
        "string": "2.7.4"
    }

您可以在创建条件语句时使用以下ansible_version.full,ansible_version.major或任何其他组合来检查已安装的ansible版本。

示例剧本:使用此字典和when语句。

---
- hosts: localhost
  tasks:

    - name: Print message if ansible version is greater than 2.7.0
      debug:
        msg: "Ansible version is  {{ ansible_version.full }}"
      when: ansible_version.full >= "2.7.4"