330648a3e0
Related to #193, but for the Facebook bridge. (other bridges can be changed to do the same later). This patch makes the bridge configuration entirely managed by the Ansible playbook. The bridge's `config.yaml` and `registration.yaml` configuration files are regenerated every time the playbook runs. This allows us to apply updates to those files and to avoid people having to manage the configuration files manually on the server. ------------------------------------------------------------- A deficiency of the current approach to dumping YAML configuration in `config.yaml` is that we strip all comments from it. Later on, when the bridge actually starts, it will load and redump (this time with comments), which will make the `config.yaml` file change. Subsequent playbook runs will report "changed" for the "Ensure mautrix-facebook config.yaml installed" task, which is a little strange. We might wish to improve this in the future, if possible. Still, it's better to have a (usually) somewhat meaningless "changed" task than to what we had -- never rebuilding the configuration.
63 lines
2.3 KiB
YAML
63 lines
2.3 KiB
YAML
---
|
|
|
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
|
# We don't want to fail in such cases.
|
|
- name: Fail if matrix-synapse role already executed
|
|
fail:
|
|
msg: >-
|
|
The matrix-bridge-mautrix-facebook role needs to execute before the matrix-synapse role.
|
|
when: "matrix_synapse_role_executed|default(False)"
|
|
|
|
- name: Ensure Mautrix Facebook image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_mautrix_facebook_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
|
|
- name: Ensure Mautrix Facebook base directory exists
|
|
file:
|
|
path: "{{ matrix_mautrix_facebook_base_path }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_username }}"
|
|
|
|
- name: Ensure mautrix-facebook config.yaml installed
|
|
copy:
|
|
content: "{{ matrix_mautrix_facebook_configuration|to_nice_yaml }}"
|
|
dest: "{{ matrix_mautrix_facebook_base_path }}/config.yaml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_username }}"
|
|
|
|
- name: Ensure mautrix-facebook registration.yaml installed
|
|
copy:
|
|
content: "{{ matrix_mautrix_facebook_registration|to_nice_yaml }}"
|
|
dest: "{{ matrix_mautrix_facebook_base_path }}/registration.yaml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_username }}"
|
|
|
|
- name: Ensure matrix-mautrix-facebook.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-mautrix-facebook.service.j2"
|
|
dest: "/etc/systemd/system/matrix-mautrix-facebook.service"
|
|
mode: 0644
|
|
register: matrix_mautrix_facebook_systemd_service_result
|
|
|
|
- name: Ensure systemd reloaded after matrix-mautrix-facebook.service installation
|
|
service:
|
|
daemon_reload: yes
|
|
when: "matrix_mautrix_facebook_systemd_service_result.changed"
|
|
|
|
# If the matrix-synapse role is not used, these variables may not exist.
|
|
- set_fact:
|
|
matrix_synapse_container_extra_arguments: >
|
|
{{ matrix_synapse_container_extra_arguments|default([]) }}
|
|
+
|
|
{{ ["--mount type=bind,src={{ matrix_mautrix_facebook_base_path }}/registration.yaml,dst=/matrix-mautrix-facebook-registration.yaml,ro"] }}
|
|
|
|
matrix_synapse_app_service_config_files: >
|
|
{{ matrix_synapse_app_service_config_files|default([]) }}
|
|
+
|
|
{{ ["/matrix-mautrix-facebook-registration.yaml"] }}
|