5
0
mirror of https://github.com/spantaleev/matrix-docker-ansible-deploy.git synced 2026-07-17 15:26:41 +00:00
Files
matrix-docker-ansible-deploy/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_install.yml
T
Slavi Pantaleev d9bee18ddd Rename matrix_mautrix_wsproxy_* variables to matrix_bridge_mautrix_wsproxy_*
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>
2026-07-16 16:12:13 +03:00

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"