Include ensure_openssl_installed and ensure_fuse_installed utils in a more reliable way

This fixes a regression since the change done in c1c152f7ac.
When another role (say `matrix-jitsi`) included `roles/custom/matrix-base/tasks/util/ensure_openssl_installed.yml`,
which then included `{{ role_path }}/tasks/util/ensure_openssl_installed_DISTRO.yml`,
that `role_path` variable would end up being the parent role
(`matrix-jitsi`) and not the `matrix-base` role, so we'd get a failure.

An alternative solution may have been to avoid using `role_path`, but
importing roles properly (like we've done in this patch) sounds like a better way.

Unfortunately, `import_role` fails if `tasks_from` is something like
`util/ensure_openssl_installed` (containing a `/`), so I had to move
these utils out of `util/`.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2228
This commit is contained in:
Slavi Pantaleev 2022-11-05 09:15:35 +02:00
parent c1c152f7ac
commit 2473cd655b
15 changed files with 39 additions and 29 deletions

View file

@ -0,0 +1,12 @@
---
# This is for both RedHat 7 and 8
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/ensure_fuse_installed_redhat.yml"
when: ansible_os_family == 'RedHat'
# This is for both Debian and Raspbian
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/ensure_fuse_installed_debian.yml"
when: ansible_os_family == 'Debian'
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/ensure_fuse_installed_archlinux.yml"
when: ansible_os_family == 'Archlinux'

View file

@ -0,0 +1,12 @@
---
# This is for both RedHat 7 and 8
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/ensure_openssl_installed_redhat.yml"
when: ansible_os_family == 'RedHat'
# This is for both Debian and Raspbian
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/ensure_openssl_installed_debian.yml"
when: ansible_os_family == 'Debian'
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/ensure_openssl_installed_archlinux.yml"
when: ansible_os_family == 'Archlinux'

View file

@ -1,12 +0,0 @@
---
# This is for both RedHat 7 and 8
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/util/ensure_fuse_installed_redhat.yml"
when: ansible_os_family == 'RedHat'
# This is for both Debian and Raspbian
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/util/ensure_fuse_installed_debian.yml"
when: ansible_os_family == 'Debian'
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/util/ensure_fuse_installed_archlinux.yml"
when: ansible_os_family == 'Archlinux'

View file

@ -1,12 +0,0 @@
---
# This is for both RedHat 7 and 8
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/util/ensure_openssl_installed_redhat.yml"
when: ansible_os_family == 'RedHat'
# This is for both Debian and Raspbian
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/util/ensure_openssl_installed_debian.yml"
when: ansible_os_family == 'Debian'
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/util/ensure_openssl_installed_archlinux.yml"
when: ansible_os_family == 'Archlinux'

View file

@ -1,6 +1,8 @@
--- ---
- ansible.builtin.import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml" - ansible.builtin.import_role:
name: custom/matrix-base
tasks_from: ensure_openssl_installed
- name: Ensure Appservice IRC paths exist - name: Ensure Appservice IRC paths exist
ansible.builtin.file: ansible.builtin.file:

View file

@ -1,6 +1,8 @@
--- ---
- ansible.builtin.import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml" - ansible.builtin.import_role:
name: custom/matrix-base
tasks_from: ensure_openssl_installed
- name: Ensure hookshot paths exist - name: Ensure hookshot paths exist
ansible.builtin.file: ansible.builtin.file:

View file

@ -1,6 +1,8 @@
--- ---
- ansible.builtin.import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml" - ansible.builtin.import_role:
name: custom/matrix-base
tasks_from: ensure_openssl_installed
# #
# Tasks related to setting up jitsi # Tasks related to setting up jitsi

View file

@ -1,6 +1,8 @@
--- ---
- ansible.builtin.import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml" - ansible.builtin.import_role:
name: custom/matrix-base
tasks_from: ensure_openssl_installed
when: "matrix_ssl_retrieval_method == 'self-signed'" when: "matrix_ssl_retrieval_method == 'self-signed'"
- name: Generate self-signed certificates - name: Generate self-signed certificates

View file

@ -1,6 +1,8 @@
--- ---
- ansible.builtin.import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_fuse_installed.yml" - ansible.builtin.import_role:
name: custom/matrix-base
tasks_from: ensure_fuse_installed
- name: Ensure Goofys Docker image is pulled - name: Ensure Goofys Docker image is pulled
community.docker.docker_image: community.docker.docker_image: