--- - hosts: localhost gather_facts: false become: no vars: minimal_ansible_version: 2.9.0 minimal_ansible_version_2_10: 2.10.11 maximal_ansible_version: 2.12.0 ansible_connection: local tags: always tasks: - name: "Check {{ minimal_ansible_version }} <= Ansible version < {{ maximal_ansible_version }}" assert: msg: "Ansible must be between {{ minimal_ansible_version }} and {{ maximal_ansible_version }}" that: - ansible_version.string is version(minimal_ansible_version, ">=") - ansible_version.string is version(maximal_ansible_version, "<") tags: - check - name: "Check Ansible version > {{ minimal_ansible_version_2_10 }} when using ansible 2.10" assert: msg: "When using Ansible 2.10, the minimum supported version is {{ minimal_ansible_version_2_10 }}" that: - ansible_version.string is version(minimal_ansible_version_2_10, ">=") - ansible_version.string is version(maximal_ansible_version, "<") when: - ansible_version.string is version('2.10.0', ">=") tags: - check - name: "Check that python netaddr is installed" assert: msg: "Python netaddr is not present" that: "'127.0.0.1' | ipaddr" tags: - check # CentOS 7 provides too old jinja version - name: "Check that jinja is not too old (install via pip)" assert: msg: "Your Jinja version is too old, install via pip" that: "{% set test %}It works{% endset %}{{ test == 'It works' }}" tags: - check