Browse Source

Make matrix-synapse role respect matrix_synapse_enabled flag

pull/179/head
Slavi Pantaleev 6 years ago
parent
commit
fc7ba153b1
14 changed files with 131 additions and 103 deletions
  1. +7
    -0
      roles/matrix-synapse/tasks/goofys/setup.yml
  2. +38
    -0
      roles/matrix-synapse/tasks/goofys/setup_install.yml
  3. +33
    -0
      roles/matrix-synapse/tasks/goofys/setup_uninstall.yml
  4. +1
    -0
      roles/matrix-synapse/tasks/init.yml
  5. +1
    -1
      roles/matrix-synapse/tasks/main.yml
  6. +3
    -1
      roles/matrix-synapse/tasks/self_check_client_api.yml
  7. +4
    -3
      roles/matrix-synapse/tasks/self_check_federation_api.yml
  8. +8
    -1
      roles/matrix-synapse/tasks/setup_synapse.yml
  9. +0
    -9
      roles/matrix-synapse/tasks/setup_synapse_entrypoint.yml
  10. +0
    -87
      roles/matrix-synapse/tasks/setup_synapse_goofys.yml
  11. +7
    -0
      roles/matrix-synapse/tasks/synapse/setup.yml
  12. +0
    -0
      roles/matrix-synapse/tasks/synapse/setup_install.yml
  13. +28
    -0
      roles/matrix-synapse/tasks/synapse/setup_uninstall.yml
  14. +1
    -1
      roles/matrix-synapse/tasks/validate_config.yml

+ 7
- 0
roles/matrix-synapse/tasks/goofys/setup.yml View File

@@ -0,0 +1,7 @@
---

- import_tasks: "{{ role_path }}/tasks/goofys/setup_install.yml"
when: matrix_s3_media_store_enabled

- import_tasks: "{{ role_path }}/tasks/goofys/setup_uninstall.yml"
when: "not matrix_s3_media_store_enabled"

+ 38
- 0
roles/matrix-synapse/tasks/goofys/setup_install.yml View File

@@ -0,0 +1,38 @@
- name: Ensure Goofys Docker image is pulled
docker_image:
name: "{{ matrix_s3_goofys_docker_image }}"

# 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

- 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: "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

- 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
register: matrix_goofys_systemd_service_result

- name: Ensure systemd reloaded after matrix-goofys.service installation
service:
daemon_reload: yes
when: "matrix_goofys_systemd_service_result.changed"

+ 33
- 0
roles/matrix-synapse/tasks/goofys/setup_uninstall.yml View File

@@ -0,0 +1,33 @@
- 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: "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: "matrix_goofys_service_stat.stat.exists"

- name: Ensure systemd reloaded after matrix-goofys.service removal
service:
daemon_reload: yes
when: "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

- name: Ensure Goofys Docker image doesn't exist
docker_image:
name: "{{ matrix_s3_goofys_docker_image }}"
state: absent

+ 1
- 0
roles/matrix-synapse/tasks/init.yml View File

@@ -1,5 +1,6 @@
- set_fact:
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-synapse'] }}"
when: matrix_synapse_enabled

- set_fact:
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-goofys'] }}"


+ 1
- 1
roles/matrix-synapse/tasks/main.yml View File

@@ -8,7 +8,7 @@
- setup-all
- setup-synapse

- import_tasks: "{{ role_path }}/tasks/setup_synapse_entrypoint.yml"
- import_tasks: "{{ role_path }}/tasks/setup_synapse.yml"
when: run_setup
tags:
- setup-all


+ 3
- 1
roles/matrix-synapse/tasks/self_check_client_api.yml View File

@@ -7,12 +7,14 @@
validate_certs: "{{ matrix_synapse_self_check_validate_certificates }}"
register: result_matrix_synapse_client_api
ignore_errors: true
when: matrix_synapse_enabled

- name: Fail if Matrix Client API not working
fail:
msg: "Failed checking Matrix Client API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_client_api_url_endpoint_public }}`). Is Synapse running? Is port 443 open in your firewall? Full error: {{ result_matrix_synapse_client_api }}"
when: "result_matrix_synapse_client_api.failed or 'json' not in result_matrix_synapse_client_api"
when: "matrix_synapse_enabled and (result_matrix_synapse_client_api.failed or 'json' not in result_matrix_synapse_client_api)"

- name: Report working Matrix Client API
debug:
msg: "The Matrix Client API at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_client_api_url_endpoint_public }}`) is working"
when: matrix_synapse_enabled

+ 4
- 3
roles/matrix-synapse/tasks/self_check_federation_api.yml View File

@@ -7,18 +7,19 @@
validate_certs: "{{ matrix_synapse_self_check_validate_certificates }}"
register: result_matrix_synapse_federation_api
ignore_errors: true
when: matrix_synapse_enabled

