mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-07-18 02:42:49 +10:00
d9bee18ddd
Part of adopting a uniform naming policy for bridge variables, where the variable prefix matches the role directory name. The companion appservice variables defined by this role are folded under the role prefix as well: matrix_mautrix_androidsms_* becomes matrix_bridge_mautrix_wsproxy_androidsms_* and matrix_mautrix_imessage_* becomes matrix_bridge_mautrix_wsproxy_imessage_*. matrix_mautrix_signal_wsproxy_syncproxy_connection_string becomes matrix_bridge_mautrix_wsproxy_syncproxy_connection_string, aligning it with the sibling matrix_bridge_mautrix_wsproxy_syncproxy_* variables. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
174 lines
7.4 KiB
YAML
174 lines
7.4 KiB
YAML
# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev
|
|
# SPDX-FileCopyrightText: 2023 Johan Swetzén
|
|
# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
|
|
# SPDX-FileCopyrightText: 2024 David Mehren
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
---
|
|
|
|
# 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
|
|
ansible.builtin.fail:
|
|
msg: >-
|
|
The matrix-bridge-mautrix-wsproxy role needs to execute before the matrix-synapse role.
|
|
when: "matrix_synapse_role_executed|default(False)"
|
|
|
|
- ansible.builtin.set_fact:
|
|
matrix_bridge_mautrix_wsproxy_migration_requires_restart: false
|
|
|
|
- ansible.builtin.set_fact:
|
|
matrix_bridge_mautrix_wsproxy_syncproxy_migration_requires_restart: false
|
|
|
|
- name: Ensure Mautrix wsproxy paths exist
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
mode: '0750'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
with_items:
|
|
- path: "{{ matrix_bridge_mautrix_wsproxy_base_path }}"
|
|
when: true
|
|
when: item.when | bool
|
|
|
|
- name: Ensure Mautrix wsproxy support files installed
|
|
ansible.builtin.template:
|
|
src: "{{ role_path }}/templates/{{ item }}.j2"
|
|
dest: "{{ matrix_bridge_mautrix_wsproxy_base_path }}/{{ item }}"
|
|
mode: '0640'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
with_items:
|
|
- syncproxy-env
|
|
- wsproxy-labels
|
|
register: matrix_bridge_mautrix_wsproxy_support_files_result
|
|
|
|
- name: Ensure Mautrix wsproxy image is pulled
|
|
community.docker.docker_image_pull:
|
|
name: "{{ matrix_bridge_mautrix_wsproxy_container_image }}"
|
|
pull: always
|
|
register: matrix_bridge_mautrix_wsproxy_container_image_pull_result
|
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
|
until: matrix_bridge_mautrix_wsproxy_container_image_pull_result is not failed
|
|
|
|
- name: Ensure Mautrix syncproxy image is pulled
|
|
community.docker.docker_image_pull:
|
|
name: "{{ matrix_bridge_mautrix_wsproxy_syncproxy_container_image }}"
|
|
pull: always
|
|
register: matrix_bridge_mautrix_wsproxy_syncproxy_container_image_pull_result
|
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
|
until: matrix_bridge_mautrix_wsproxy_syncproxy_container_image_pull_result is not failed
|
|
|
|
- name: Ensure Mautrix wsproxy paths exists
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: '0750'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
with_items:
|
|
- "{{ matrix_bridge_mautrix_wsproxy_base_path }}"
|
|
- "{{ matrix_bridge_mautrix_wsproxy_config_path }}"
|
|
|
|
- name: Check if an old Matrix state file exists
|
|
ansible.builtin.stat:
|
|
path: "{{ matrix_bridge_mautrix_wsproxy_base_path }}/mx-state.json"
|
|
register: matrix_bridge_mautrix_wsproxy_stat_mx_state
|
|
|
|
- name: Ensure mautrix-wsproxy config.yaml installed
|
|
ansible.builtin.copy:
|
|
content: "{{ matrix_bridge_mautrix_wsproxy_configuration | to_nice_yaml }}"
|
|
dest: "{{ matrix_bridge_mautrix_wsproxy_config_path }}/config.yaml"
|
|
mode: '0644'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
register: matrix_bridge_mautrix_wsproxy_config_result
|
|
|
|
- name: Ensure mautrix-androidsms registration.yaml installed
|
|
ansible.builtin.copy:
|
|
content: "{{ matrix_bridge_mautrix_wsproxy_androidsms_registration | to_nice_yaml }}"
|
|
dest: "{{ matrix_bridge_mautrix_wsproxy_config_path }}/androidsms-registration.yaml"
|
|
mode: '0644'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
register: matrix_bridge_mautrix_wsproxy_registration_androidsms_result
|
|
|
|
- name: Ensure mautrix-imessage registration.yaml installed
|
|
ansible.builtin.copy:
|
|
content: "{{ matrix_bridge_mautrix_wsproxy_imessage_registration | to_nice_yaml }}"
|
|
dest: "{{ matrix_bridge_mautrix_wsproxy_config_path }}/imessage-registration.yaml"
|
|
mode: '0644'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
register: matrix_bridge_mautrix_wsproxy_registration_imessage_result
|
|
|
|
- name: Ensure mautrix-wsproxy container network is created
|
|
when: matrix_bridge_mautrix_wsproxy_container_network != 'host'
|
|
community.general.docker_network:
|
|
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
|
name: "{{ matrix_bridge_mautrix_wsproxy_container_network }}"
|
|
driver: bridge
|
|
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
|
|
|
- name: Ensure matrix-mautrix-wsproxy.service installed
|
|
ansible.builtin.template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-mautrix-wsproxy.service.j2"
|
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy.service"
|
|
mode: '0644'
|
|
register: matrix_bridge_mautrix_wsproxy_systemd_service_result
|
|
|
|
- name: Determine whether Mautrix wsproxy needs a restart
|
|
ansible.builtin.set_fact:
|
|
matrix_bridge_mautrix_wsproxy_restart_necessary: >-
|
|
{{
|
|
matrix_bridge_mautrix_wsproxy_migration_requires_restart | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_support_files_result.changed | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_config_result.changed | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_registration_androidsms_result.changed | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_registration_imessage_result.changed | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_systemd_service_result.changed | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_container_image_pull_result.changed | default(false)
|
|
}}
|
|
|
|
- name: Ensure systemd reloaded after matrix-mautrix-wsproxy.service installation
|
|
ansible.builtin.service:
|
|
daemon_reload: true
|
|
when: "matrix_bridge_mautrix_wsproxy_systemd_service_result.changed"
|
|
|
|
- name: Ensure matrix-mautrix-wsproxy.service restarted, if necessary
|
|
ansible.builtin.service:
|
|
name: "matrix-mautrix-wsproxy.service"
|
|
state: restarted
|
|
when: "matrix_bridge_mautrix_wsproxy_migration_requires_restart|bool"
|
|
|
|
- name: Ensure matrix-mautrix-wsproxy-syncproxy.service installed
|
|
ansible.builtin.template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2"
|
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy-syncproxy.service"
|
|
mode: '0644'
|
|
register: matrix_bridge_mautrix_wsproxy_syncproxy_systemd_service_result
|
|
|
|
- name: Determine whether Mautrix wsproxy syncproxy needs a restart
|
|
ansible.builtin.set_fact:
|
|
matrix_bridge_mautrix_wsproxy_syncproxy_restart_necessary: >-
|
|
{{
|
|
matrix_bridge_mautrix_wsproxy_syncproxy_migration_requires_restart | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_syncproxy_systemd_service_result.changed | default(false)
|
|
or matrix_bridge_mautrix_wsproxy_syncproxy_container_image_pull_result.changed | default(false)
|
|
}}
|
|
|
|
- name: Ensure systemd reloaded after matrix-mautrix-wsproxy-syncproxy.service installation
|
|
ansible.builtin.service:
|
|
daemon_reload: true
|
|
when: "matrix_bridge_mautrix_wsproxy_syncproxy_systemd_service_result.changed"
|
|
|
|
- name: Ensure matrix-mautrix-wsproxy-syncproxy.service restarted, if necessary
|
|
ansible.builtin.service:
|
|
name: "matrix-mautrix-wsproxy-syncproxy.service"
|
|
state: restarted
|
|
when: "matrix_bridge_mautrix_wsproxy_syncproxy_migration_requires_restart|bool"
|