mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2024-11-06 10:47:32 +01:00
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.
70 lines
2.7 KiB
YAML
70 lines
2.7 KiB
YAML
---
|
|
|
|
# We used to store Postgres data directly under `/matrix/postgres` (what is now considered `matrix_postgres_base_path`).
|
|
#
|
|
# From now on, we expect to store Postgres data one directory below now (`/matrix/postgres/data` - `matrix_postgres_data_path`).
|
|
# We wish to use the base directory for other purposes (storing environment variable files, etc.).
|
|
# Mixing those with the Postgres data is no good and it leads to Postgres's `initdb` complaining to initialize
|
|
# a database in a non-empty directory.
|
|
#
|
|
# For this reason, we store the Postgres data in `/matrix/postgres/data` and need to relocate any installations
|
|
# which still store it in the parent directory (`/matrix/postgres`).
|
|
|
|
- name: Check if old Postgres data directory is used
|
|
stat:
|
|
path: "{{ matrix_postgres_base_path }}/PG_VERSION"
|
|
register: result_pg_old_data_dir_stat
|
|
|
|
- name: Warn if old Postgres data directory detected
|
|
debug:
|
|
msg: >
|
|
Found that you have Postgres data in `{{ matrix_postgres_base_path }}`.
|
|
From now on, Postgres data is supposed to be stored in `{{ matrix_postgres_data_path }}` instead.
|
|
We'll stop Postgres and relocate the files there for you.
|
|
when: "result_pg_old_data_dir_stat.stat.exists"
|
|
|
|
- name: Find files and directories in old Postgres data path
|
|
find:
|
|
paths: "{{ matrix_postgres_base_path }}"
|
|
file_type: any
|
|
excludes: ["data"]
|
|
register: "result_pg_old_data_dir_find"
|
|
when: "result_pg_old_data_dir_stat.stat.exists"
|
|
|
|
- name: Ensure new Postgres data path exists
|
|
file:
|
|
path: "{{ matrix_postgres_data_path }}"
|
|
state: directory
|
|
mode: 0700
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_username }}"
|
|
when: "result_pg_old_data_dir_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-postgres is stopped
|
|
service:
|
|
name: matrix-postgres
|
|
state: stopped
|
|
daemon_reload: yes
|
|
when: "result_pg_old_data_dir_stat.stat.exists"
|
|
|
|
- block:
|
|
- name: Relocate Postgres data files from old directory to new
|
|
command: "mv {{ item.path }} {{ matrix_postgres_data_path }}/{{ item.path|basename }}"
|
|
with_items: "{{ result_pg_old_data_dir_find.files }}"
|
|
when: "result_pg_old_data_dir_stat.stat.exists"
|
|
|
|
# Intentionally not starting matrix-postgres here.
|
|
# It likely needs to be updated to point to the new directory.
|
|
# In fact, let's even get rid of the outdated service, to ensure no one will start it
|
|
# and have it initialize a new database.
|
|
|
|
- name: Ensure outdated matrix-postgres.service doesn't exist
|
|
file:
|
|
path: "/etc/systemd/system/matrix-postgres.service"
|
|
state: absent
|
|
when: "result_pg_old_data_dir_stat.stat.exists"
|
|
|
|
- name: Ensure systemd reloaded after getting rid of outdated matrix-postgres.service
|
|
service:
|
|
daemon_reload: yes
|
|
when: "result_pg_old_data_dir_stat.stat.exists" |