--- - name: "Check if ansible version is at least {{ ansible_minimal_version }}" assert: that: - ansible_version.string is version(ansible_minimal_version, ">=") msg: "The ansible version has to be at least {{ ansible_minimal_version }}" tags: - always - name: "Reading all role versions and set versions as facts" set_fact: hetzner_ansible_roles: - "hetzner-ansible-common" - "hetzner-ansible-dns" - "hetzner-ansible-filebeat" - "hetzner-ansible-hcloud" - "hetzner-ansible-metricbeat" - "hetzner-ansible-node-exporter" - "hetzner-ansible-traefik" - "hetzner-ansible-sma-deploy" tags: - always - name: "Reading all role versions and set versions as facts (galaxy-requirements) " set_fact: {"{{ item | replace('-','_') }}_current_version":"{{ lookup('file', 'galaxy-requirements.yml') | regex_search('- name:\\s+' + item + '\\s+src:\\s+.*?\\s+scm:\\s+git\\s+version:\\s+(.*)', '\\1') }}"} loop: "{{ hetzner_ansible_roles }}" tags: - always - name: "Reading all role versions and set versions as facts (role)" include_role: name: "{{ item }}" tasks_from: _get_version.yml loop: "{{ hetzner_ansible_roles }}" tags: - always - name: "Printing role versions" debug: msg: "<{{ item }}> : <{{ lookup('vars', item | replace('-','_') + '_current_version') }}> : <{{ lookup('vars', item | replace('-','_') + '_version') }}>" loop: "{{ hetzner_ansible_roles }}" tags: - always - name: "Check role versions" assert: that: - "'{{ lookup('vars', item | replace('-','_') + '_version') }}' in {{ lookup('vars', item | replace('-','_') + '_current_version') }}" msg: "The current {{ item }} version has to be {{ lookup('vars', item | replace('-','_') + '_current_version') }}" loop: "{{ hetzner_ansible_roles }}" tags: - always