ansible-infra/roles/distribution_check/tasks/main.yaml
June f16f8697c2
move roles, files and templates dirs out of playbook dir into root dir
Because of how Ansible local relative search paths work, the global
"files" and "templates" directories need to be next to the playbooks.
However its not intuitive to look into the "playbooks" directory to find
the files and templates for a host.
Therefore move them out of the "playbooks" directory into the root
directory and add symlinks so everything still works.

Similarly for local roles, they also need to be next to the playbooks.
So for a nicer structure, move the "roles" directory out into the root
directory as well and add a symlink so everything still works.

Also see:
https://docs.ansible.com/ansible/latest/playbook_guide/playbook_pathing.html#resolving-local-relative-paths
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_reuse_roles.html#storing-and-finding-roles
2024-12-08 02:55:25 +01:00

53 lines
3.3 KiB
YAML

- name: set fact holding list of supported distribution names
ansible.builtin.set_fact:
distribution_check__supported_distribution_names: "{{ distribution_check__distribution_support_spec
| community.general.json_query('[].name') }}"
- name: fail on unsupported distribution (name)
ansible.builtin.fail:
msg: The hosts distribution (name) isn't supported.
when: ansible_facts['distribution'] not in distribution_check__supported_distribution_names
- name: set facts for holding lists of supported distribution versions, major versions and releases
block:
- name: set fact holding list of supported distribution versions
ansible.builtin.set_fact:
distribution_check__supported_distribution_versions: "{{ distribution_check__distribution_support_spec
| community.general.json_query(distribution_check__supported_distribution_versions_query) }}"
vars:
distribution_check__supported_distribution_versions_query: "[?name=='{{ ansible_facts['distribution'] }}'].versions | [].to_string(@)"
- name: set fact holding list of supported distribution major versions
ansible.builtin.set_fact:
distribution_check__supported_distribution_major_versions: "{{ distribution_check__distribution_support_spec
| community.general.json_query(distribution_check__supported_distribution_major_versions_query) }}"
vars:
distribution_check__supported_distribution_major_versions_query: "[?name=='{{ ansible_facts['distribution'] }}'].major_versions | [].to_string(@)"
- name: set fact holding list of supported distribution releases
ansible.builtin.set_fact:
distribution_check__supported_distribution_releases: "{{ distribution_check__distribution_support_spec
| community.general.json_query(distribution_check__supported_distribution_releases_query) }}"
vars:
distribution_check__supported_distribution_releases_query: "[?name=='{{ ansible_facts['distribution'] }}'].releases | [].to_string(@)"
- name: check for distribution version, major version and release support
block:
- name: set fact on whether the distribution version is supported
ansible.builtin.set_fact:
distribution_check__distribution_version_supported: "{{ ansible_facts['distribution_version'] in distribution_check__supported_distribution_versions }}"
- name: set fact on whether the distribution major version is supported
ansible.builtin.set_fact:
distribution_check__distribution_major_version_supported: "{{ ansible_facts['distribution_major_version'] in distribution_check__supported_distribution_major_versions }}" # noqa: yaml[line-length]
- name: set fact on whether the distribution release is supported
ansible.builtin.set_fact:
distribution_check__distribution_release_supported: "{{ ansible_facts['distribution_release'] in distribution_check__supported_distribution_releases }}"
- name: fail, if neither the distributions version, major version or release is supported
ansible.builtin.fail:
msg: Neither the hosts distribution version, major version or release is supported.
when: not (distribution_check__distribution_version_supported
or distribution_check__distribution_major_version_supported
or distribution_check__distribution_release_supported)