mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2024-11-10 20:57:41 +01:00
ea91ef7fb2
The goal is to allow these to be on separate partitions (including remote ones in the future). Because the `silviof/docker-matrix` image chowns everything to MATRIX_UID:MATRIX_GID on startup, we definitely don't want to include `media_store` in it. If it's on a remote FS, it would cause a slow startup. Also, adding some safety checks to the "import media store" task, after passing a wrong path to it on multiple occassions and wondering what's wrong. Also, making logging configurable. The default of keeping 10x100MB log files is likely excessive and people may want to change that.
49 lines
2.0 KiB
YAML
49 lines
2.0 KiB
YAML
---
|
|
|
|
- name: Fail if playbook called incorrectly
|
|
fail: msg="The `local_path_media_store` variable needs to be provided to this playbook, via --extra-vars"
|
|
when: "local_path_media_store is not defined or local_path_media_store.startswith('<')"
|
|
|
|
- name: Check if the provided media store directory exists
|
|
stat: path="{{ local_path_media_store }}"
|
|
delegate_to: 127.0.0.1
|
|
become: false
|
|
register: local_path_media_store_stat
|
|
|
|
- name: Fail if provided media_store directory doesn't exist on the local machine
|
|
fail: msg="File cannot be found on the local machine at {{ local_path_media_store }}"
|
|
when: "not local_path_media_store_stat.stat.exists or not local_path_media_store_stat.stat.isdir"
|
|
|
|
- name: Check if media store contains local_content
|
|
stat: path="{{ local_path_media_store }}/local_content"
|
|
delegate_to: 127.0.0.1
|
|
become: false
|
|
register: local_path_media_store_local_content_stat
|
|
|
|
- name: Check if media store contains remote_content
|
|
stat: path="{{ local_path_media_store }}/remote_content"
|
|
delegate_to: 127.0.0.1
|
|
become: false
|
|
register: local_path_media_store_remote_content_stat
|
|
|
|
- name: Fail if media_store directory doesn't look okay (lacking remote and local content)
|
|
fail: msg="{{ local_path_media_store }} contains neither local_content nor remote_content. It's most likely a mistake and is not a media store directory."
|
|
when: "not local_path_media_store_local_content_stat.stat.exists and not local_path_media_store_remote_content_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-synapse is stopped
|
|
service: name=matrix-synapse state=stopped daemon_reload=yes
|
|
register: stopping_result
|
|
|
|
- name: Ensure provided media_store directory is copied to the server
|
|
synchronize:
|
|
src: "{{ local_path_media_store }}/"
|
|
dest: "{{ matrix_synapse_media_store_path }}"
|
|
delete: yes
|
|
|
|
- name: Ensure Matrix Synapse is started (if it previously was)
|
|
service: name="{{ item }}" state=started daemon_reload=yes
|
|
when: stopping_result.changed
|
|
with_items:
|
|
- matrix-synapse
|
|
- matrix-nginx-proxy
|