diff --git a/roles/check_system_static/tasks/main.yml b/roles/check_system_static/tasks/main.yml index 0bc90b047..19bb6ba3c 100644 --- a/roles/check_system_static/tasks/main.yml +++ b/roles/check_system_static/tasks/main.yml @@ -64,3 +64,42 @@ fail: msg: "It is not recommended to set vm.overcommit_memory to 2, set it to 0 or 1." when: vm_overcommit_memory.stdout | int == 2 + +- name: Check ansible version + fail: + msg: "Stop if ansible version is too low, make sure that the Ansible version is 2.4.2 or later, otherwise a compatibility issue occurs. Current ansible version is {{ ansible_version.full }}" + when: ansible_version.full | version_compare('2.4.2', '<') + +- name: Get if jmespath info[1] + shell: pip list | grep -i jmespath | wc -l + register: jmespath_exist + +- name: Get if jinja2 exist[1] + shell: pip list | grep -i jinja2 | wc -l + register: jinja2_exist + +- name: Preflight check - Fail when jmespath or jinja2 doesn't exist + fail: + msg: "Jmespath or Jinja2 does not exist, Please run `pip install -r requirements.txt` to install." + when: jmespath_exist.stdout | int == 0 or jinja2_exist.stdout | int == 0 + +- name: Get jmespath info[2] + shell: pip show jmespath | grep Version |grep -v Metadata-Version + register: jmespath + +- name: Get jmespath version + set_fact: + jmespath_version: "{{ jmespath.stdout_lines[0] | replace('Version: ', '') }}" + +- name: Get jinja2 info[2] + shell: pip show jinja2 | grep Version |grep -v Metadata-Version + register: jinja2 + +- name: Get jinja2 version + set_fact: + jinja2_version: "{{ jinja2.stdout_lines[0] | replace('Version: ', '') }}" + +- name: Preflight check - Fail when the versions of jmespath and jinja2 doesn't meet the requirements + fail: + msg: "Jmespath({{ jmespath_version }}) or jinja2({{ jinja2_version }}) version is too low, Please run `pip install --upgrade -r requirements.txt` to upgrade." + when: jmespath_version | version_compare('0.9.0', '<') or jinja2_version | version_compare('2.9.6', '<')