51312b8250
As suggested in #63 (Github issue), splitting the playbook's logic into multiple roles will be beneficial for maintainability. This patch realizes this split. Still, some components affect others, so the roles are not really independent of one another. For example: - disabling mxisd (`matrix_mxisd_enabled: false`), causes Synapse and riot-web to reconfigure themselves with other (public) Identity servers. - enabling matrix-corporal (`matrix_corporal_enabled: true`) affects how reverse-proxying (by `matrix-nginx-proxy`) is done, in order to put matrix-corporal's gateway server in front of Synapse We may be able to move away from such dependencies in the future, at the expense of a more complicated manual configuration, but it's probably not worth sacrificing the convenience we have now. As part of this work, the way we do "start components" has been redone now to use a loop, as suggested in #65 (Github issue). This should make restarting faster and more reliable.
76 lines
2.4 KiB
YAML
76 lines
2.4 KiB
YAML
#
|
|
# Tasks related to setting up Goofys
|
|
#
|
|
|
|
- name: Ensure Goofys Docker image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_s3_goofys_docker_image }}"
|
|
when: matrix_s3_media_store_enabled
|
|
|
|
# This will throw a Permission Denied error if already mounted
|
|
- name: Check Matrix Goofys external storage mountpoint path
|
|
stat:
|
|
path: "{{ matrix_synapse_media_store_path }}"
|
|
register: local_path_matrix_synapse_media_store_path_stat
|
|
ignore_errors: yes
|
|
when: matrix_s3_media_store_enabled
|
|
|
|
- name: Ensure Matrix Goofys external storage mountpoint exists
|
|
file:
|
|
path: "{{ matrix_synapse_media_store_path }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_uid }}"
|
|
group: "{{ matrix_user_gid }}"
|
|
when: "matrix_s3_media_store_enabled and not local_path_matrix_synapse_media_store_path_stat.failed and not local_path_matrix_synapse_media_store_path_stat.stat.exists"
|
|
|
|
- name: Ensure goofys environment variables file created
|
|
template:
|
|
src: "{{ role_path }}/templates/goofys/env-goofys.j2"
|
|
dest: "{{ matrix_synapse_config_dir_path }}/env-goofys"
|
|
owner: root
|
|
mode: 0600
|
|
when: matrix_s3_media_store_enabled
|
|
|
|
- name: Ensure matrix-goofys.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/goofys/systemd/matrix-goofys.service.j2"
|
|
dest: "/etc/systemd/system/matrix-goofys.service"
|
|
mode: 0644
|
|
when: matrix_s3_media_store_enabled
|
|
|
|
#
|
|
# Tasks related to getting rid of goofys (if it was previously enabled)
|
|
#
|
|
|
|
- name: Check existence of matrix-goofys service
|
|
stat:
|
|
path: "/etc/systemd/system/matrix-goofys.service"
|
|
register: matrix_goofys_service_stat
|
|
|
|
- name: Ensure matrix-goofys is stopped
|
|
service:
|
|
name: matrix-goofys
|
|
state: stopped
|
|
daemon_reload: yes
|
|
register: stopping_result
|
|
when: "not matrix_s3_media_store_enabled and matrix_goofys_service_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-goofys.service doesn't exist
|
|
file:
|
|
path: "/etc/systemd/system/matrix-goofys.service"
|
|
state: absent
|
|
when: "not matrix_s3_media_store_enabled and matrix_goofys_service_stat.stat.exists"
|
|
|
|
- name: Ensure goofys environment variables file doesn't exist
|
|
file:
|
|
path: "{{ matrix_synapse_config_dir_path }}/env-goofys"
|
|
state: absent
|
|
when: "not matrix_s3_media_store_enabled"
|
|
|
|
- name: Ensure Goofys Docker image doesn't exist
|
|
docker_image:
|
|
name: "{{ matrix_s3_goofys_docker_image }}"
|
|
state: absent
|
|
when: "not matrix_s3_media_store_enabled"
|