- name: Fail if Matrix Federation API not working
fail:
msg: "Failed checking Matrix Federation API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`). Is Synapse running? Is port 8448 open in your firewall? Full error: {{ result_matrix_synapse_federation_api }}"
when: "matrix_synapse_federation_enabled and (result_matrix_synapse_federation_api.failed or 'json' not in result_matrix_synapse_federation_api)"
when: "matrix_synapse_enabled and matrix_synapse_federation_enabled and (result_matrix_synapse_federation_api.failed or 'json' not in result_matrix_synapse_federation_api)"

- name: Fail if Matrix Federation API unexpectedly enabled
fail:
msg: "Matrix Federation API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) despite being disabled."
when: "matrix_synapse_federation_enabled == false and not result_matrix_synapse_federation_api.failed"
when: "matrix_synapse_enabled and not matrix_synapse_federation_enabled and not result_matrix_synapse_federation_api.failed"

- name: Report working Matrix Federation API
debug:
msg: "The Matrix Federation API at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) is working"
when: "matrix_synapse_federation_enabled"
when: "matrix_synapse_enabled and matrix_synapse_federation_enabled"

roles/matrix-synapse/tasks/setup_synapse_pre.yml → roles/matrix-synapse/tasks/setup_synapse.yml View File

@@ -15,6 +15,13 @@
- "{{ matrix_synapse_config_dir_path }}"
- "{{ matrix_synapse_run_path }}"
- "{{ matrix_synapse_ext_path }}"
# We handle matrix_synapse_media_store_path elsewhere (in setup_synapse_main.yml),
# We handle matrix_synapse_media_store_path elsewhere (in ./synapse/setup_install.yml),
# because if it's using Goofys and it's already mounted (from before),
# trying to chown/chmod it here will cause trouble.
when: "matrix_synapse_enabled or matrix_s3_media_store_enabled"

- import_tasks: "{{ role_path }}/tasks/ext/setup.yml"

- import_tasks: "{{ role_path }}/tasks/synapse/setup.yml"

- import_tasks: "{{ role_path }}/tasks/goofys/setup.yml"

+ 0
- 9
roles/matrix-synapse/tasks/setup_synapse_entrypoint.yml View File

@@ -1,9 +0,0 @@
---

- import_tasks: "{{ role_path }}/tasks/setup_synapse_pre.yml"

- import_tasks: "{{ role_path }}/tasks/ext/setup.yml"

- import_tasks: "{{ role_path }}/tasks/setup_synapse_main.yml"

- import_tasks: "{{ role_path }}/tasks/setup_synapse_goofys.yml"

+ 0
- 87
roles/matrix-synapse/tasks/setup_synapse_goofys.yml View File

@@ -1,87 +0,0 @@
#
# 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
register: matrix_goofys_systemd_service_result
when: matrix_s3_media_store_enabled

- name: Ensure systemd reloaded after matrix-goofys.service installation
service:
daemon_reload: yes
when: "matrix_s3_media_store_enabled and matrix_goofys_systemd_service_result.changed"

#
# 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
when: "not matrix_s3_media_store_enabled"

- 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 systemd reloaded after matrix-goofys.service removal
service:
daemon_reload: yes
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"

+ 7
- 0
roles/matrix-synapse/tasks/synapse/setup.yml View File

@@ -0,0 +1,7 @@
---

- import_tasks: "{{ role_path }}/tasks/synapse/setup_install.yml"
when: matrix_synapse_enabled

- import_tasks: "{{ role_path }}/tasks/synapse/setup_uninstall.yml"
when: "not matrix_synapse_enabled"

roles/matrix-synapse/tasks/setup_synapse_main.yml → roles/matrix-synapse/tasks/synapse/setup_install.yml View File


+ 28
- 0
roles/matrix-synapse/tasks/synapse/setup_uninstall.yml View File

@@ -0,0 +1,28 @@
- name: Check existence of matrix-synapse service
stat:
path: "/etc/systemd/system/matrix-synapse.service"
register: matrix_synapse_service_stat

- name: Ensure matrix-synapse is stopped
service:
name: matrix-synapse
state: stopped
daemon_reload: yes
register: stopping_result
when: "matrix_synapse_service_stat.stat.exists"

- name: Ensure matrix-synapse.service doesn't exist
file:
path: "/etc/systemd/system/matrix-synapse.service"
state: absent
when: "matrix_synapse_service_stat.stat.exists"

- name: Ensure systemd reloaded after matrix-synapse.service removal
service:
daemon_reload: yes
when: "matrix_synapse_service_stat.stat.exists"

- name: Ensure Synapse Docker image doesn't exist
docker_image:
name: "{{ matrix_synapse_docker_image }}"
state: absent

+ 1
- 1
roles/matrix-synapse/tasks/validate_config.yml View File

@@ -2,7 +2,7 @@

- name: Fail if required Synapse settings not defined
fail:
msg: >
msg: >-
You need to define a required configuration setting (`{{ item }}`) for using Synapse.
when: "vars[item] == ''"
with_items:


Loading…
Cancel
Save