Merge branch 'master' into pub.solar
This commit is contained in:
commit
f6a1d4391e
13
.config/ansible-lint.yml
Normal file
13
.config/ansible-lint.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
use_default_rules: true
|
||||||
|
|
||||||
|
skip_list:
|
||||||
|
- unnamed-task
|
||||||
|
- no-handler
|
||||||
|
- no-jinja-nesting
|
||||||
|
- schema
|
||||||
|
- command-instead-of-shell
|
||||||
|
- role-name
|
||||||
|
|
||||||
|
offline: false
|
7
Makefile
Normal file
7
Makefile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
.PHONY: lint
|
||||||
|
|
||||||
|
help: ## Show this help.
|
||||||
|
@fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//'
|
||||||
|
|
||||||
|
lint: ## Runs ansible-lint against all roles in the playbook
|
||||||
|
ansible-lint
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup.yml"
|
||||||
when: run_stop | bool
|
when: run_stop | bool
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure AUX directories are created
|
- name: Ensure AUX directories are created
|
||||||
file:
|
ansible.builtin.file:
|
||||||
dest: "{{ item.dest }}"
|
dest: "{{ item.dest }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ item.owner | default(matrix_user_username) }}"
|
owner: "{{ item.owner | default(matrix_user_username) }}"
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
with_items: "{{ matrix_aux_directory_definitions }}"
|
with_items: "{{ matrix_aux_directory_definitions }}"
|
||||||
|
|
||||||
- name: Ensure AUX files are created
|
- name: Ensure AUX files are created
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: "{{ item.dest }}"
|
dest: "{{ item.dest }}"
|
||||||
content: "{{ item.content }}"
|
content: "{{ item.content }}"
|
||||||
owner: "{{ item.owner | default(matrix_user_username) }}"
|
owner: "{{ item.owner | default(matrix_user_username) }}"
|
||||||
|
|
|
@ -8,6 +8,7 @@ matrix_backup_borg_config_path: "{{ matrix_backup_borg_base_path }}/config"
|
||||||
|
|
||||||
matrix_backup_borg_container_image_self_build: false
|
matrix_backup_borg_container_image_self_build: false
|
||||||
matrix_backup_borg_docker_repo: "https://gitlab.com/etke.cc/borgmatic"
|
matrix_backup_borg_docker_repo: "https://gitlab.com/etke.cc/borgmatic"
|
||||||
|
matrix_backup_borg_docker_repo_version: main
|
||||||
matrix_backup_borg_docker_src_files_path: "{{ matrix_backup_borg_base_path }}/docker-src"
|
matrix_backup_borg_docker_src_files_path: "{{ matrix_backup_borg_base_path }}/docker-src"
|
||||||
|
|
||||||
# version determined automatically, based on postgres server version (if enabled), otherwise latest is used
|
# version determined automatically, based on postgres server version (if enabled), otherwise latest is used
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
---
|
---
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-backup-borg.timer'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-backup-borg.timer'] }}"
|
||||||
when: matrix_backup_borg_enabled | bool
|
when: matrix_backup_borg_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_backup_borg_enabled | bool"
|
when: "run_setup | bool and matrix_backup_borg_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-backup-borg
|
- setup-backup-borg
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_backup_borg_enabled | bool"
|
when: "run_setup | bool and matrix_backup_borg_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-backup-borg
|
- setup-backup-borg
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_backup_borg_enabled | bool"
|
when: "run_setup | bool and not matrix_backup_borg_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,19 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/detect_existing_postgres_version.yml"
|
- ansible.builtin.import_role:
|
||||||
|
name: matrix-postgres
|
||||||
|
tasks_from: detect_existing_postgres_version
|
||||||
|
|
||||||
- name: Fail if detected Postgres version is unsupported
|
- name: Fail if detected Postgres version is unsupported
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "You cannot use borg backup with such an old version ({{ matrix_postgres_detected_version }}) of Postgres. Consider upgrading - link to docs for upgrading Postgres: docs/maintenance-postgres.md#upgrading-postgresql"
|
msg: "You cannot use borg backup with such an old version ({{ matrix_postgres_detected_version }}) of Postgres. Consider upgrading - link to docs for upgrading Postgres: docs/maintenance-postgres.md#upgrading-postgresql"
|
||||||
when: "matrix_postgres_detected_version not in matrix_backup_borg_supported_postgres_versions"
|
when: "matrix_postgres_detected_version not in matrix_backup_borg_supported_postgres_versions"
|
||||||
|
|
||||||
- name: Set the correct borg backup version to use
|
- name: Set the correct borg backup version to use
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_backup_borg_version: "{{ matrix_postgres_detected_version }}"
|
matrix_backup_borg_version: "{{ matrix_postgres_detected_version }}"
|
||||||
when: matrix_backup_borg_postgresql_enabled | bool and matrix_backup_borg_version == ''
|
when: matrix_backup_borg_postgresql_enabled | bool and matrix_backup_borg_version == ''
|
||||||
|
|
||||||
- name: Ensure borg paths exist
|
- name: Ensure borg paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -25,7 +28,7 @@
|
||||||
when: "item.when | bool"
|
when: "item.when | bool"
|
||||||
|
|
||||||
- name: Ensure borgmatic config is created
|
- name: Ensure borgmatic config is created
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_backup_borg_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_backup_borg_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_backup_borg_config_path }}/config.yaml"
|
dest: "{{ matrix_backup_borg_config_path }}/config.yaml"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -33,7 +36,7 @@
|
||||||
mode: 0640
|
mode: 0640
|
||||||
|
|
||||||
- name: Ensure borg passwd is created
|
- name: Ensure borg passwd is created
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/passwd.j2"
|
src: "{{ role_path }}/templates/passwd.j2"
|
||||||
dest: "{{ matrix_backup_borg_config_path }}/passwd"
|
dest: "{{ matrix_backup_borg_config_path }}/passwd"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -41,7 +44,7 @@
|
||||||
mode: 0640
|
mode: 0640
|
||||||
|
|
||||||
- name: Ensure borg ssh key is created
|
- name: Ensure borg ssh key is created
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/sshkey.j2"
|
src: "{{ role_path }}/templates/sshkey.j2"
|
||||||
dest: "{{ matrix_backup_borg_config_path }}/sshkey"
|
dest: "{{ matrix_backup_borg_config_path }}/sshkey"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -61,8 +64,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure borg repository is present on self-build
|
- name: Ensure borg repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_backup_borg_docker_repo }}"
|
repo: "{{ matrix_backup_borg_docker_repo }}"
|
||||||
|
version: "{{ matrix_backup_borg_docker_repo_version }}"
|
||||||
dest: "{{ matrix_backup_borg_docker_src_files_path }}"
|
dest: "{{ matrix_backup_borg_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -83,30 +87,30 @@
|
||||||
when: "matrix_backup_borg_container_image_self_build | bool"
|
when: "matrix_backup_borg_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg.service installed
|
- name: Ensure matrix-backup-borg.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-backup-borg.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-backup-borg.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-backup-borg.service"
|
dest: "{{ matrix_systemd_path }}/matrix-backup-borg.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_backup_borg_systemd_service_result
|
register: matrix_backup_borg_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg.timer installed
|
- name: Ensure matrix-backup-borg.timer installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-backup-borg.timer.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-backup-borg.timer.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-backup-borg.timer"
|
dest: "{{ matrix_systemd_path }}/matrix-backup-borg.timer"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_backup_borg_systemd_timer_result
|
register: matrix_backup_borg_systemd_timer_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-backup-borg.service installation
|
- name: Ensure systemd reloaded after matrix-backup-borg.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_backup_borg_systemd_service_result.changed | bool"
|
when: "matrix_backup_borg_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg.service enabled
|
- name: Ensure matrix-backup-borg.service enabled
|
||||||
service:
|
ansible.builtin.service:
|
||||||
enabled: true
|
enabled: true
|
||||||
name: matrix-backup-borg.service
|
name: matrix-backup-borg.service
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg.timer enabled
|
- name: Ensure matrix-backup-borg.timer enabled
|
||||||
service:
|
ansible.builtin.service:
|
||||||
enabled: true
|
enabled: true
|
||||||
name: matrix-backup-borg.timer
|
name: matrix-backup-borg.timer
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
---
|
---
|
||||||
- name: Check existence of matrix-backup-borg service
|
- name: Check existence of matrix-backup-borg service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-backup-borg.service"
|
path: "{{ matrix_systemd_path }}/matrix-backup-borg.service"
|
||||||
register: matrix_backup_borg_service_stat
|
register: matrix_backup_borg_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg is stopped
|
- name: Ensure matrix-backup-borg is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-backup-borg
|
name: matrix-backup-borg
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,24 +14,24 @@
|
||||||
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg.service doesn't exist
|
- name: Ensure matrix-backup-borg.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-backup-borg.service"
|
path: "{{ matrix_systemd_path }}/matrix-backup-borg.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-backup-borg.timer doesn't exist
|
- name: Ensure matrix-backup-borg.timer doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-backup-borg.timer"
|
path: "{{ matrix_systemd_path }}/matrix-backup-borg.timer"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-backup-borg.service removal
|
- name: Ensure systemd reloaded after matrix-backup-borg.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
when: "matrix_backup_borg_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix borg paths don't exist
|
- name: Ensure Matrix borg paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_backup_borg_base_path }}"
|
path: "{{ matrix_backup_borg_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
- "matrix_backup_borg_location_repositories"
|
- "matrix_backup_borg_location_repositories"
|
||||||
|
|
||||||
- name: Fail if encryption passphrase is undefined unless repository is unencrypted
|
- name: Fail if encryption passphrase is undefined unless repository is unencrypted
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required passphrase using the `matrix_backup_borg_storage_encryption_passphrase` variable.
|
You need to define a required passphrase using the `matrix_backup_borg_storage_encryption_passphrase` variable.
|
||||||
when: "matrix_backup_borg_storage_encryption_passphrase == '' and matrix_backup_borg_encryption != 'none'"
|
when: "matrix_backup_borg_storage_encryption_passphrase == '' and matrix_backup_borg_encryption != 'none'"
|
||||||
|
|
|
@ -157,7 +157,7 @@ matrix_integration_manager_ui_url: ~
|
||||||
# The domain name where a Jitsi server is self-hosted.
|
# The domain name where a Jitsi server is self-hosted.
|
||||||
# If set, `/.well-known/matrix/client` will suggest Element clients to use that Jitsi server.
|
# If set, `/.well-known/matrix/client` will suggest Element clients to use that Jitsi server.
|
||||||
# See: https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md#configuring-element-to-use-your-self-hosted-jitsi-server
|
# See: https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md#configuring-element-to-use-your-self-hosted-jitsi-server
|
||||||
matrix_client_element_jitsi_preferredDomain: ''
|
matrix_client_element_jitsi_preferredDomain: '' # noqa var-naming
|
||||||
|
|
||||||
# Controls whether Element should use End-to-End Encryption by default.
|
# Controls whether Element should use End-to-End Encryption by default.
|
||||||
# Setting this to false will update `/.well-known/matrix/client` and tell Element clients to avoid E2EE.
|
# Setting this to false will update `/.well-known/matrix/client` and tell Element clients to avoid E2EE.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Get rid of old files and directories
|
- name: Get rid of old files and directories
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items:
|
with_items:
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/sanity_check.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/sanity_check.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/clean_up_old_files.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/clean_up_old_files.yml"
|
||||||
when: run_setup | bool
|
when: run_setup | bool
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/server_base/setup.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/server_base/setup.yml"
|
||||||
when: run_setup | bool
|
when: run_setup | bool
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
||||||
# This needs to always run, because it populates `matrix_user_uid` and `matrix_user_gid`,
|
# This needs to always run, because it populates `matrix_user_uid` and `matrix_user_gid`,
|
||||||
# which are required by many other roles.
|
# which are required by many other roles.
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_matrix_user.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_matrix_user.yml"
|
||||||
when: run_setup | bool
|
when: run_setup | bool
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
- setup-system-user
|
- setup-system-user
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_matrix_base.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_matrix_base.yml"
|
||||||
when: run_setup | bool
|
when: run_setup | bool
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_well_known.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_well_known.yml"
|
||||||
when: run_setup | bool
|
when: run_setup | bool
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if invalid homeserver implementation
|
- name: Fail if invalid homeserver implementation
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`"
|
msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`"
|
||||||
when: "matrix_homeserver_implementation not in ['synapse', 'dendrite']"
|
when: "matrix_homeserver_implementation not in ['synapse', 'dendrite']"
|
||||||
|
|
||||||
# We generally support Ansible 2.7.1 and above.
|
# We generally support Ansible 2.7.1 and above.
|
||||||
- name: Fail if running on Ansible < 2.7.1
|
- name: Fail if running on Ansible < 2.7.1
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "You are running on Ansible {{ ansible_version.string }}, which is not supported. See our guide about Ansible: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/ansible.md"
|
msg: "You are running on Ansible {{ ansible_version.string }}, which is not supported. See our guide about Ansible: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/ansible.md"
|
||||||
when:
|
when:
|
||||||
- "(ansible_version.major < 2) or (ansible_version.major == 2 and ansible_version.minor < 7) or (ansible_version.major == 2 and ansible_version.minor == 7 and ansible_version.revision < 1)"
|
- "(ansible_version.major < 2) or (ansible_version.major == 2 and ansible_version.minor < 7) or (ansible_version.major == 2 and ansible_version.minor == 7 and ansible_version.revision < 1)"
|
||||||
|
|
||||||
# Though we do not support Ansible 2.9.6 which is buggy
|
# Though we do not support Ansible 2.9.6 which is buggy
|
||||||
- name: Fail if running on Ansible 2.9.6 on Ubuntu
|
- name: Fail if running on Ansible 2.9.6 on Ubuntu
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "You are running on Ansible {{ ansible_version.string }}, which is not supported. See our guide about Ansible: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/ansible.md"
|
msg: "You are running on Ansible {{ ansible_version.string }}, which is not supported. See our guide about Ansible: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/ansible.md"
|
||||||
when:
|
when:
|
||||||
- ansible_distribution == 'Ubuntu'
|
- ansible_distribution == 'Ubuntu'
|
||||||
- "ansible_version.major == 2 and ansible_version.minor == 9 and ansible_version.revision == 6"
|
- "ansible_version.major == 2 and ansible_version.minor == 9 and ansible_version.revision == 6"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed settings
|
- name: (Deprecation) Catch and report renamed settings
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration contains a variable, which now has a different name.
|
Your configuration contains a variable, which now has a different name.
|
||||||
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
# We have a dedicated check for this variable, because we'd like to have a custom (friendlier) message.
|
# We have a dedicated check for this variable, because we'd like to have a custom (friendlier) message.
|
||||||
- name: Fail if matrix_homeserver_generic_secret_key is undefined
|
- name: Fail if matrix_homeserver_generic_secret_key is undefined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: |
|
msg: |
|
||||||
The `matrix_homeserver_generic_secret_key` variable must be defined and have a non-null and non-empty value.
|
The `matrix_homeserver_generic_secret_key` variable must be defined and have a non-null and non-empty value.
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
when: "matrix_homeserver_generic_secret_key is none or matrix_homeserver_generic_secret_key == ''"
|
when: "matrix_homeserver_generic_secret_key is none or matrix_homeserver_generic_secret_key == ''"
|
||||||
|
|
||||||
- name: Fail if required variables are undefined
|
- name: Fail if required variables are undefined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "The `{{ item.var }}` variable must be defined and have a non-null and non-empty value"
|
msg: "The `{{ item.var }}` variable must be defined and have a non-null and non-empty value"
|
||||||
with_items:
|
with_items:
|
||||||
- {'var': matrix_domain, 'value': "{{ matrix_domain | default('') }}"}
|
- {'var': matrix_domain, 'value': "{{ matrix_domain | default('') }}"}
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
when: "item.value is none or item.value == ''"
|
when: "item.value is none or item.value == ''"
|
||||||
|
|
||||||
- name: Fail if uppercase domain used
|
- name: Fail if uppercase domain used
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "Detected that you're using an uppercase domain name - `{{ item }}`. This will cause trouble. Please use all-lowercase!"
|
msg: "Detected that you're using an uppercase domain name - `{{ item }}`. This will cause trouble. Please use all-lowercase!"
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ matrix_domain }}"
|
- "{{ matrix_domain }}"
|
||||||
|
@ -67,21 +67,21 @@
|
||||||
when: "item != item | lower"
|
when: "item != item | lower"
|
||||||
|
|
||||||
- name: Fail if using python2 on Archlinux
|
- name: Fail if using python2 on Archlinux
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "Detected that you're using python2 when installing onto Archlinux. Archlinux by default only supports python3."
|
msg: "Detected that you're using python2 when installing onto Archlinux. Archlinux by default only supports python3."
|
||||||
when:
|
when:
|
||||||
- ansible_distribution == 'Archlinux'
|
- ansible_distribution == 'Archlinux'
|
||||||
- ansible_python.version.major != 3
|
- ansible_python.version.major != 3
|
||||||
|
|
||||||
- name: Fail if architecture is set incorrectly
|
- name: Fail if architecture is set incorrectly
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "Detected that variable matrix_architecture {{ matrix_architecture }} appears to be set incorrectly. See docs/alternative-architectures.md. Server appears to be {{ ansible_architecture }}."
|
msg: "Detected that variable matrix_architecture {{ matrix_architecture }} appears to be set incorrectly. See docs/alternative-architectures.md. Server appears to be {{ ansible_architecture }}."
|
||||||
when: (ansible_architecture == "x86_64" and matrix_architecture != "amd64") or
|
when: (ansible_architecture == "x86_64" and matrix_architecture != "amd64") or
|
||||||
(ansible_architecture == "aarch64" and matrix_architecture != "arm64") or
|
(ansible_architecture == "aarch64" and matrix_architecture != "arm64") or
|
||||||
(ansible_architecture.startswith("armv") and matrix_architecture != "arm32")
|
(ansible_architecture.startswith("armv") and matrix_architecture != "arm32")
|
||||||
|
|
||||||
- name: Fail if encountering usage of removed role (mx-puppet-skype)
|
- name: Fail if encountering usage of removed role (mx-puppet-skype)
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration seems to include a reference to `matrix_mx_puppet_skype_enabled`. Are you trying to install the mx-puppet-skype bridge?
|
Your configuration seems to include a reference to `matrix_mx_puppet_skype_enabled`. Are you trying to install the mx-puppet-skype bridge?
|
||||||
The playbook no longer includes a role for installing mx-puppet-skype, because the mx-puppet-bridge is unmaintained and has been reported as broken for a long time.
|
The playbook no longer includes a role for installing mx-puppet-skype, because the mx-puppet-bridge is unmaintained and has been reported as broken for a long time.
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- include_tasks: "{{ role_path }}/tasks/server_base/setup_redhat.yml"
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/server_base/setup_redhat.yml"
|
||||||
when: ansible_os_family == 'RedHat' and ansible_distribution_major_version | int < 8
|
when: ansible_os_family == 'RedHat' and ansible_distribution_major_version | int < 8
|
||||||
|
|
||||||
- include_tasks: "{{ role_path }}/tasks/server_base/setup_redhat8.yml"
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/server_base/setup_redhat8.yml"
|
||||||
when: ansible_os_family == 'RedHat' and ansible_distribution_major_version | int > 7 and ansible_distribution_major_version | int < 30
|
when: ansible_os_family == 'RedHat' and ansible_distribution_major_version | int > 7 and ansible_distribution_major_version | int < 30
|
||||||
|
|
||||||
- include_tasks: "{{ role_path }}/tasks/server_base/setup_fedora.yml"
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/server_base/setup_fedora.yml"
|
||||||
when: ansible_os_family == 'RedHat' and ansible_distribution_major_version | int > 30
|
when: ansible_os_family == 'RedHat' and ansible_distribution_major_version | int > 30
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
# ansible_lsb is only available if lsb-release is installed.
|
# ansible_lsb is only available if lsb-release is installed.
|
||||||
- name: Ensure lsb-release installed
|
- name: Ensure lsb-release installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- lsb-release
|
- lsb-release
|
||||||
state: present
|
state: present
|
||||||
|
@ -20,27 +20,27 @@
|
||||||
register: lsb_release_installation_result
|
register: lsb_release_installation_result
|
||||||
|
|
||||||
- name: Reread ansible_lsb facts if lsb-release got installed
|
- name: Reread ansible_lsb facts if lsb-release got installed
|
||||||
setup: filter=ansible_lsb*
|
ansible.builtin.setup: filter=ansible_lsb*
|
||||||
when: lsb_release_installation_result.changed
|
when: lsb_release_installation_result.changed
|
||||||
|
|
||||||
- include_tasks: "{{ role_path }}/tasks/server_base/setup_debian.yml"
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/server_base/setup_debian.yml"
|
||||||
when: (ansible_os_family == 'Debian') and (ansible_lsb.id != 'Raspbian')
|
when: (ansible_os_family == 'Debian') and (ansible_lsb.id != 'Raspbian')
|
||||||
|
|
||||||
- include_tasks: "{{ role_path }}/tasks/server_base/setup_raspbian.yml"
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/server_base/setup_raspbian.yml"
|
||||||
when: (ansible_os_family == 'Debian') and (ansible_lsb.id == 'Raspbian')
|
when: (ansible_os_family == 'Debian') and (ansible_lsb.id == 'Raspbian')
|
||||||
when: ansible_os_family == 'Debian'
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
- include_tasks: "{{ role_path }}/tasks/server_base/setup_archlinux.yml"
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/server_base/setup_archlinux.yml"
|
||||||
when: ansible_distribution == 'Archlinux'
|
when: ansible_distribution == 'Archlinux'
|
||||||
|
|
||||||
- name: Ensure Docker is started and autoruns
|
- name: Ensure Docker is started and autoruns
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: docker
|
name: docker
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- name: "Ensure {{ matrix_ntpd_service }} is started and autoruns"
|
- name: "Ensure {{ matrix_ntpd_service }} is started and autoruns"
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "{{ matrix_ntpd_service }}"
|
name: "{{ matrix_ntpd_service }}"
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
name:
|
name:
|
||||||
- python-docker
|
- python-docker
|
||||||
- python-dnspython
|
- python-dnspython
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker is installed
|
- name: Ensure Docker is installed
|
||||||
pacman:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- docker
|
- docker
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure APT usage dependencies are installed
|
- name: Ensure APT usage dependencies are installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- apt-transport-https
|
- apt-transport-https
|
||||||
- ca-certificates
|
- ca-certificates
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker's APT key is trusted
|
- name: Ensure Docker's APT key is trusted
|
||||||
apt_key:
|
ansible.builtin.apt_key:
|
||||||
url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
|
url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
|
||||||
id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
|
id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
|
||||||
state: present
|
state: present
|
||||||
|
@ -19,23 +19,23 @@
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure Docker repository is enabled
|
- name: Ensure Docker repository is enabled
|
||||||
apt_repository:
|
ansible.builtin.apt_repository:
|
||||||
repo: "deb [arch={{ matrix_debian_arch }}] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
|
repo: "deb [arch={{ matrix_debian_arch }}] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
|
||||||
state: present
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure APT packages are installed
|
- name: Ensure APT packages are installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_ntpd_package }}"
|
- "{{ matrix_ntpd_package }}"
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker is installed
|
- name: Ensure Docker is installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_docker_package_name }}"
|
- "{{ matrix_docker_package_name }}"
|
||||||
- "python{{ '3' if ansible_python.version.major == 3 else '' }}-docker"
|
- "python{{ '3' if ansible_python.version.major == 3 else '' }}-docker"
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure Docker repository is enabled
|
- name: Ensure Docker repository is enabled
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/files/yum.repos.d/{{ item }}"
|
src: "{{ role_path }}/files/yum.repos.d/{{ item }}"
|
||||||
dest: "/etc/yum.repos.d/docker-ce.repo"
|
dest: "/etc/yum.repos.d/docker-ce.repo"
|
||||||
owner: "root"
|
owner: "root"
|
||||||
|
@ -12,28 +12,28 @@
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure Docker's RPM key is trusted
|
- name: Ensure Docker's RPM key is trusted
|
||||||
rpm_key:
|
ansible.builtin.rpm_key:
|
||||||
state: present
|
state: present
|
||||||
key: https://download.docker.com/linux/fedora/gpg
|
key: https://download.docker.com/linux/fedora/gpg
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure yum packages are installed
|
- name: Ensure yum packages are installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_ntpd_package }}"
|
- "{{ matrix_ntpd_package }}"
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker is installed
|
- name: Ensure Docker is installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_docker_package_name }}"
|
- "{{ matrix_docker_package_name }}"
|
||||||
- python3-pip
|
- python3-pip
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
||||||
- name: Ensure Docker-Py is installed
|
- name: Ensure Docker-Py is installed
|
||||||
pip:
|
ansible.builtin.pip:
|
||||||
name: docker-py
|
name: docker-py
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure APT usage dependencies are installed
|
- name: Ensure APT usage dependencies are installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- apt-transport-https
|
- apt-transport-https
|
||||||
- ca-certificates
|
- ca-certificates
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker's APT key is trusted
|
- name: Ensure Docker's APT key is trusted
|
||||||
apt_key:
|
ansible.builtin.apt_key:
|
||||||
url: https://download.docker.com/linux/raspbian/gpg
|
url: https://download.docker.com/linux/raspbian/gpg
|
||||||
id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
|
id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
|
||||||
state: present
|
state: present
|
||||||
|
@ -19,23 +19,23 @@
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure Docker repository is enabled
|
- name: Ensure Docker repository is enabled
|
||||||
apt_repository:
|
ansible.builtin.apt_repository:
|
||||||
repo: "deb [arch={{ matrix_debian_arch }}] https://download.docker.com/linux/raspbian {{ ansible_distribution_release }} stable"
|
repo: "deb [arch={{ matrix_debian_arch }}] https://download.docker.com/linux/raspbian {{ ansible_distribution_release }} stable"
|
||||||
state: present
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure APT packages are installed
|
- name: Ensure APT packages are installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_ntpd_package }}"
|
- "{{ matrix_ntpd_package }}"
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker is installed
|
- name: Ensure Docker is installed
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_docker_package_name }}"
|
- "{{ matrix_docker_package_name }}"
|
||||||
- "python{{'3' if ansible_python.version.major == 3 else ''}}-docker"
|
- "python{{'3' if ansible_python.version.major == 3 else ''}}-docker"
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure Docker repository is enabled
|
- name: Ensure Docker repository is enabled
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/files/yum.repos.d/docker-ce-centos.repo"
|
src: "{{ role_path }}/files/yum.repos.d/docker-ce-centos.repo"
|
||||||
dest: "/etc/yum.repos.d/docker-ce.repo"
|
dest: "/etc/yum.repos.d/docker-ce.repo"
|
||||||
owner: "root"
|
owner: "root"
|
||||||
|
@ -10,22 +10,22 @@
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure Docker's RPM key is trusted
|
- name: Ensure Docker's RPM key is trusted
|
||||||
rpm_key:
|
ansible.builtin.rpm_key:
|
||||||
state: present
|
state: present
|
||||||
key: https://download.docker.com/linux/centos/gpg
|
key: https://download.docker.com/linux/centos/gpg
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure yum packages are installed
|
- name: Ensure yum packages are installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_ntpd_package }}"
|
- "{{ matrix_ntpd_package }}"
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker is installed
|
- name: Ensure Docker is installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_docker_package_name }}"
|
- "{{ matrix_docker_package_name }}"
|
||||||
- docker-python
|
- docker-python
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure Docker repository is enabled
|
- name: Ensure Docker repository is enabled
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/files/yum.repos.d/docker-ce-centos.repo"
|
src: "{{ role_path }}/files/yum.repos.d/docker-ce-centos.repo"
|
||||||
dest: "/etc/yum.repos.d/docker-ce.repo"
|
dest: "/etc/yum.repos.d/docker-ce.repo"
|
||||||
owner: "root"
|
owner: "root"
|
||||||
|
@ -10,35 +10,35 @@
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure Docker's RPM key is trusted
|
- name: Ensure Docker's RPM key is trusted
|
||||||
rpm_key:
|
ansible.builtin.rpm_key:
|
||||||
state: present
|
state: present
|
||||||
key: https://download.docker.com/linux/centos/gpg
|
key: https://download.docker.com/linux/centos/gpg
|
||||||
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
when: matrix_docker_installation_enabled | bool and matrix_docker_package_name == 'docker-ce'
|
||||||
|
|
||||||
- name: Ensure EPEL is installed
|
- name: Ensure EPEL is installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- epel-release
|
- epel-release
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure yum packages are installed
|
- name: Ensure yum packages are installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_ntpd_package }}"
|
- "{{ matrix_ntpd_package }}"
|
||||||
state: latest
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Ensure Docker is installed
|
- name: Ensure Docker is installed
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- "{{ matrix_docker_package_name }}"
|
- "{{ matrix_docker_package_name }}"
|
||||||
- python3-pip
|
- python3-pip
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
||||||
- name: Ensure Docker-Py is installed
|
- name: Ensure Docker-Py is installed
|
||||||
pip:
|
ansible.builtin.pip:
|
||||||
name: docker-py
|
name: docker-py
|
||||||
state: latest
|
state: present
|
||||||
when: matrix_docker_installation_enabled | bool
|
when: matrix_docker_installation_enabled | bool
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure Matrix base path exists
|
- name: Ensure Matrix base path exists
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: "{{ matrix_base_data_path_mode }}"
|
mode: "{{ matrix_base_data_path_mode }}"
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
- "{{ matrix_base_data_path }}"
|
- "{{ matrix_base_data_path }}"
|
||||||
|
|
||||||
- name: Preserve vars.yml on the server for easily restoring if it gets lost later on
|
- name: Preserve vars.yml on the server for easily restoring if it gets lost later on
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
src: "{{ matrix_vars_yml_snapshotting_src }}"
|
src: "{{ matrix_vars_yml_snapshotting_src }}"
|
||||||
dest: "{{ matrix_base_data_path }}/vars.yml"
|
dest: "{{ matrix_base_data_path }}/vars.yml"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
- name: Ensure matrix-remove-all script created
|
- name: Ensure matrix-remove-all script created
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/usr-local-bin/matrix-remove-all.j2"
|
src: "{{ role_path }}/templates/usr-local-bin/matrix-remove-all.j2"
|
||||||
dest: "{{ matrix_local_bin_path }}/matrix-remove-all"
|
dest: "{{ matrix_local_bin_path }}/matrix-remove-all"
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure Matrix group is created
|
- name: Ensure Matrix group is created
|
||||||
group:
|
ansible.builtin.group:
|
||||||
name: "{{ matrix_user_groupname }}"
|
name: "{{ matrix_user_groupname }}"
|
||||||
gid: "{{ omit if matrix_user_gid is none else matrix_user_gid }}"
|
gid: "{{ omit if matrix_user_gid is none else matrix_user_gid }}"
|
||||||
state: present
|
state: present
|
||||||
register: matrix_group
|
register: matrix_group
|
||||||
|
|
||||||
- name: Set Matrix Group GID Variable
|
- name: Set Matrix Group GID Variable
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_user_gid: "{{ matrix_group.gid }}"
|
matrix_user_gid: "{{ matrix_group.gid }}"
|
||||||
|
|
||||||
- name: Ensure Matrix user is created
|
- name: Ensure Matrix user is created
|
||||||
user:
|
ansible.builtin.user:
|
||||||
name: "{{ matrix_user_username }}"
|
name: "{{ matrix_user_username }}"
|
||||||
uid: "{{ omit if matrix_user_uid is none else matrix_user_uid }}"
|
uid: "{{ omit if matrix_user_uid is none else matrix_user_uid }}"
|
||||||
state: present
|
state: present
|
||||||
|
@ -23,5 +23,5 @@
|
||||||
register: matrix_user
|
register: matrix_user
|
||||||
|
|
||||||
- name: Set Matrix Group UID Variable
|
- name: Set Matrix Group UID Variable
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_user_uid: "{{ matrix_user.uid }}"
|
matrix_user_uid: "{{ matrix_user.uid }}"
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# For running with another webserver, we recommend being part of the `matrix` group.
|
# For running with another webserver, we recommend being part of the `matrix` group.
|
||||||
- name: Ensure Matrix static-files path exists
|
- name: Ensure Matrix static-files path exists
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
- "{{ matrix_static_files_base_path }}/.well-known/matrix"
|
- "{{ matrix_static_files_base_path }}/.well-known/matrix"
|
||||||
|
|
||||||
- name: Ensure Matrix /.well-known/matrix/client file configured
|
- name: Ensure Matrix /.well-known/matrix/client file configured
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_well_known_matrix_client_configuration | to_nice_json }}"
|
content: "{{ matrix_well_known_matrix_client_configuration | to_nice_json }}"
|
||||||
dest: "{{ matrix_static_files_base_path }}/.well-known/matrix/client"
|
dest: "{{ matrix_static_files_base_path }}/.well-known/matrix/client"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure Matrix /.well-known/matrix/server file configured
|
- name: Ensure Matrix /.well-known/matrix/server file configured
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_well_known_matrix_server_configuration | to_nice_json }}"
|
content: "{{ matrix_well_known_matrix_server_configuration | to_nice_json }}"
|
||||||
dest: "{{ matrix_static_files_base_path }}/.well-known/matrix/server"
|
dest: "{{ matrix_static_files_base_path }}/.well-known/matrix/server"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
when: matrix_well_known_matrix_server_enabled | bool
|
when: matrix_well_known_matrix_server_enabled | bool
|
||||||
|
|
||||||
- name: Ensure Matrix /.well-known/matrix/server file deleted
|
- name: Ensure Matrix /.well-known/matrix/server file deleted
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_static_files_base_path }}/.well-known/matrix/server"
|
path: "{{ matrix_static_files_base_path }}/.well-known/matrix/server"
|
||||||
state: absent
|
state: absent
|
||||||
when: "not matrix_well_known_matrix_server_enabled | bool"
|
when: "not matrix_well_known_matrix_server_enabled | bool"
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
---
|
---
|
||||||
# This is for both RedHat 7 and 8
|
# This is for both RedHat 7 and 8
|
||||||
- name: Ensure fuse installed (RedHat)
|
- name: Ensure fuse installed (RedHat)
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- fuse
|
- fuse
|
||||||
state: latest
|
state: present
|
||||||
when: ansible_os_family == 'RedHat'
|
when: ansible_os_family == 'RedHat'
|
||||||
|
|
||||||
# This is for both Debian and Raspbian
|
# This is for both Debian and Raspbian
|
||||||
- name: Ensure fuse installed (Debian/Raspbian)
|
- name: Ensure fuse installed (Debian/Raspbian)
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- fuse
|
- fuse
|
||||||
state: latest
|
state: present
|
||||||
when: ansible_os_family == 'Debian'
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
- name: Ensure fuse installed (Archlinux)
|
- name: Ensure fuse installed (Archlinux)
|
||||||
pacman:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- fuse3
|
- fuse3
|
||||||
state: latest
|
state: present
|
||||||
when: ansible_distribution == 'Archlinux'
|
when: ansible_distribution == 'Archlinux'
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
---
|
---
|
||||||
# This is for both RedHat 7 and 8
|
# This is for both RedHat 7 and 8
|
||||||
- name: Ensure openssl installed (RedHat)
|
- name: Ensure openssl installed (RedHat)
|
||||||
yum:
|
ansible.builtin.yum:
|
||||||
name:
|
name:
|
||||||
- openssl
|
- openssl
|
||||||
state: latest
|
state: present
|
||||||
when: ansible_os_family == 'RedHat'
|
when: ansible_os_family == 'RedHat'
|
||||||
|
|
||||||
# This is for both Debian and Raspbian
|
# This is for both Debian and Raspbian
|
||||||
- name: Ensure openssl installed (Debian/Raspbian)
|
- name: Ensure openssl installed (Debian/Raspbian)
|
||||||
apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- openssl
|
- openssl
|
||||||
state: latest
|
state: present
|
||||||
when: ansible_os_family == 'Debian'
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
- name: Ensure openssl installed (Archlinux)
|
- name: Ensure openssl installed (Archlinux)
|
||||||
pacman:
|
pacman:
|
||||||
name:
|
name:
|
||||||
- openssl
|
- openssl
|
||||||
state: latest
|
state: present
|
||||||
when: ansible_distribution == 'Archlinux'
|
when: ansible_distribution == 'Archlinux'
|
||||||
|
|
|
@ -6,6 +6,7 @@ matrix_bot_buscarron_enabled: true
|
||||||
|
|
||||||
matrix_bot_buscarron_container_image_self_build: false
|
matrix_bot_buscarron_container_image_self_build: false
|
||||||
matrix_bot_buscarron_docker_repo: "https://gitlab.com/etke.cc/buscarron.git"
|
matrix_bot_buscarron_docker_repo: "https://gitlab.com/etke.cc/buscarron.git"
|
||||||
|
matrix_bot_buscarron_docker_repo_version: "{{ matrix_bot_buscarron_version }}"
|
||||||
matrix_bot_buscarron_docker_src_files_path: "{{ matrix_base_data_path }}/buscarron/docker-src"
|
matrix_bot_buscarron_docker_src_files_path: "{{ matrix_base_data_path }}/buscarron/docker-src"
|
||||||
|
|
||||||
matrix_bot_buscarron_version: v1.2.0
|
matrix_bot_buscarron_version: v1.2.0
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-buscarron.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-buscarron.service'] }}"
|
||||||
when: matrix_bot_buscarron_enabled | bool
|
when: matrix_bot_buscarron_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_bot_buscarron_enabled | bool"
|
when: "run_setup | bool and matrix_bot_buscarron_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-buscarron
|
- setup-bot-buscarron
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_bot_buscarron_enabled | bool"
|
when: "run_setup | bool and matrix_bot_buscarron_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-buscarron
|
- setup-bot-buscarron
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_bot_buscarron_enabled | bool"
|
when: "run_setup | bool and not matrix_bot_buscarron_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
---
|
---
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_buscarron_requires_restart: false
|
matrix_bot_buscarron_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if an SQLite database already exists
|
- name: Check if an SQLite database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_bot_buscarron_sqlite_database_path_local }}"
|
path: "{{ matrix_bot_buscarron_sqlite_database_path_local }}"
|
||||||
register: matrix_bot_buscarron_sqlite_database_path_local_stat_result
|
register: matrix_bot_buscarron_sqlite_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_postgres_db_migration_request:
|
matrix_postgres_db_migration_request:
|
||||||
src: "{{ matrix_bot_buscarron_sqlite_database_path_local }}"
|
src: "{{ matrix_bot_buscarron_sqlite_database_path_local }}"
|
||||||
dst: "{{ matrix_bot_buscarron_database_connection_string }}"
|
dst: "{{ matrix_bot_buscarron_database_connection_string }}"
|
||||||
|
@ -18,15 +18,17 @@
|
||||||
engine_old: 'sqlite'
|
engine_old: 'sqlite'
|
||||||
systemd_services_to_stop: ['matrix-bot-buscarron.service']
|
systemd_services_to_stop: ['matrix-bot-buscarron.service']
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/migrate_db_to_postgres.yml"
|
- ansible.builtin.import_role:
|
||||||
|
name: matrix-postgres
|
||||||
|
tasks_from: migrate_db_to_postgres
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_buscarron_requires_restart: true
|
matrix_bot_buscarron_requires_restart: true
|
||||||
when: "matrix_bot_buscarron_sqlite_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_bot_buscarron_sqlite_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_bot_buscarron_database_engine == 'postgres'"
|
when: "matrix_bot_buscarron_database_engine == 'postgres'"
|
||||||
|
|
||||||
- name: Ensure buscarron paths exist
|
- name: Ensure buscarron paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -40,7 +42,7 @@
|
||||||
when: "item.when | bool"
|
when: "item.when | bool"
|
||||||
|
|
||||||
- name: Ensure buscarron environment variables file created
|
- name: Ensure buscarron environment variables file created
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/env.j2"
|
src: "{{ role_path }}/templates/env.j2"
|
||||||
dest: "{{ matrix_bot_buscarron_config_path }}/env"
|
dest: "{{ matrix_bot_buscarron_config_path }}/env"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -60,8 +62,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure buscarron repository is present on self-build
|
- name: Ensure buscarron repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_bot_buscarron_docker_repo }}"
|
repo: "{{ matrix_bot_buscarron_docker_repo }}"
|
||||||
|
version: "{{ matrix_bot_buscarron_docker_repo_version }}"
|
||||||
dest: "{{ matrix_bot_buscarron_docker_src_files_path }}"
|
dest: "{{ matrix_bot_buscarron_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -82,19 +85,19 @@
|
||||||
when: "matrix_bot_buscarron_container_image_self_build | bool"
|
when: "matrix_bot_buscarron_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-buscarron.service installed
|
- name: Ensure matrix-bot-buscarron.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-bot-buscarron.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-bot-buscarron.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-bot-buscarron.service"
|
dest: "{{ matrix_systemd_path }}/matrix-bot-buscarron.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_bot_buscarron_systemd_service_result
|
register: matrix_bot_buscarron_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-buscarron.service installation
|
- name: Ensure systemd reloaded after matrix-bot-buscarron.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_buscarron_systemd_service_result.changed | bool"
|
when: "matrix_bot_buscarron_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-buscarron.service restarted, if necessary
|
- name: Ensure matrix-bot-buscarron.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-bot-buscarron.service"
|
name: "matrix-bot-buscarron.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_bot_buscarron_requires_restart | bool"
|
when: "matrix_bot_buscarron_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-buscarron service
|
- name: Check existence of matrix-buscarron service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-buscarron.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-buscarron.service"
|
||||||
register: matrix_bot_buscarron_service_stat
|
register: matrix_bot_buscarron_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-buscarron is stopped
|
- name: Ensure matrix-buscarron is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-bot-buscarron
|
name: matrix-bot-buscarron
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -15,18 +15,18 @@
|
||||||
when: "matrix_bot_buscarron_service_stat.stat.exists | bool"
|
when: "matrix_bot_buscarron_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-buscarron.service doesn't exist
|
- name: Ensure matrix-bot-buscarron.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-buscarron.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-buscarron.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_bot_buscarron_service_stat.stat.exists | bool"
|
when: "matrix_bot_buscarron_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-buscarron.service removal
|
- name: Ensure systemd reloaded after matrix-bot-buscarron.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_buscarron_service_stat.stat.exists | bool"
|
when: "matrix_bot_buscarron_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix buscarron paths don't exist
|
- name: Ensure Matrix buscarron paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_bot_buscarron_base_path }}"
|
path: "{{ matrix_bot_buscarron_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-go-neb.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-go-neb.service'] }}"
|
||||||
when: matrix_bot_go_neb_enabled | bool
|
when: matrix_bot_go_neb_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_bot_go_neb_enabled | bool"
|
when: "run_setup | bool and matrix_bot_go_neb_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-go-neb
|
- setup-bot-go-neb
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_bot_go_neb_enabled | bool"
|
when: "run_setup | bool and matrix_bot_go_neb_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-go-neb
|
- setup-bot-go-neb
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_bot_go_neb_enabled | bool"
|
when: "run_setup | bool and not matrix_bot_go_neb_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_go_neb_requires_restart: false
|
matrix_bot_go_neb_requires_restart: false
|
||||||
|
|
||||||
- name: Ensure go-neb paths exist
|
- name: Ensure go-neb paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure go-neb config installed
|
- name: Ensure go-neb config installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_bot_go_neb_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_bot_go_neb_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_bot_go_neb_config_path }}/config.yaml"
|
dest: "{{ matrix_bot_go_neb_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -36,19 +36,19 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-go-neb.service installed
|
- name: Ensure matrix-bot-go-neb.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-bot-go-neb.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-bot-go-neb.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-bot-go-neb.service"
|
dest: "{{ matrix_systemd_path }}/matrix-bot-go-neb.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_bot_go_neb_systemd_service_result
|
register: matrix_bot_go_neb_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-go-neb.service installation
|
- name: Ensure systemd reloaded after matrix-bot-go-neb.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_go_neb_systemd_service_result.changed | bool"
|
when: "matrix_bot_go_neb_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-go-neb.service restarted, if necessary
|
- name: Ensure matrix-bot-go-neb.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-bot-go-neb.service"
|
name: "matrix-bot-go-neb.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_bot_go_neb_requires_restart | bool"
|
when: "matrix_bot_go_neb_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-go-neb service
|
- name: Check existence of matrix-go-neb service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-go-neb.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-go-neb.service"
|
||||||
register: matrix_bot_go_neb_service_stat
|
register: matrix_bot_go_neb_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-go-neb is stopped
|
- name: Ensure matrix-go-neb is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-bot-go-neb
|
name: matrix-bot-go-neb
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -15,18 +15,18 @@
|
||||||
when: "matrix_bot_go_neb_service_stat.stat.exists | bool"
|
when: "matrix_bot_go_neb_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-go-neb.service doesn't exist
|
- name: Ensure matrix-bot-go-neb.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-go-neb.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-go-neb.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_bot_go_neb_service_stat.stat.exists | bool"
|
when: "matrix_bot_go_neb_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-go-neb.service removal
|
- name: Ensure systemd reloaded after matrix-bot-go-neb.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_go_neb_service_stat.stat.exists | bool"
|
when: "matrix_bot_go_neb_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix go-neb paths don't exist
|
- name: Ensure Matrix go-neb paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_bot_go_neb_base_path }}"
|
path: "{{ matrix_bot_go_neb_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if there's not at least 1 client
|
- name: Fail if there's not at least 1 client
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need at least 1 client in the matrix_bot_go_neb_clients block.
|
You need at least 1 client in the matrix_bot_go_neb_clients block.
|
||||||
when: matrix_bot_go_neb_clients is not defined or matrix_bot_go_neb_clients[0] is not defined
|
when: matrix_bot_go_neb_clients is not defined or matrix_bot_go_neb_clients[0] is not defined
|
||||||
|
|
||||||
- name: Fail if there's not at least 1 service
|
- name: Fail if there's not at least 1 service
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need at least 1 service in the matrix_bot_go_neb_services block.
|
You need at least 1 service in the matrix_bot_go_neb_services block.
|
||||||
when: matrix_bot_go_neb_services is not defined or matrix_bot_go_neb_services[0] is not defined
|
when: matrix_bot_go_neb_services is not defined or matrix_bot_go_neb_services[0] is not defined
|
||||||
|
|
|
@ -6,9 +6,10 @@ matrix_bot_honoroit_enabled: true
|
||||||
|
|
||||||
matrix_bot_honoroit_container_image_self_build: false
|
matrix_bot_honoroit_container_image_self_build: false
|
||||||
matrix_bot_honoroit_docker_repo: "https://gitlab.com/etke.cc/honoroit.git"
|
matrix_bot_honoroit_docker_repo: "https://gitlab.com/etke.cc/honoroit.git"
|
||||||
|
matrix_bot_honoroit_docker_repo_version: "{{ matrix_bot_honoroit_version }}"
|
||||||
matrix_bot_honoroit_docker_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src"
|
matrix_bot_honoroit_docker_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src"
|
||||||
|
|
||||||
matrix_bot_honoroit_version: v0.9.9
|
matrix_bot_honoroit_version: v0.9.10
|
||||||
matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_name_prefix }}honoroit:{{ matrix_bot_honoroit_version }}"
|
matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_name_prefix }}honoroit:{{ matrix_bot_honoroit_version }}"
|
||||||
matrix_bot_honoroit_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else 'registry.gitlab.com/etke.cc/' }}"
|
matrix_bot_honoroit_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else 'registry.gitlab.com/etke.cc/' }}"
|
||||||
matrix_bot_honoroit_docker_image_force_pull: "{{ matrix_bot_honoroit_docker_image.endswith(':latest') }}"
|
matrix_bot_honoroit_docker_image_force_pull: "{{ matrix_bot_honoroit_docker_image.endswith(':latest') }}"
|
||||||
|
@ -96,6 +97,9 @@ matrix_bot_honoroit_text_prefix_open: ''
|
||||||
# Text prefix: done
|
# Text prefix: done
|
||||||
matrix_bot_honoroit_text_prefix_done: ''
|
matrix_bot_honoroit_text_prefix_done: ''
|
||||||
|
|
||||||
|
# Text: no encryption
|
||||||
|
matrix_bot_honoroit_text_noencryption: ''
|
||||||
|
|
||||||
# Text: greetings
|
# Text: greetings
|
||||||
matrix_bot_honoroit_text_greetings: ''
|
matrix_bot_honoroit_text_greetings: ''
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-honoroit.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-honoroit.service'] }}"
|
||||||
when: matrix_bot_honoroit_enabled | bool
|
when: matrix_bot_honoroit_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_bot_honoroit_enabled | bool"
|
when: "run_setup | bool and matrix_bot_honoroit_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-honoroit
|
- setup-bot-honoroit
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_bot_honoroit_enabled | bool"
|
when: "run_setup | bool and matrix_bot_honoroit_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-honoroit
|
- setup-bot-honoroit
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_bot_honoroit_enabled | bool"
|
when: "run_setup | bool and not matrix_bot_honoroit_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
---
|
---
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_honoroit_requires_restart: false
|
matrix_bot_honoroit_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if an SQLite database already exists
|
- name: Check if an SQLite database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_bot_honoroit_sqlite_database_path_local }}"
|
path: "{{ matrix_bot_honoroit_sqlite_database_path_local }}"
|
||||||
register: matrix_bot_honoroit_sqlite_database_path_local_stat_result
|
register: matrix_bot_honoroit_sqlite_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_postgres_db_migration_request:
|
matrix_postgres_db_migration_request:
|
||||||
src: "{{ matrix_bot_honoroit_sqlite_database_path_local }}"
|
src: "{{ matrix_bot_honoroit_sqlite_database_path_local }}"
|
||||||
dst: "{{ matrix_bot_honoroit_database_connection_string }}"
|
dst: "{{ matrix_bot_honoroit_database_connection_string }}"
|
||||||
|
@ -18,15 +18,17 @@
|
||||||
engine_old: 'sqlite'
|
engine_old: 'sqlite'
|
||||||
systemd_services_to_stop: ['matrix-bot-honoroit.service']
|
systemd_services_to_stop: ['matrix-bot-honoroit.service']
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/migrate_db_to_postgres.yml"
|
- ansible.builtin.import_role:
|
||||||
|
name: matrix-postgres
|
||||||
|
tasks_from: migrate_db_to_postgres
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_honoroit_requires_restart: true
|
matrix_bot_honoroit_requires_restart: true
|
||||||
when: "matrix_bot_honoroit_sqlite_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_bot_honoroit_sqlite_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_bot_honoroit_database_engine == 'postgres'"
|
when: "matrix_bot_honoroit_database_engine == 'postgres'"
|
||||||
|
|
||||||
- name: Ensure honoroit paths exist
|
- name: Ensure honoroit paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -40,7 +42,7 @@
|
||||||
when: "item.when | bool"
|
when: "item.when | bool"
|
||||||
|
|
||||||
- name: Ensure honoroit environment variables file created
|
- name: Ensure honoroit environment variables file created
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/env.j2"
|
src: "{{ role_path }}/templates/env.j2"
|
||||||
dest: "{{ matrix_bot_honoroit_config_path }}/env"
|
dest: "{{ matrix_bot_honoroit_config_path }}/env"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -60,8 +62,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure honoroit repository is present on self-build
|
- name: Ensure honoroit repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_bot_honoroit_docker_repo }}"
|
repo: "{{ matrix_bot_honoroit_docker_repo }}"
|
||||||
|
version: "{{ matrix_bot_honoroit_docker_repo_version }}"
|
||||||
dest: "{{ matrix_bot_honoroit_docker_src_files_path }}"
|
dest: "{{ matrix_bot_honoroit_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -82,19 +85,19 @@
|
||||||
when: "matrix_bot_honoroit_container_image_self_build | bool"
|
when: "matrix_bot_honoroit_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-honoroit.service installed
|
- name: Ensure matrix-bot-honoroit.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-bot-honoroit.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-bot-honoroit.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-bot-honoroit.service"
|
dest: "{{ matrix_systemd_path }}/matrix-bot-honoroit.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_bot_honoroit_systemd_service_result
|
register: matrix_bot_honoroit_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-honoroit.service installation
|
- name: Ensure systemd reloaded after matrix-bot-honoroit.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_honoroit_systemd_service_result.changed | bool"
|
when: "matrix_bot_honoroit_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-honoroit.service restarted, if necessary
|
- name: Ensure matrix-bot-honoroit.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-bot-honoroit.service"
|
name: "matrix-bot-honoroit.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_bot_honoroit_requires_restart | bool"
|
when: "matrix_bot_honoroit_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-honoroit service
|
- name: Check existence of matrix-honoroit service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-honoroit.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-honoroit.service"
|
||||||
register: matrix_bot_honoroit_service_stat
|
register: matrix_bot_honoroit_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-honoroit is stopped
|
- name: Ensure matrix-honoroit is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-bot-honoroit
|
name: matrix-bot-honoroit
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -15,18 +15,18 @@
|
||||||
when: "matrix_bot_honoroit_service_stat.stat.exists | bool"
|
when: "matrix_bot_honoroit_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-honoroit.service doesn't exist
|
- name: Ensure matrix-bot-honoroit.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-honoroit.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-honoroit.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_bot_honoroit_service_stat.stat.exists | bool"
|
when: "matrix_bot_honoroit_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-honoroit.service removal
|
- name: Ensure systemd reloaded after matrix-bot-honoroit.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_honoroit_service_stat.stat.exists | bool"
|
when: "matrix_bot_honoroit_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix honoroit paths don't exist
|
- name: Ensure Matrix honoroit paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_bot_honoroit_base_path }}"
|
path: "{{ matrix_bot_honoroit_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
|
|
@ -11,6 +11,7 @@ HONOROIT_CACHESIZE={{ matrix_bot_honoroit_cachesize }}
|
||||||
HONOROIT_NOENCRYPTION={{ matrix_bot_honoroit_noencryption }}
|
HONOROIT_NOENCRYPTION={{ matrix_bot_honoroit_noencryption }}
|
||||||
HONOROIT_TEXT_PREFIX_OPEN={{ matrix_bot_honoroit_text_prefix_open }}
|
HONOROIT_TEXT_PREFIX_OPEN={{ matrix_bot_honoroit_text_prefix_open }}
|
||||||
HONOROIT_TEXT_PREFIX_DONE={{ matrix_bot_honoroit_text_prefix_done }}
|
HONOROIT_TEXT_PREFIX_DONE={{ matrix_bot_honoroit_text_prefix_done }}
|
||||||
|
HONOROIT_TEXT_NOENCRYPTION={{ matrix_bot_honoroit_text_noencryption }}
|
||||||
HONOROIT_TEXT_GREETINGS={{ matrix_bot_honoroit_text_greetings }}
|
HONOROIT_TEXT_GREETINGS={{ matrix_bot_honoroit_text_greetings }}
|
||||||
HONOROIT_TEXT_INVITE={{ matrix_bot_honoroit_text_invite }}
|
HONOROIT_TEXT_INVITE={{ matrix_bot_honoroit_text_invite }}
|
||||||
HONOROIT_TEXT_JOIN={{ matrix_bot_honoroit_text_join }}
|
HONOROIT_TEXT_JOIN={{ matrix_bot_honoroit_text_join }}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
matrix_bot_matrix_registration_bot_enabled: true
|
matrix_bot_matrix_registration_bot_enabled: true
|
||||||
matrix_bot_matrix_registration_bot_container_image_self_build: false
|
matrix_bot_matrix_registration_bot_container_image_self_build: false
|
||||||
matrix_bot_matrix_registration_bot_docker_repo: "https://github.com/moan0s/matrix-registration-bot.git"
|
matrix_bot_matrix_registration_bot_docker_repo: "https://github.com/moan0s/matrix-registration-bot.git"
|
||||||
|
matrix_bot_matrix_registration_bot_docker_repo_version: "{{ matrix_bot_matrix_registration_bot_version if matrix_bot_matrix_registration_bot_version != 'latest' else 'main' }}"
|
||||||
matrix_bot_matrix_registration_bot_docker_src_files_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/docker-src"
|
matrix_bot_matrix_registration_bot_docker_src_files_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/docker-src"
|
||||||
|
|
||||||
matrix_bot_matrix_registration_bot_version: latest
|
matrix_bot_matrix_registration_bot_version: latest
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-matrix-registration-bot.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-matrix-registration-bot.service'] }}"
|
||||||
when: matrix_bot_matrix_registration_bot_enabled | bool
|
when: matrix_bot_matrix_registration_bot_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_bot_matrix_registration_bot_enabled | bool"
|
when: "run_setup | bool and matrix_bot_matrix_registration_bot_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-matrix-registration-bot
|
- setup-bot-matrix-registration-bot
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_bot_matrix_registration_bot_enabled | bool"
|
when: "run_setup | bool and matrix_bot_matrix_registration_bot_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-matrix-registration-bot
|
- setup-bot-matrix-registration-bot
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_bot_matrix_registration_bot_enabled | bool"
|
when: "run_setup | bool and not matrix_bot_matrix_registration_bot_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure matrix-registration-bot paths exist
|
- name: Ensure matrix-registration-bot paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
when: "item.when | bool"
|
when: "item.when | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-registration-bot configuration file created
|
- name: Ensure matrix-registration-bot configuration file created
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/config/config.yml.j2"
|
src: "{{ role_path }}/templates/config/config.yml.j2"
|
||||||
dest: "{{ matrix_bot_matrix_registration_bot_config_path }}/config.yml"
|
dest: "{{ matrix_bot_matrix_registration_bot_config_path }}/config.yml"
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -34,8 +34,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-registration-bot repository is present on self-build
|
- name: Ensure matrix-registration-bot repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_bot_matrix_registration_bot_docker_repo }}"
|
repo: "{{ matrix_bot_matrix_registration_bot_docker_repo }}"
|
||||||
|
version: "{{ matrix_bot_matrix_registration_bot_docker_repo_version }}"
|
||||||
dest: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}"
|
dest: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -56,18 +57,18 @@
|
||||||
when: "matrix_bot_matrix_registration_bot_container_image_self_build | bool"
|
when: "matrix_bot_matrix_registration_bot_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-matrix-registration-bot.service installed
|
- name: Ensure matrix-bot-matrix-registration-bot.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-bot-matrix-registration-bot.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-bot-matrix-registration-bot.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-bot-matrix-registration-bot.service"
|
dest: "{{ matrix_systemd_path }}/matrix-bot-matrix-registration-bot.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_bot_matrix_registration_bot_systemd_service_result
|
register: matrix_bot_matrix_registration_bot_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-matrix-registration-bot.service installation
|
- name: Ensure systemd reloaded after matrix-bot-matrix-registration-bot.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_matrix_registration_bot_systemd_service_result.changed | bool"
|
when: "matrix_bot_matrix_registration_bot_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-matrix-registration-bot.service restarted, if necessary
|
- name: Ensure matrix-bot-matrix-registration-bot.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-bot-matrix-registration-bot.service"
|
name: "matrix-bot-matrix-registration-bot.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-matrix-registration-bot service
|
- name: Check existence of matrix-matrix-registration-bot service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-registration-bot.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-registration-bot.service"
|
||||||
register: matrix_bot_matrix_registration_bot_service_stat
|
register: matrix_bot_matrix_registration_bot_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-matrix-registration-bot is stopped
|
- name: Ensure matrix-matrix-registration-bot is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-bot-matrix-registration-bot
|
name: matrix-bot-matrix-registration-bot
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -15,18 +15,18 @@
|
||||||
when: "matrix_bot_matrix_registration_bot_service_stat.stat.exists | bool"
|
when: "matrix_bot_matrix_registration_bot_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-matrix-registration-bot.service doesn't exist
|
- name: Ensure matrix-bot-matrix-registration-bot.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-registration-bot.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-registration-bot.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_bot_matrix_registration_bot_service_stat.stat.exists | bool"
|
when: "matrix_bot_matrix_registration_bot_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-matrix-registration-bot.service removal
|
- name: Ensure systemd reloaded after matrix-bot-matrix-registration-bot.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_matrix_registration_bot_service_stat.stat.exists | bool"
|
when: "matrix_bot_matrix_registration_bot_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix matrix-registration-bot paths don't exist
|
- name: Ensure Matrix matrix-registration-bot paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_bot_matrix_registration_bot_base_path }}"
|
path: "{{ matrix_bot_matrix_registration_bot_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
|
|
@ -6,6 +6,7 @@ matrix_bot_matrix_reminder_bot_enabled: true
|
||||||
|
|
||||||
matrix_bot_matrix_reminder_bot_container_image_self_build: false
|
matrix_bot_matrix_reminder_bot_container_image_self_build: false
|
||||||
matrix_bot_matrix_reminder_bot_docker_repo: "https://github.com/anoadragon453/matrix-reminder-bot.git"
|
matrix_bot_matrix_reminder_bot_docker_repo: "https://github.com/anoadragon453/matrix-reminder-bot.git"
|
||||||
|
matrix_bot_matrix_reminder_bot_docker_repo_version: "{{ matrix_bot_matrix_reminder_bot_version }}"
|
||||||
matrix_bot_matrix_reminder_bot_docker_src_files_path: "{{ matrix_base_data_path }}/matrix-reminder-bot/docker-src"
|
matrix_bot_matrix_reminder_bot_docker_src_files_path: "{{ matrix_base_data_path }}/matrix-reminder-bot/docker-src"
|
||||||
|
|
||||||
matrix_bot_matrix_reminder_bot_version: release-v0.2.1
|
matrix_bot_matrix_reminder_bot_version: release-v0.2.1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-matrix-reminder-bot.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-matrix-reminder-bot.service'] }}"
|
||||||
when: matrix_bot_matrix_reminder_bot_enabled | bool
|
when: matrix_bot_matrix_reminder_bot_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_bot_matrix_reminder_bot_enabled | bool"
|
when: "run_setup | bool and matrix_bot_matrix_reminder_bot_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-matrix-reminder-bot
|
- setup-bot-matrix-reminder-bot
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_bot_matrix_reminder_bot_enabled | bool"
|
when: "run_setup | bool and matrix_bot_matrix_reminder_bot_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-matrix-reminder-bot
|
- setup-bot-matrix-reminder-bot
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_bot_matrix_reminder_bot_enabled | bool"
|
when: "run_setup | bool and not matrix_bot_matrix_reminder_bot_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_matrix_reminder_bot_requires_restart: false
|
matrix_bot_matrix_reminder_bot_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if an SQLite database already exists
|
- name: Check if an SQLite database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_bot_matrix_reminder_bot_sqlite_database_path_local }}"
|
path: "{{ matrix_bot_matrix_reminder_bot_sqlite_database_path_local }}"
|
||||||
register: matrix_bot_matrix_reminder_bot_sqlite_database_path_local_stat_result
|
register: matrix_bot_matrix_reminder_bot_sqlite_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_postgres_db_migration_request:
|
matrix_postgres_db_migration_request:
|
||||||
src: "{{ matrix_bot_matrix_reminder_bot_sqlite_database_path_local }}"
|
src: "{{ matrix_bot_matrix_reminder_bot_sqlite_database_path_local }}"
|
||||||
dst: "{{ matrix_bot_matrix_reminder_bot_database_connection_string }}"
|
dst: "{{ matrix_bot_matrix_reminder_bot_database_connection_string }}"
|
||||||
|
@ -19,15 +19,17 @@
|
||||||
engine_old: 'sqlite'
|
engine_old: 'sqlite'
|
||||||
systemd_services_to_stop: ['matrix-bot-matrix-reminder-bot.service']
|
systemd_services_to_stop: ['matrix-bot-matrix-reminder-bot.service']
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/migrate_db_to_postgres.yml"
|
- ansible.builtin.import_role:
|
||||||
|
name: matrix-postgres
|
||||||
|
tasks_from: migrate_db_to_postgres
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_matrix_reminder_bot_requires_restart: true
|
matrix_bot_matrix_reminder_bot_requires_restart: true
|
||||||
when: "matrix_bot_matrix_reminder_bot_sqlite_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_bot_matrix_reminder_bot_sqlite_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_bot_matrix_reminder_bot_database_engine == 'postgres'"
|
when: "matrix_bot_matrix_reminder_bot_database_engine == 'postgres'"
|
||||||
|
|
||||||
- name: Ensure matrix-reminder-bot paths exist
|
- name: Ensure matrix-reminder-bot paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -53,8 +55,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-reminder-bot repository is present on self-build
|
- name: Ensure matrix-reminder-bot repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_bot_matrix_reminder_bot_docker_repo }}"
|
repo: "{{ matrix_bot_matrix_reminder_bot_docker_repo }}"
|
||||||
|
version: "{{ matrix_bot_matrix_reminder_bot_docker_repo_version }}"
|
||||||
dest: "{{ matrix_bot_matrix_reminder_bot_docker_src_files_path }}"
|
dest: "{{ matrix_bot_matrix_reminder_bot_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -75,7 +78,7 @@
|
||||||
when: "matrix_bot_matrix_reminder_bot_container_image_self_build | bool"
|
when: "matrix_bot_matrix_reminder_bot_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-reminder-bot config installed
|
- name: Ensure matrix-reminder-bot config installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_bot_matrix_reminder_bot_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_bot_matrix_reminder_bot_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_bot_matrix_reminder_bot_config_path }}/config.yaml"
|
dest: "{{ matrix_bot_matrix_reminder_bot_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -83,19 +86,19 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-matrix-reminder-bot.service installed
|
- name: Ensure matrix-bot-matrix-reminder-bot.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-bot-matrix-reminder-bot.service"
|
dest: "{{ matrix_systemd_path }}/matrix-bot-matrix-reminder-bot.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_bot_matrix_reminder_bot_systemd_service_result
|
register: matrix_bot_matrix_reminder_bot_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-matrix-reminder-bot.service installation
|
- name: Ensure systemd reloaded after matrix-bot-matrix-reminder-bot.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_matrix_reminder_bot_systemd_service_result.changed | bool"
|
when: "matrix_bot_matrix_reminder_bot_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-matrix-reminder-bot.service restarted, if necessary
|
- name: Ensure matrix-bot-matrix-reminder-bot.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-bot-matrix-reminder-bot.service"
|
name: "matrix-bot-matrix-reminder-bot.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_bot_matrix_reminder_bot_requires_restart | bool"
|
when: "matrix_bot_matrix_reminder_bot_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-matrix-reminder-bot service
|
- name: Check existence of matrix-matrix-reminder-bot service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-reminder-bot.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-reminder-bot.service"
|
||||||
register: matrix_bot_matrix_reminder_bot_service_stat
|
register: matrix_bot_matrix_reminder_bot_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-matrix-reminder-bot is stopped
|
- name: Ensure matrix-matrix-reminder-bot is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-bot-matrix-reminder-bot
|
name: matrix-bot-matrix-reminder-bot
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -15,18 +15,18 @@
|
||||||
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists | bool"
|
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-matrix-reminder-bot.service doesn't exist
|
- name: Ensure matrix-bot-matrix-reminder-bot.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-reminder-bot.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-matrix-reminder-bot.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists | bool"
|
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-matrix-reminder-bot.service removal
|
- name: Ensure systemd reloaded after matrix-bot-matrix-reminder-bot.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists | bool"
|
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix matrix-reminder-bot paths don't exist
|
- name: Ensure Matrix matrix-reminder-bot paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_bot_matrix_reminder_bot_base_path }}"
|
path: "{{ matrix_bot_matrix_reminder_bot_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
- "matrix_bot_matrix_reminder_bot_reminders_timezone"
|
- "matrix_bot_matrix_reminder_bot_reminders_timezone"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed settings
|
- name: (Deprecation) Catch and report renamed settings
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration contains a variable, which now has a different name.
|
Your configuration contains a variable, which now has a different name.
|
||||||
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
# See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
|
# See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
|
||||||
# and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
|
# and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
|
||||||
- name: Fail if trying to self-build on Ansible < 2.8
|
- name: Fail if trying to self-build on Ansible < 2.8
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "To self-build the Mjolnir image, you should use Ansible 2.8 or higher. See docs/ansible.md"
|
msg: "To self-build the Mjolnir image, you should use Ansible 2.8 or higher. See docs/ansible.md"
|
||||||
when: "ansible_version.major == 2 and ansible_version.minor < 8 and matrix_bot_mjolnir_container_image_self_build and matrix_bot_mjolnir_enabled"
|
when: "ansible_version.major == 2 and ansible_version.minor < 8 and matrix_bot_mjolnir_container_image_self_build and matrix_bot_mjolnir_enabled"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-mjolnir.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-mjolnir.service'] }}"
|
||||||
when: matrix_bot_mjolnir_enabled | bool
|
when: matrix_bot_mjolnir_enabled | bool
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_bot_mjolnir_enabled | bool"
|
when: "run_setup | bool and matrix_bot_mjolnir_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-mjolnir
|
- setup-bot-mjolnir
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_bot_mjolnir_enabled | bool"
|
when: "run_setup | bool and matrix_bot_mjolnir_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-bot-mjolnir
|
- setup-bot-mjolnir
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_bot_mjolnir_enabled | bool"
|
when: "run_setup | bool and not matrix_bot_mjolnir_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_bot_mjolnir_requires_restart: false
|
matrix_bot_mjolnir_requires_restart: false
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir paths exist
|
- name: Ensure matrix-bot-mjolnir paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure mjolnir repository is present on self-build
|
- name: Ensure mjolnir repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_bot_mjolnir_container_image_self_build_repo }}"
|
repo: "{{ matrix_bot_mjolnir_container_image_self_build_repo }}"
|
||||||
dest: "{{ matrix_bot_mjolnir_docker_src_files_path }}"
|
dest: "{{ matrix_bot_mjolnir_docker_src_files_path }}"
|
||||||
version: "{{ matrix_bot_mjolnir_docker_image.split(':')[1] }}"
|
version: "{{ matrix_bot_mjolnir_docker_image.split(':')[1] }}"
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
when: "matrix_bot_mjolnir_container_image_self_build | bool"
|
when: "matrix_bot_mjolnir_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir config installed
|
- name: Ensure matrix-bot-mjolnir config installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_bot_mjolnir_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_bot_mjolnir_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_bot_mjolnir_config_path }}/production.yaml"
|
dest: "{{ matrix_bot_mjolnir_config_path }}/production.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -60,19 +60,19 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir.service installed
|
- name: Ensure matrix-bot-mjolnir.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-bot-mjolnir.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-bot-mjolnir.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-bot-mjolnir.service"
|
dest: "{{ matrix_systemd_path }}/matrix-bot-mjolnir.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_bot_mjolnir_systemd_service_result
|
register: matrix_bot_mjolnir_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-mjolnir.service installation
|
- name: Ensure systemd reloaded after matrix-bot-mjolnir.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_mjolnir_systemd_service_result.changed | bool"
|
when: "matrix_bot_mjolnir_systemd_service_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir.service restarted, if necessary
|
- name: Ensure matrix-bot-mjolnir.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-bot-mjolnir.service"
|
name: "matrix-bot-mjolnir.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_bot_mjolnir_requires_restart | bool"
|
when: "matrix_bot_mjolnir_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-bot-mjolnir service
|
- name: Check existence of matrix-bot-mjolnir service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-mjolnir.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-mjolnir.service"
|
||||||
register: matrix_bot_mjolnir_service_stat
|
register: matrix_bot_mjolnir_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir is stopped
|
- name: Ensure matrix-bot-mjolnir is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-bot-mjolnir
|
name: matrix-bot-mjolnir
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -15,18 +15,18 @@
|
||||||
when: "matrix_bot_mjolnir_service_stat.stat.exists | bool"
|
when: "matrix_bot_mjolnir_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir.service doesn't exist
|
- name: Ensure matrix-bot-mjolnir.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-bot-mjolnir.service"
|
path: "{{ matrix_systemd_path }}/matrix-bot-mjolnir.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_bot_mjolnir_service_stat.stat.exists | bool"
|
when: "matrix_bot_mjolnir_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-bot-mjolnir.service removal
|
- name: Ensure systemd reloaded after matrix-bot-mjolnir.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_bot_mjolnir_service_stat.stat.exists | bool"
|
when: "matrix_bot_mjolnir_service_stat.stat.exists | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-bot-mjolnir paths don't exist
|
- name: Ensure matrix-bot-mjolnir paths don't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_bot_mjolnir_base_path }}"
|
path: "{{ matrix_bot_mjolnir_base_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required variables are undefined
|
- name: Fail if required variables are undefined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "The `{{ item }}` variable must be defined and have a non-null value."
|
msg: "The `{{ item }}` variable must be defined and have a non-null value."
|
||||||
with_items:
|
with_items:
|
||||||
- "matrix_bot_mjolnir_access_token"
|
- "matrix_bot_mjolnir_access_token"
|
||||||
|
|
|
@ -39,10 +39,10 @@ matrix_appservice_discord_appservice_url: 'http://matrix-appservice-discord:9005
|
||||||
|
|
||||||
matrix_appservice_discord_bridge_domain: "{{ matrix_domain }}"
|
matrix_appservice_discord_bridge_domain: "{{ matrix_domain }}"
|
||||||
# As of right now, the homeserver URL must be a public URL. See below.
|
# As of right now, the homeserver URL must be a public URL. See below.
|
||||||
matrix_appservice_discord_bridge_homeserverUrl: "{{ matrix_homeserver_url }}"
|
matrix_appservice_discord_bridge_homeserverUrl: "{{ matrix_homeserver_url }}" # noqa var-naming
|
||||||
matrix_appservice_discord_bridge_disablePresence: false
|
matrix_appservice_discord_bridge_disablePresence: false # noqa var-naming
|
||||||
matrix_appservice_discord_bridge_enableSelfServiceBridging: false
|
matrix_appservice_discord_bridge_enableSelfServiceBridging: false # noqa var-naming
|
||||||
matrix_appservice_discord_bridge_disablePortalBridging: false
|
matrix_appservice_discord_bridge_disablePortalBridging: false # noqa var-naming
|
||||||
|
|
||||||
# Database-related configuration fields.
|
# Database-related configuration fields.
|
||||||
#
|
#
|
||||||
|
@ -65,7 +65,7 @@ matrix_appservice_discord_database_name: 'matrix_appservice_discord'
|
||||||
# These 2 variables are what actually ends up in the bridge configuration.
|
# These 2 variables are what actually ends up in the bridge configuration.
|
||||||
# It's best if you don't change them directly, but rather redefine the sub-variables that constitute them.
|
# It's best if you don't change them directly, but rather redefine the sub-variables that constitute them.
|
||||||
matrix_appservice_discord_database_filename: "{{ matrix_appservice_discord_sqlite_database_path_in_container }}"
|
matrix_appservice_discord_database_filename: "{{ matrix_appservice_discord_sqlite_database_path_in_container }}"
|
||||||
matrix_appservice_discord_database_connString: 'postgresql://{{ matrix_appservice_discord_database_username }}:{{ matrix_appservice_discord_database_password }}@{{ matrix_appservice_discord_database_hostname }}:{{ matrix_appservice_discord_database_port }}/{{ matrix_appservice_discord_database_name }}'
|
matrix_appservice_discord_database_connString: 'postgresql://{{ matrix_appservice_discord_database_username }}:{{ matrix_appservice_discord_database_password }}@{{ matrix_appservice_discord_database_hostname }}:{{ matrix_appservice_discord_database_port }}/{{ matrix_appservice_discord_database_name }}' # noqa var-naming
|
||||||
|
|
||||||
|
|
||||||
# Tells whether the bot should make use of "Privileged Gateway Intents".
|
# Tells whether the bot should make use of "Privileged Gateway Intents".
|
||||||
|
@ -74,7 +74,7 @@ matrix_appservice_discord_database_connString: 'postgresql://{{ matrix_appservic
|
||||||
# by triggering all Intent checkboxes on a page like this: `https://discord.com/developers/applications/694448564151123988/bot`
|
# by triggering all Intent checkboxes on a page like this: `https://discord.com/developers/applications/694448564151123988/bot`
|
||||||
#
|
#
|
||||||
# Learn more: https://gist.github.com/advaith1/e69bcc1cdd6d0087322734451f15aa2f
|
# Learn more: https://gist.github.com/advaith1/e69bcc1cdd6d0087322734451f15aa2f
|
||||||
matrix_appservice_discord_auth_usePrivilegedIntents: false
|
matrix_appservice_discord_auth_usePrivilegedIntents: false # noqa var-naming
|
||||||
|
|
||||||
matrix_appservice_discord_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
|
matrix_appservice_discord_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
|
||||||
|
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-appservice-discord role needs to execute before the matrix-synapse role.
|
The matrix-bridge-appservice-discord role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_appservice_discord_enabled and matrix_synapse_role_executed | default(False)"
|
when: "matrix_appservice_discord_enabled and matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-discord.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-discord.service'] }}"
|
||||||
when: matrix_appservice_discord_enabled | bool
|
when: matrix_appservice_discord_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_discord_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_discord_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-discord
|
- setup-appservice-discord
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_discord_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_discord_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-discord
|
- setup-appservice-discord
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_appservice_discord_enabled | bool"
|
when: "run_setup | bool and not matrix_appservice_discord_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_appservice_discord_requires_restart: false
|
matrix_appservice_discord_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if an SQLite database already exists
|
- name: Check if an SQLite database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_appservice_discord_sqlite_database_path_local }}"
|
path: "{{ matrix_appservice_discord_sqlite_database_path_local }}"
|
||||||
register: matrix_appservice_discord_sqlite_database_path_local_stat_result
|
register: matrix_appservice_discord_sqlite_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_postgres_db_migration_request:
|
matrix_postgres_db_migration_request:
|
||||||
src: "{{ matrix_appservice_discord_sqlite_database_path_local }}"
|
src: "{{ matrix_appservice_discord_sqlite_database_path_local }}"
|
||||||
dst: "{{ matrix_appservice_discord_database_connString }}"
|
dst: "{{ matrix_appservice_discord_database_connString }}"
|
||||||
|
@ -19,9 +19,11 @@
|
||||||
engine_old: 'sqlite'
|
engine_old: 'sqlite'
|
||||||
systemd_services_to_stop: ['matrix-appservice-discord.service']
|
systemd_services_to_stop: ['matrix-appservice-discord.service']
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/migrate_db_to_postgres.yml"
|
- ansible.builtin.import_role:
|
||||||
|
name: matrix-postgres
|
||||||
|
tasks_from: migrate_db_to_postgres
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_appservice_discord_requires_restart: true
|
matrix_appservice_discord_requires_restart: true
|
||||||
when: "matrix_appservice_discord_sqlite_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_appservice_discord_sqlite_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_appservice_discord_database_engine == 'postgres'"
|
when: "matrix_appservice_discord_database_engine == 'postgres'"
|
||||||
|
@ -38,7 +40,7 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure AppService Discord paths exist
|
- name: Ensure AppService Discord paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -50,12 +52,12 @@
|
||||||
- "{{ matrix_appservice_discord_data_path }}"
|
- "{{ matrix_appservice_discord_data_path }}"
|
||||||
|
|
||||||
- name: Check if an old database file already exists
|
- name: Check if an old database file already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_appservice_discord_base_path }}/discord.db"
|
path: "{{ matrix_appservice_discord_base_path }}/discord.db"
|
||||||
register: matrix_appservice_discord_stat_db
|
register: matrix_appservice_discord_stat_db
|
||||||
|
|
||||||
- name: (Data relocation) Ensure matrix-appservice-discord.service is stopped
|
- name: (Data relocation) Ensure matrix-appservice-discord.service is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-discord
|
name: matrix-appservice-discord
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -64,7 +66,7 @@
|
||||||
when: "matrix_appservice_discord_stat_db.stat.exists"
|
when: "matrix_appservice_discord_stat_db.stat.exists"
|
||||||
|
|
||||||
- name: (Data relocation) Move AppService Discord discord.db file to ./data directory
|
- name: (Data relocation) Move AppService Discord discord.db file to ./data directory
|
||||||
command: "mv {{ matrix_appservice_discord_base_path }}/{{ item }} {{ matrix_appservice_discord_data_path }}/{{ item }}"
|
ansible.builtin.command: "mv {{ matrix_appservice_discord_base_path }}/{{ item }} {{ matrix_appservice_discord_data_path }}/{{ item }}"
|
||||||
with_items:
|
with_items:
|
||||||
- discord.db
|
- discord.db
|
||||||
- user-store.db
|
- user-store.db
|
||||||
|
@ -72,7 +74,7 @@
|
||||||
when: "matrix_appservice_discord_stat_db.stat.exists"
|
when: "matrix_appservice_discord_stat_db.stat.exists"
|
||||||
|
|
||||||
- name: Ensure AppService Discord config.yaml installed
|
- name: Ensure AppService Discord config.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_discord_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_discord_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_discord_config_path }}/config.yaml"
|
dest: "{{ matrix_appservice_discord_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -80,7 +82,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure AppService Discord registration.yaml installed
|
- name: Ensure AppService Discord registration.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_discord_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_discord_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_discord_config_path }}/registration.yaml"
|
dest: "{{ matrix_appservice_discord_config_path }}/registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -90,7 +92,7 @@
|
||||||
# If `matrix_appservice_discord_client_id` hasn't changed, the same invite link would be generated.
|
# If `matrix_appservice_discord_client_id` hasn't changed, the same invite link would be generated.
|
||||||
# We intentionally suppress Ansible changes.
|
# We intentionally suppress Ansible changes.
|
||||||
- name: Generate AppService Discord invite link
|
- name: Generate AppService Discord invite link
|
||||||
shell: >-
|
ansible.builtin.shell: >-
|
||||||
{{ matrix_host_command_docker }} run --rm --name matrix-appservice-discord-link-gen
|
{{ matrix_host_command_docker }} run --rm --name matrix-appservice-discord-link-gen
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }}
|
--user={{ matrix_user_uid }}:{{ matrix_user_gid }}
|
||||||
--cap-drop=ALL
|
--cap-drop=ALL
|
||||||
|
@ -101,19 +103,19 @@
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-discord.service installed
|
- name: Ensure matrix-appservice-discord.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-discord.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-appservice-discord.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-appservice-discord.service"
|
dest: "{{ matrix_systemd_path }}/matrix-appservice-discord.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_appservice_discord_systemd_service_result
|
register: matrix_appservice_discord_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-discord.service installation
|
- name: Ensure systemd reloaded after matrix-appservice-discord.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_discord_systemd_service_result.changed"
|
when: "matrix_appservice_discord_systemd_service_result.changed"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-discord.service restarted, if necessary
|
- name: Ensure matrix-appservice-discord.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-appservice-discord.service"
|
name: "matrix-appservice-discord.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_appservice_discord_requires_restart | bool"
|
when: "matrix_appservice_discord_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-discord service
|
- name: Check existence of matrix-appservice-discord service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-discord.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-discord.service"
|
||||||
register: matrix_appservice_discord_service_stat
|
register: matrix_appservice_discord_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-discord is stopped
|
- name: Ensure matrix-appservice-discord is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-discord
|
name: matrix-appservice-discord
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_appservice_discord_service_stat.stat.exists"
|
when: "matrix_appservice_discord_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-discord.service doesn't exist
|
- name: Ensure matrix-appservice-discord.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-discord.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-discord.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_appservice_discord_service_stat.stat.exists"
|
when: "matrix_appservice_discord_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-discord.service removal
|
- name: Ensure systemd reloaded after matrix-appservice-discord.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_discord_service_stat.stat.exists"
|
when: "matrix_appservice_discord_service_stat.stat.exists"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
- "matrix_appservice_discord_homeserver_domain"
|
- "matrix_appservice_discord_homeserver_domain"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed appservice-discord variables
|
- name: (Deprecation) Catch and report renamed appservice-discord variables
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration contains a variable, which now has a different name.
|
Your configuration contains a variable, which now has a different name.
|
||||||
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
||||||
|
@ -22,5 +22,5 @@
|
||||||
- {'old': 'matrix_appservice_discord_container_expose_client_server_api_port', 'new': '<superseded by matrix_appservice_discord_container_http_host_bind_port>'}
|
- {'old': 'matrix_appservice_discord_container_expose_client_server_api_port', 'new': '<superseded by matrix_appservice_discord_container_http_host_bind_port>'}
|
||||||
|
|
||||||
- name: Require a valid database engine
|
- name: Require a valid database engine
|
||||||
fail: msg="`matrix_appservice_discord_database_engine` needs to be either 'sqlite' or 'postgres'"
|
ansible.builtin.fail: msg="`matrix_appservice_discord_database_engine` needs to be either 'sqlite' or 'postgres'"
|
||||||
when: "matrix_appservice_discord_database_engine not in ['sqlite', 'postgres']"
|
when: "matrix_appservice_discord_database_engine not in ['sqlite', 'postgres']"
|
||||||
|
|
|
@ -6,10 +6,14 @@ matrix_appservice_irc_enabled: true
|
||||||
|
|
||||||
matrix_appservice_irc_container_image_self_build: false
|
matrix_appservice_irc_container_image_self_build: false
|
||||||
matrix_appservice_irc_docker_repo: "https://github.com/matrix-org/matrix-appservice-irc.git"
|
matrix_appservice_irc_docker_repo: "https://github.com/matrix-org/matrix-appservice-irc.git"
|
||||||
|
matrix_appservice_irc_docker_repo_version: "{{ 'master' if matrix_appservice_irc_version == 'latest' else matrix_appservice_irc_version }}"
|
||||||
matrix_appservice_irc_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-irc/docker-src"
|
matrix_appservice_irc_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-irc/docker-src"
|
||||||
|
|
||||||
matrix_appservice_irc_version: release-0.34.0
|
# matrix_appservice_irc_version used to contain the full Docker image tag (e.g. `release-X.X.X`).
|
||||||
matrix_appservice_irc_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-irc:{{ matrix_appservice_irc_version }}"
|
# It's a bare version number now. We try to somewhat retain compatibility below.
|
||||||
|
matrix_appservice_irc_version: 0.34.0
|
||||||
|
matrix_appservice_irc_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-irc:{{ matrix_appservice_irc_docker_image_tag }}"
|
||||||
|
matrix_appservice_irc_docker_image_tag: "{{ 'latest' if matrix_appservice_irc_version == 'latest' else ('release-' + matrix_appservice_irc_version) }}"
|
||||||
matrix_appservice_irc_docker_image_force_pull: "{{ matrix_appservice_irc_docker_image.endswith(':latest') }}"
|
matrix_appservice_irc_docker_image_force_pull: "{{ matrix_appservice_irc_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_irc_base_path: "{{ matrix_base_data_path }}/appservice-irc"
|
matrix_appservice_irc_base_path: "{{ matrix_base_data_path }}/appservice-irc"
|
||||||
|
@ -19,7 +23,7 @@ matrix_appservice_irc_data_path: "{{ matrix_appservice_irc_base_path }}/data"
|
||||||
matrix_appservice_irc_homeserver_url: "{{ matrix_homeserver_container_url }}"
|
matrix_appservice_irc_homeserver_url: "{{ matrix_homeserver_container_url }}"
|
||||||
matrix_appservice_irc_homeserver_media_url: 'https://{{ matrix_server_fqn_matrix }}'
|
matrix_appservice_irc_homeserver_media_url: 'https://{{ matrix_server_fqn_matrix }}'
|
||||||
matrix_appservice_irc_homeserver_domain: '{{ matrix_domain }}'
|
matrix_appservice_irc_homeserver_domain: '{{ matrix_domain }}'
|
||||||
matrix_appservice_irc_homeserver_enablePresence: true
|
matrix_appservice_irc_homeserver_enablePresence: true # noqa var-naming
|
||||||
matrix_appservice_irc_appservice_address: 'http://matrix-appservice-irc:9999'
|
matrix_appservice_irc_appservice_address: 'http://matrix-appservice-irc:9999'
|
||||||
|
|
||||||
matrix_appservice_irc_database_engine: nedb
|
matrix_appservice_irc_database_engine: nedb
|
||||||
|
@ -34,14 +38,15 @@ matrix_appservice_irc_database_name: matrix_appservice_irc
|
||||||
matrix_appservice_irc_database_connection_string: 'postgresql://{{ matrix_appservice_irc_database_username }}:{{ matrix_appservice_irc_database_password }}@{{ matrix_appservice_irc_database_hostname }}:{{ matrix_appservice_irc_database_port }}/{{ matrix_appservice_irc_database_name }}?sslmode=disable'
|
matrix_appservice_irc_database_connection_string: 'postgresql://{{ matrix_appservice_irc_database_username }}:{{ matrix_appservice_irc_database_password }}@{{ matrix_appservice_irc_database_hostname }}:{{ matrix_appservice_irc_database_port }}/{{ matrix_appservice_irc_database_name }}?sslmode=disable'
|
||||||
|
|
||||||
# This is what actually goes into `database.connectionString` for the bridge.
|
# This is what actually goes into `database.connectionString` for the bridge.
|
||||||
matrix_appservice_irc_database_connectionString: "{{
|
matrix_appservice_irc_database_connectionString: |- # noqa var-naming
|
||||||
|
{{
|
||||||
{
|
{
|
||||||
'nedb': 'nedb:///data',
|
'nedb': 'nedb:///data',
|
||||||
'postgres': matrix_appservice_irc_database_connection_string,
|
'postgres': matrix_appservice_irc_database_connection_string,
|
||||||
}[matrix_appservice_irc_database_engine]
|
}[matrix_appservice_irc_database_engine]
|
||||||
}}"
|
}}
|
||||||
|
|
||||||
matrix_appservice_irc_ircService_servers: []
|
matrix_appservice_irc_ircService_servers: [] # noqa var-naming
|
||||||
|
|
||||||
# Example of `matrix_appservice_irc_ircService_servers` with one server (and all its options):
|
# Example of `matrix_appservice_irc_ircService_servers` with one server (and all its options):
|
||||||
#
|
#
|
||||||
|
|
|
@ -2,24 +2,24 @@
|
||||||
# See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
|
# See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
|
||||||
# and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
|
# and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
|
||||||
- name: Fail if trying to self-build on Ansible < 2.8
|
- name: Fail if trying to self-build on Ansible < 2.8
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "To self-build the Element image, you should use Ansible 2.8 or higher. See docs/ansible.md"
|
msg: "To self-build the Element image, you should use Ansible 2.8 or higher. See docs/ansible.md"
|
||||||
when: "ansible_version.major == 2 and ansible_version.minor < 8 and matrix_appservice_irc_container_image_self_build and matrix_appservice_irc_enabled"
|
when: "ansible_version.major == 2 and ansible_version.minor < 8 and matrix_appservice_irc_container_image_self_build and matrix_appservice_irc_enabled"
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-appservice-irc role needs to execute before the matrix-synapse role.
|
The matrix-bridge-appservice-irc role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_appservice_irc_enabled | bool and matrix_synapse_role_executed | default(False)"
|
when: "matrix_appservice_irc_enabled | bool and matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-irc.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-irc.service'] }}"
|
||||||
when: matrix_appservice_irc_enabled | bool
|
when: matrix_appservice_irc_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_irc_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_irc_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-irc
|
- setup-appservice-irc
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_irc_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_irc_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-irc
|
- setup-appservice-irc
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_appservice_irc_enabled | bool"
|
when: "run_setup | bool and not matrix_appservice_irc_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,46 +1,46 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if Postgres not enabled
|
- name: Fail if Postgres not enabled
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "Postgres via the matrix-postgres role is not enabled (`matrix_postgres_enabled`). Cannot migrate."
|
msg: "Postgres via the matrix-postgres role is not enabled (`matrix_postgres_enabled`). Cannot migrate."
|
||||||
when: "not matrix_postgres_enabled | bool"
|
when: "not matrix_postgres_enabled | bool"
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
|
|
||||||
- name: Set postgres_start_wait_time, if not provided
|
- name: Set postgres_start_wait_time, if not provided
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
postgres_start_wait_time: 15
|
postgres_start_wait_time: 15
|
||||||
when: "postgres_start_wait_time | default('') == ''"
|
when: "postgres_start_wait_time | default('') == ''"
|
||||||
|
|
||||||
# Actual import work
|
# Actual import work
|
||||||
|
|
||||||
- name: Ensure matrix-postgres is started
|
- name: Ensure matrix-postgres is started
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-postgres
|
name: matrix-postgres
|
||||||
state: started
|
state: started
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
register: matrix_postgres_service_start_result
|
register: matrix_postgres_service_start_result
|
||||||
|
|
||||||
- name: Wait a bit, so that Postgres can start
|
- name: Wait a bit, so that Postgres can start
|
||||||
wait_for:
|
ansible.builtin.wait_for:
|
||||||
timeout: "{{ postgres_start_wait_time }}"
|
timeout: "{{ postgres_start_wait_time }}"
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
become: false
|
become: false
|
||||||
when: "matrix_postgres_service_start_result.changed | bool"
|
when: "matrix_postgres_service_start_result.changed | bool"
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-irc service
|
- name: Check existence of matrix-appservice-irc service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
||||||
register: matrix_appservice_irc_service_stat
|
register: matrix_appservice_irc_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-irc is stopped
|
- name: Ensure matrix-appservice-irc is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-irc
|
name: matrix-appservice-irc
|
||||||
state: stopped
|
state: stopped
|
||||||
when: "matrix_appservice_irc_service_stat.stat.exists"
|
when: "matrix_appservice_irc_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Import appservice-irc NeDB database into Postgres
|
- name: Import appservice-irc NeDB database into Postgres
|
||||||
command:
|
ansible.builtin.command:
|
||||||
cmd: >-
|
cmd: >-
|
||||||
{{ matrix_host_command_docker }} run
|
{{ matrix_host_command_docker }} run
|
||||||
--rm
|
--rm
|
||||||
|
@ -52,16 +52,20 @@
|
||||||
{{ matrix_appservice_irc_docker_image }}
|
{{ matrix_appservice_irc_docker_image }}
|
||||||
-c
|
-c
|
||||||
'/usr/local/bin/node /app/lib/scripts/migrate-db-to-pgres.js --dbdir /data --privateKey /data/passkey.pem --connectionString {{ matrix_appservice_irc_database_connection_string }}'
|
'/usr/local/bin/node /app/lib/scripts/migrate-db-to-pgres.js --dbdir /data --privateKey /data/passkey.pem --connectionString {{ matrix_appservice_irc_database_connection_string }}'
|
||||||
|
register: matrix_appservice_irc_import_nedb_to_postgres_result
|
||||||
|
changed_when: matrix_appservice_irc_import_nedb_to_postgres_result.rc == 0
|
||||||
|
|
||||||
- name: Archive NeDB database files
|
- name: Archive NeDB database files
|
||||||
command:
|
ansible.builtin.command:
|
||||||
cmd: "mv {{ matrix_appservice_irc_data_path }}/{{ item }} {{ matrix_appservice_irc_data_path }}/{{ item }}.backup"
|
cmd: "mv {{ matrix_appservice_irc_data_path }}/{{ item }} {{ matrix_appservice_irc_data_path }}/{{ item }}.backup"
|
||||||
with_items:
|
with_items:
|
||||||
- rooms.db
|
- rooms.db
|
||||||
- users.db
|
- users.db
|
||||||
|
register: matrix_appservice_irc_import_nedb_to_postgres_move_result
|
||||||
|
changed_when: matrix_appservice_irc_import_nedb_to_postgres_move_result.rc == 0
|
||||||
|
|
||||||
- name: Inject result
|
- name: Inject result
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_playbook_runtime_results: |
|
matrix_playbook_runtime_results: |
|
||||||
{{
|
{{
|
||||||
matrix_playbook_runtime_results | default([])
|
matrix_playbook_runtime_results | default([])
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml"
|
||||||
|
|
||||||
- name: Ensure Appservice IRC paths exist
|
- name: Ensure Appservice IRC paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -17,42 +17,48 @@
|
||||||
when: item.when | bool
|
when: item.when | bool
|
||||||
|
|
||||||
- name: Check if an old passkey file already exists
|
- name: Check if an old passkey file already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_appservice_irc_base_path }}/passkey.pem"
|
path: "{{ matrix_appservice_irc_base_path }}/passkey.pem"
|
||||||
register: matrix_appservice_irc_stat_passkey
|
register: matrix_appservice_irc_stat_passkey
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: (Data relocation) Ensure matrix-appservice-irc.service is stopped
|
- name: (Data relocation) Ensure matrix-appservice-irc.service is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-irc
|
name: matrix-appservice-irc
|
||||||
state: stopped
|
state: stopped
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
failed_when: false
|
failed_when: false
|
||||||
|
|
||||||
- name: (Data relocation) Move AppService IRC passkey.pem file to ./data directory
|
- name: (Data relocation) Move AppService IRC passkey.pem file to ./data directory
|
||||||
command: "mv {{ matrix_appservice_irc_base_path }}/passkey.pem {{ matrix_appservice_irc_data_path }}/passkey.pem"
|
ansible.builtin.command:
|
||||||
|
cmd: "mv {{ matrix_appservice_irc_base_path }}/passkey.pem {{ matrix_appservice_irc_data_path }}/passkey.pem"
|
||||||
|
register: matrix_appservice_irc_move_passkey_result
|
||||||
|
changed_when: matrix_appservice_irc_move_passkey_result.rc == 0
|
||||||
|
|
||||||
- name: (Data relocation) Move AppService IRC database files to ./data directory
|
- name: (Data relocation) Move AppService IRC database files to ./data directory
|
||||||
command: "mv {{ matrix_appservice_irc_base_path }}/{{ item }} {{ matrix_appservice_irc_data_path }}/{{ item }}"
|
ansible.builtin.command:
|
||||||
|
cmd: "mv {{ matrix_appservice_irc_base_path }}/{{ item }} {{ matrix_appservice_irc_data_path }}/{{ item }}"
|
||||||
|
register: matrix_appservice_irc_move_dbs_result
|
||||||
|
changed_when: matrix_appservice_irc_move_dbs_result.rc == 0
|
||||||
with_items:
|
with_items:
|
||||||
- rooms.db
|
- rooms.db
|
||||||
- users.db
|
- users.db
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_appservice_irc_stat_passkey.stat.exists"
|
when: "matrix_appservice_irc_stat_passkey.stat.exists"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_appservice_irc_requires_restart: false
|
matrix_appservice_irc_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if a nedb database already exists
|
- name: Check if a nedb database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_appservice_irc_data_path }}/users.db"
|
path: "{{ matrix_appservice_irc_data_path }}/users.db"
|
||||||
register: matrix_appservice_irc_nedb_database_path_local_stat_result
|
register: matrix_appservice_irc_nedb_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- import_tasks: "{{ role_path }}/tasks/migrate_nedb_to_postgres.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/migrate_nedb_to_postgres.yml"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_appservice_irc_requires_restart: true
|
matrix_appservice_irc_requires_restart: true
|
||||||
when: "matrix_appservice_irc_nedb_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_appservice_irc_nedb_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_appservice_irc_database_engine == 'postgres'"
|
when: "matrix_appservice_irc_database_engine == 'postgres'"
|
||||||
|
@ -70,8 +76,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-irc repository is present when self-building
|
- name: Ensure matrix-appservice-irc repository is present when self-building
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_appservice_irc_docker_repo }}"
|
repo: "{{ matrix_appservice_irc_docker_repo }}"
|
||||||
|
version: "{{ matrix_appservice_irc_docker_repo_version }}"
|
||||||
dest: "{{ matrix_appservice_irc_docker_src_files_path }}"
|
dest: "{{ matrix_appservice_irc_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -92,7 +99,7 @@
|
||||||
when: "matrix_appservice_irc_enabled | bool and matrix_appservice_irc_container_image_self_build | bool and matrix_appservice_irc_git_pull_results.changed"
|
when: "matrix_appservice_irc_enabled | bool and matrix_appservice_irc_container_image_self_build | bool and matrix_appservice_irc_git_pull_results.changed"
|
||||||
|
|
||||||
- name: Ensure Matrix Appservice IRC config installed
|
- name: Ensure Matrix Appservice IRC config installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_irc_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_irc_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_irc_config_path }}/config.yaml"
|
dest: "{{ matrix_appservice_irc_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -100,12 +107,12 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Check if Appservice IRC passkey exists
|
- name: Check if Appservice IRC passkey exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_appservice_irc_data_path }}/passkey.pem"
|
path: "{{ matrix_appservice_irc_data_path }}/passkey.pem"
|
||||||
register: irc_passkey_file
|
register: irc_passkey_file
|
||||||
|
|
||||||
- name: Generate Appservice IRC passkey if it doesn't exist
|
- name: Generate Appservice IRC passkey if it doesn't exist
|
||||||
shell: "{{ matrix_host_command_openssl }} genpkey -out {{ matrix_appservice_irc_data_path }}/passkey.pem -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048"
|
ansible.builtin.shell: "{{ matrix_host_command_openssl }} genpkey -out {{ matrix_appservice_irc_data_path }}/passkey.pem -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048"
|
||||||
become: true
|
become: true
|
||||||
become_user: "{{ matrix_user_username }}"
|
become_user: "{{ matrix_user_username }}"
|
||||||
when: "not irc_passkey_file.stat.exists"
|
when: "not irc_passkey_file.stat.exists"
|
||||||
|
@ -113,7 +120,7 @@
|
||||||
# In the past, we used to generate the passkey.pem file with root, so permissions may not be okay.
|
# In the past, we used to generate the passkey.pem file with root, so permissions may not be okay.
|
||||||
# Fix it.
|
# Fix it.
|
||||||
- name: (Migration) Ensure Appservice IRC passkey permissions are okay
|
- name: (Migration) Ensure Appservice IRC passkey permissions are okay
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_appservice_irc_data_path }}/passkey.pem"
|
path: "{{ matrix_appservice_irc_data_path }}/passkey.pem"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
|
@ -139,7 +146,7 @@
|
||||||
# an up-to-date file, and we fix it up with some static values later on,
|
# an up-to-date file, and we fix it up with some static values later on,
|
||||||
# to produce a final registration.yaml file, as we desire.
|
# to produce a final registration.yaml file, as we desire.
|
||||||
- name: Generate Appservice IRC registration-template.yaml
|
- name: Generate Appservice IRC registration-template.yaml
|
||||||
shell: >-
|
ansible.builtin.shell: >-
|
||||||
{{ matrix_host_command_docker }} run --rm --name matrix-appservice-irc-gen
|
{{ matrix_host_command_docker }} run --rm --name matrix-appservice-irc-gen
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }}
|
--user={{ matrix_user_uid }}:{{ matrix_user_gid }}
|
||||||
--cap-drop=ALL
|
--cap-drop=ALL
|
||||||
|
@ -157,26 +164,26 @@
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
|
||||||
- name: Read Appservice IRC registration-template.yaml
|
- name: Read Appservice IRC registration-template.yaml
|
||||||
slurp:
|
ansible.builtin.slurp:
|
||||||
src: "{{ matrix_appservice_irc_config_path }}/registration-template.yaml"
|
src: "{{ matrix_appservice_irc_config_path }}/registration-template.yaml"
|
||||||
register: matrix_appservice_irc_registration_template_slurp
|
register: matrix_appservice_irc_registration_template_slurp
|
||||||
|
|
||||||
- name: Remove unnecessary Appservice IRC registration-template.yaml
|
- name: Remove unnecessary Appservice IRC registration-template.yaml
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_appservice_irc_config_path }}/registration-template.yaml"
|
path: "{{ matrix_appservice_irc_config_path }}/registration-template.yaml"
|
||||||
state: absent
|
state: absent
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
|
||||||
- name: Parse registration-template.yaml
|
- name: Parse registration-template.yaml
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_appservice_irc_registration_template: "{{ matrix_appservice_irc_registration_template_slurp['content'] | b64decode | from_yaml }}"
|
matrix_appservice_irc_registration_template: "{{ matrix_appservice_irc_registration_template_slurp['content'] | b64decode | from_yaml }}"
|
||||||
|
|
||||||
- name: Combine registration-template.yaml and own registration override config
|
- name: Combine registration-template.yaml and own registration override config
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_appservice_irc_registration: "{{ matrix_appservice_irc_registration_template | combine(matrix_appservice_irc_registration_override, recursive=True) }}"
|
matrix_appservice_irc_registration: "{{ matrix_appservice_irc_registration_template | combine(matrix_appservice_irc_registration_override, recursive=True) }}"
|
||||||
|
|
||||||
- name: Ensure Appservice IRC registration.yaml installed
|
- name: Ensure Appservice IRC registration.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_irc_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_irc_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_irc_config_path }}/registration.yaml"
|
dest: "{{ matrix_appservice_irc_config_path }}/registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -184,19 +191,19 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-irc.service installed
|
- name: Ensure matrix-appservice-irc.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-irc.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-appservice-irc.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
dest: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_appservice_irc_systemd_service_result
|
register: matrix_appservice_irc_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-irc.service installation
|
- name: Ensure systemd reloaded after matrix-appservice-irc.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_irc_systemd_service_result.changed"
|
when: "matrix_appservice_irc_systemd_service_result.changed"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-irc.service restarted, if necessary
|
- name: Ensure matrix-appservice-irc.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-appservice-irc.service"
|
name: "matrix-appservice-irc.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_appservice_irc_requires_restart | bool"
|
when: "matrix_appservice_irc_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-irc service
|
- name: Check existence of matrix-appservice-irc service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
||||||
register: matrix_appservice_irc_service_stat
|
register: matrix_appservice_irc_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-irc is stopped
|
- name: Ensure matrix-appservice-irc is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-irc
|
name: matrix-appservice-irc
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_appservice_irc_service_stat.stat.exists"
|
when: "matrix_appservice_irc_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-irc.service doesn't exist
|
- name: Ensure matrix-appservice-irc.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-irc.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_appservice_irc_service_stat.stat.exists"
|
when: "matrix_appservice_irc_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-irc.service removal
|
- name: Ensure systemd reloaded after matrix-appservice-irc.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_irc_service_stat.stat.exists"
|
when: "matrix_appservice_irc_service_stat.stat.exists"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
#
|
#
|
||||||
# This is a safety check to ensure we fail earlier and in a nicer way.
|
# This is a safety check to ensure we fail earlier and in a nicer way.
|
||||||
- name: Fail if no additional configuration provided
|
- name: Fail if no additional configuration provided
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your Appservice IRC configuration is incomplete (lacking an `ircService.servers` configuration).
|
Your Appservice IRC configuration is incomplete (lacking an `ircService.servers` configuration).
|
||||||
You need to define one or more servers by either using `matrix_appservice_irc_ircService_servers`
|
You need to define one or more servers by either using `matrix_appservice_irc_ircService_servers`
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
when: "matrix_appservice_irc_configuration.ircService.servers|length == 0"
|
when: "matrix_appservice_irc_configuration.ircService.servers|length == 0"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed appservice-irc variables
|
- name: (Deprecation) Catch and report renamed appservice-irc variables
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration contains a variable, which now has a different name.
|
Your configuration contains a variable, which now has a different name.
|
||||||
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
||||||
|
|
|
@ -6,10 +6,14 @@ matrix_appservice_slack_enabled: true
|
||||||
|
|
||||||
matrix_appservice_slack_container_image_self_build: false
|
matrix_appservice_slack_container_image_self_build: false
|
||||||
matrix_appservice_slack_docker_repo: "https://github.com/matrix-org/matrix-appservice-slack.git"
|
matrix_appservice_slack_docker_repo: "https://github.com/matrix-org/matrix-appservice-slack.git"
|
||||||
|
matrix_appservice_slack_docker_repo_version: "{{ 'master' if matrix_appservice_slack_version == 'latest' else matrix_appservice_slack_version }}"
|
||||||
matrix_appservice_slack_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-slack/docker-src"
|
matrix_appservice_slack_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-slack/docker-src"
|
||||||
|
|
||||||
matrix_appservice_slack_version: release-1.11.0
|
# matrix_appservice_slack_version used to contain the full Docker image tag (e.g. `release-X.X.X`).
|
||||||
matrix_appservice_slack_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-slack:{{ matrix_appservice_slack_version }}"
|
# It's a bare version number now. We try to somewhat retain compatibility below.
|
||||||
|
matrix_appservice_slack_version: 1.11.0
|
||||||
|
matrix_appservice_slack_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-slack:{{ matrix_appservice_slack_docker_image_tag }}"
|
||||||
|
matrix_appservice_slack_docker_image_tag: "{{ 'latest' if matrix_appservice_slack_version == 'latest' else ('release-' + matrix_appservice_slack_version) }}"
|
||||||
matrix_appservice_slack_docker_image_force_pull: "{{ matrix_appservice_slack_docker_image.endswith(':latest') }}"
|
matrix_appservice_slack_docker_image_force_pull: "{{ matrix_appservice_slack_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_slack_base_path: "{{ matrix_base_data_path }}/appservice-slack"
|
matrix_appservice_slack_base_path: "{{ matrix_base_data_path }}/appservice-slack"
|
||||||
|
@ -63,12 +67,13 @@ matrix_appservice_slack_database_name: matrix_appservice_slack
|
||||||
matrix_appservice_slack_database_connection_string: 'postgresql://{{ matrix_appservice_slack_database_username }}:{{ matrix_appservice_slack_database_password }}@{{ matrix_appservice_slack_database_hostname }}:{{ matrix_appservice_slack_database_port }}/{{ matrix_appservice_slack_database_name }}?sslmode=disable'
|
matrix_appservice_slack_database_connection_string: 'postgresql://{{ matrix_appservice_slack_database_username }}:{{ matrix_appservice_slack_database_password }}@{{ matrix_appservice_slack_database_hostname }}:{{ matrix_appservice_slack_database_port }}/{{ matrix_appservice_slack_database_name }}?sslmode=disable'
|
||||||
|
|
||||||
# This is what actually goes into `database.connectionString` for the bridge.
|
# This is what actually goes into `database.connectionString` for the bridge.
|
||||||
matrix_appservice_slack_database_connectionString: "{{
|
matrix_appservice_slack_database_connectionString: |- # noqa var-naming
|
||||||
|
{{
|
||||||
{
|
{
|
||||||
'nedb': 'nedb:///data',
|
'nedb': 'nedb:///data',
|
||||||
'postgres': matrix_appservice_slack_database_connection_string,
|
'postgres': matrix_appservice_slack_database_connection_string,
|
||||||
}[matrix_appservice_slack_database_engine]
|
}[matrix_appservice_slack_database_engine]
|
||||||
}}"
|
}}
|
||||||
|
|
||||||
|
|
||||||
matrix_appservice_slack_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
|
matrix_appservice_slack_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
|
||||||
|
|
|
@ -2,24 +2,24 @@
|
||||||
# See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
|
# See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
|
||||||
# and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
|
# and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
|
||||||
- name: Fail if trying to self-build on Ansible < 2.8
|
- name: Fail if trying to self-build on Ansible < 2.8
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "To self-build the Element image, you should use Ansible 2.8 or higher. See docs/ansible.md"
|
msg: "To self-build the Element image, you should use Ansible 2.8 or higher. See docs/ansible.md"
|
||||||
when: "ansible_version.major == 2 and ansible_version.minor < 8 and matrix_appservice_slack_container_image_self_build and matrix_appservice_slack_enabled"
|
when: "ansible_version.major == 2 and ansible_version.minor < 8 and matrix_appservice_slack_container_image_self_build and matrix_appservice_slack_enabled"
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-appservice-slack role needs to execute before the matrix-synapse role.
|
The matrix-bridge-appservice-slack role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_synapse_role_executed | default(False)"
|
when: "matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-slack.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-slack.service'] }}"
|
||||||
when: matrix_appservice_slack_enabled | bool
|
when: matrix_appservice_slack_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
@ -38,14 +38,14 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-appservice-slack role needs to execute before the matrix-synapse role.
|
The matrix-bridge-appservice-slack role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_synapse_role_executed | default(False)"
|
when: "matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Fail if matrix-nginx-proxy role already executed
|
- name: Fail if matrix-nginx-proxy role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Trying to append Slack Appservice's reverse-proxying configuration to matrix-nginx-proxy,
|
Trying to append Slack Appservice's reverse-proxying configuration to matrix-nginx-proxy,
|
||||||
but it's pointless since the matrix-nginx-proxy role had already executed.
|
but it's pointless since the matrix-nginx-proxy role had already executed.
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
when: matrix_nginx_proxy_role_executed | default(False) | bool
|
when: matrix_nginx_proxy_role_executed | default(False) | bool
|
||||||
|
|
||||||
- name: Generate Matrix Appservice Slack proxying configuration for matrix-nginx-proxy
|
- name: Generate Matrix Appservice Slack proxying configuration for matrix-nginx-proxy
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_appservice_slack_matrix_nginx_proxy_configuration: |
|
matrix_appservice_slack_matrix_nginx_proxy_configuration: |
|
||||||
location {{ matrix_appservice_slack_public_endpoint }} {
|
location {{ matrix_appservice_slack_public_endpoint }} {
|
||||||
{% if matrix_nginx_proxy_enabled | default(False) %}
|
{% if matrix_nginx_proxy_enabled | default(False) %}
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- name: Register Slack Appservice proxying configuration with matrix-nginx-proxy
|
- name: Register Slack Appservice proxying configuration with matrix-nginx-proxy
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
|
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
|
||||||
{{
|
{{
|
||||||
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks | default([])
|
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks | default([])
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
when: matrix_appservice_slack_enabled | bool
|
when: matrix_appservice_slack_enabled | bool
|
||||||
|
|
||||||
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
|
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
msg: >-
|
msg: >-
|
||||||
NOTE: You've enabled the Matrix Slack bridge but are not using the matrix-nginx-proxy
|
NOTE: You've enabled the Matrix Slack bridge but are not using the matrix-nginx-proxy
|
||||||
reverse proxy.
|
reverse proxy.
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_slack_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_slack_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-slack
|
- setup-appservice-slack
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_slack_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_slack_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-slack
|
- setup-appservice-slack
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_appservice_slack_enabled | bool"
|
when: "run_setup | bool and not matrix_appservice_slack_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,40 +1,40 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if Postgres not enabled
|
- name: Fail if Postgres not enabled
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: "Postgres via the matrix-postgres role is not enabled (`matrix_postgres_enabled`). Cannot migrate."
|
msg: "Postgres via the matrix-postgres role is not enabled (`matrix_postgres_enabled`). Cannot migrate."
|
||||||
when: "not matrix_postgres_enabled | bool"
|
when: "not matrix_postgres_enabled | bool"
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
|
|
||||||
- name: Set postgres_start_wait_time, if not provided
|
- name: Set postgres_start_wait_time, if not provided
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
postgres_start_wait_time: 15
|
postgres_start_wait_time: 15
|
||||||
when: "postgres_start_wait_time | default('') == ''"
|
when: "postgres_start_wait_time | default('') == ''"
|
||||||
|
|
||||||
# Actual import work
|
# Actual import work
|
||||||
|
|
||||||
- name: Ensure matrix-postgres is started
|
- name: Ensure matrix-postgres is started
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-postgres
|
name: matrix-postgres
|
||||||
state: started
|
state: started
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
register: matrix_postgres_service_start_result
|
register: matrix_postgres_service_start_result
|
||||||
|
|
||||||
- name: Wait a bit, so that Postgres can start
|
- name: Wait a bit, so that Postgres can start
|
||||||
wait_for:
|
ansible.builtin.wait_for:
|
||||||
timeout: "{{ postgres_start_wait_time }}"
|
timeout: "{{ postgres_start_wait_time }}"
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
become: false
|
become: false
|
||||||
when: "matrix_postgres_service_start_result.changed | bool"
|
when: "matrix_postgres_service_start_result.changed | bool"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-slack is stopped
|
- name: Ensure matrix-appservice-slack is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-slack
|
name: matrix-appservice-slack
|
||||||
state: stopped
|
state: stopped
|
||||||
|
|
||||||
- name: Import appservice-slack NeDB database into Postgres
|
- name: Import appservice-slack NeDB database into Postgres
|
||||||
command:
|
ansible.builtin.command:
|
||||||
cmd: >-
|
cmd: >-
|
||||||
{{ matrix_host_command_docker }} run
|
{{ matrix_host_command_docker }} run
|
||||||
--rm
|
--rm
|
||||||
|
@ -46,10 +46,14 @@
|
||||||
{{ matrix_appservice_slack_docker_image }}
|
{{ matrix_appservice_slack_docker_image }}
|
||||||
-c
|
-c
|
||||||
'/usr/local/bin/node /usr/src/app/lib/scripts/migrateToPostgres.js --dbdir /data --connectionString {{ matrix_appservice_slack_database_connection_string }}'
|
'/usr/local/bin/node /usr/src/app/lib/scripts/migrateToPostgres.js --dbdir /data --connectionString {{ matrix_appservice_slack_database_connection_string }}'
|
||||||
|
register: matrix_appservice_slack_import_nedb_to_postgres_result
|
||||||
|
changed_when: matrix_appservice_slack_import_nedb_to_postgres_result.rc == 0
|
||||||
|
|
||||||
- name: Archive NeDB database files
|
- name: Archive NeDB database files
|
||||||
command:
|
ansible.builtin.command:
|
||||||
cmd: "mv {{ matrix_appservice_slack_data_path }}/{{ item }} {{ matrix_appservice_slack_data_path }}/{{ item }}.backup"
|
cmd: "mv {{ matrix_appservice_slack_data_path }}/{{ item }} {{ matrix_appservice_slack_data_path }}/{{ item }}.backup"
|
||||||
|
register: matrix_appservice_slack_import_nedb_to_postgres_move_result
|
||||||
|
changed_when: matrix_appservice_slack_import_nedb_to_postgres_move_result.rc == 0
|
||||||
with_items:
|
with_items:
|
||||||
- teams.db
|
- teams.db
|
||||||
- room-store.db
|
- room-store.db
|
||||||
|
@ -57,7 +61,7 @@
|
||||||
- event-store.db
|
- event-store.db
|
||||||
|
|
||||||
- name: Inject result
|
- name: Inject result
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_playbook_runtime_results: |
|
matrix_playbook_runtime_results: |
|
||||||
{{
|
{{
|
||||||
matrix_playbook_runtime_results | default([])
|
matrix_playbook_runtime_results | default([])
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure AppService Slack paths exist
|
- name: Ensure AppService Slack paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -14,19 +14,19 @@
|
||||||
- {path: "{{ matrix_appservice_slack_docker_src_files_path }}", when: "{{ matrix_appservice_slack_container_image_self_build }}"}
|
- {path: "{{ matrix_appservice_slack_docker_src_files_path }}", when: "{{ matrix_appservice_slack_container_image_self_build }}"}
|
||||||
when: item.when | bool
|
when: item.when | bool
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_appservice_slack_requires_restart: false
|
matrix_appservice_slack_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if a nedb database already exists
|
- name: Check if a nedb database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_appservice_slack_data_path }}/teams.db"
|
path: "{{ matrix_appservice_slack_data_path }}/teams.db"
|
||||||
register: matrix_appservice_slack_nedb_database_path_local_stat_result
|
register: matrix_appservice_slack_nedb_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- import_tasks: "{{ role_path }}/tasks/migrate_nedb_to_postgres.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/migrate_nedb_to_postgres.yml"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_appservice_slack_requires_restart: true
|
matrix_appservice_slack_requires_restart: true
|
||||||
when: "matrix_appservice_slack_nedb_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_appservice_slack_nedb_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_appservice_slack_database_engine == 'postgres'"
|
when: "matrix_appservice_slack_database_engine == 'postgres'"
|
||||||
|
@ -44,8 +44,9 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-slack repository is present when self-building
|
- name: Ensure matrix-appservice-slack repository is present when self-building
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_appservice_slack_docker_repo }}"
|
repo: "{{ matrix_appservice_slack_docker_repo }}"
|
||||||
|
version: "{{ matrix_appservice_slack_docker_repo_version }}"
|
||||||
dest: "{{ matrix_appservice_slack_docker_src_files_path }}"
|
dest: "{{ matrix_appservice_slack_docker_src_files_path }}"
|
||||||
force: "yes"
|
force: "yes"
|
||||||
become: true
|
become: true
|
||||||
|
@ -66,7 +67,7 @@
|
||||||
when: "matrix_appservice_slack_container_image_self_build | bool and matrix_appservice_slack_git_pull_results.changed"
|
when: "matrix_appservice_slack_container_image_self_build | bool and matrix_appservice_slack_git_pull_results.changed"
|
||||||
|
|
||||||
- name: Ensure Matrix Appservice Slack config installed
|
- name: Ensure Matrix Appservice Slack config installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_slack_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_slack_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_slack_config_path }}/config.yaml"
|
dest: "{{ matrix_appservice_slack_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -74,7 +75,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure appservice-slack registration.yaml installed
|
- name: Ensure appservice-slack registration.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_slack_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_slack_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_slack_config_path }}/slack-registration.yaml"
|
dest: "{{ matrix_appservice_slack_config_path }}/slack-registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -82,19 +83,19 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-slack.service installed
|
- name: Ensure matrix-appservice-slack.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-slack.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-appservice-slack.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-appservice-slack.service"
|
dest: "{{ matrix_systemd_path }}/matrix-appservice-slack.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_appservice_slack_systemd_service_result
|
register: matrix_appservice_slack_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-slack.service installation
|
- name: Ensure systemd reloaded after matrix-appservice-slack.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_slack_systemd_service_result.changed"
|
when: "matrix_appservice_slack_systemd_service_result.changed"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-slack.service restarted, if necessary
|
- name: Ensure matrix-appservice-slack.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-appservice-slack.service"
|
name: "matrix-appservice-slack.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_appservice_slack_requires_restart | bool"
|
when: "matrix_appservice_slack_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-slack service
|
- name: Check existence of matrix-appservice-slack service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-slack.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-slack.service"
|
||||||
register: matrix_appservice_slack_service_stat
|
register: matrix_appservice_slack_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-slack is stopped
|
- name: Ensure matrix-appservice-slack is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-slack
|
name: matrix-appservice-slack
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_appservice_slack_service_stat.stat.exists"
|
when: "matrix_appservice_slack_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-slack.service doesn't exist
|
- name: Ensure matrix-appservice-slack.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-slack.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-slack.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_appservice_slack_service_stat.stat.exists"
|
when: "matrix_appservice_slack_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-slack.service removal
|
- name: Ensure systemd reloaded after matrix-appservice-slack.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_slack_service_stat.stat.exists"
|
when: "matrix_appservice_slack_service_stat.stat.exists"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
- "matrix_appservice_slack_id_token"
|
- "matrix_appservice_slack_id_token"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed settings
|
- name: (Deprecation) Catch and report renamed settings
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration contains a variable, which now has a different name.
|
Your configuration contains a variable, which now has a different name.
|
||||||
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-appservice-webhooks role needs to execute before the matrix-synapse role.
|
The matrix-bridge-appservice-webhooks role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_synapse_role_executed | default(False)"
|
when: "matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-webhooks.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-webhooks.service'] }}"
|
||||||
when: matrix_appservice_webhooks_enabled | bool
|
when: matrix_appservice_webhooks_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
@ -31,14 +31,14 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-appservice-webhooks role needs to execute before the matrix-synapse role.
|
The matrix-bridge-appservice-webhooks role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_synapse_role_executed | default(False)"
|
when: "matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Fail if matrix-nginx-proxy role already executed
|
- name: Fail if matrix-nginx-proxy role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Trying to append webhooks Appservice's reverse-proxying configuration to matrix-nginx-proxy,
|
Trying to append webhooks Appservice's reverse-proxying configuration to matrix-nginx-proxy,
|
||||||
but it's pointless since the matrix-nginx-proxy role had already executed.
|
but it's pointless since the matrix-nginx-proxy role had already executed.
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
when: matrix_nginx_proxy_role_executed | default(False) | bool
|
when: matrix_nginx_proxy_role_executed | default(False) | bool
|
||||||
|
|
||||||
- name: Generate Matrix Appservice webhooks proxying configuration for matrix-nginx-proxy
|
- name: Generate Matrix Appservice webhooks proxying configuration for matrix-nginx-proxy
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_appservice_webhooks_matrix_nginx_proxy_configuration: |
|
matrix_appservice_webhooks_matrix_nginx_proxy_configuration: |
|
||||||
{% if matrix_nginx_proxy_enabled | default(False) %}
|
{% if matrix_nginx_proxy_enabled | default(False) %}
|
||||||
{# Use the embedded DNS resolver in Docker containers to discover the service #}
|
{# Use the embedded DNS resolver in Docker containers to discover the service #}
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- name: Register webhooks Appservice proxying configuration with matrix-nginx-proxy
|
- name: Register webhooks Appservice proxying configuration with matrix-nginx-proxy
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
|
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
|
||||||
{{
|
{{
|
||||||
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks | default([])
|
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks | default([])
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
when: matrix_appservice_webhooks_enabled | bool
|
when: matrix_appservice_webhooks_enabled | bool
|
||||||
|
|
||||||
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
|
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
msg: >-
|
msg: >-
|
||||||
NOTE: You've enabled the Matrix webhooks bridge but are not using the matrix-nginx-proxy
|
NOTE: You've enabled the Matrix webhooks bridge but are not using the matrix-nginx-proxy
|
||||||
reverse proxy.
|
reverse proxy.
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_webhooks_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_webhooks_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-webhooks
|
- setup-appservice-webhooks
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_appservice_webhooks_enabled | bool"
|
when: "run_setup | bool and matrix_appservice_webhooks_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-appservice-webhooks
|
- setup-appservice-webhooks
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_appservice_webhooks_enabled | bool"
|
when: "run_setup | bool and not matrix_appservice_webhooks_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure AppService webhooks paths exist
|
- name: Ensure AppService webhooks paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Ensure Appservice webhooks repository is present on self-build
|
- name: Ensure Appservice webhooks repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_appservice_webhooks_container_image_self_build_repo }}"
|
repo: "{{ matrix_appservice_webhooks_container_image_self_build_repo }}"
|
||||||
dest: "{{ matrix_appservice_webhooks_docker_src_files_path }}"
|
dest: "{{ matrix_appservice_webhooks_docker_src_files_path }}"
|
||||||
version: "{{ matrix_appservice_webhooks_container_image_self_build_repo_version }}"
|
version: "{{ matrix_appservice_webhooks_container_image_self_build_repo_version }}"
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
when: "matrix_appservice_webhooks_container_image_self_build | bool"
|
when: "matrix_appservice_webhooks_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure Matrix Appservice webhooks config is installed
|
- name: Ensure Matrix Appservice webhooks config is installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_webhooks_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_webhooks_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_webhooks_config_path }}/config.yaml"
|
dest: "{{ matrix_appservice_webhooks_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure Matrix Appservice webhooks schema.yml template exists
|
- name: Ensure Matrix Appservice webhooks schema.yml template exists
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/schema.yml.j2"
|
src: "{{ role_path }}/templates/schema.yml.j2"
|
||||||
dest: "{{ matrix_appservice_webhooks_config_path }}/schema.yml"
|
dest: "{{ matrix_appservice_webhooks_config_path }}/schema.yml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure Matrix Appservice webhooks database.json template exists
|
- name: Ensure Matrix Appservice webhooks database.json template exists
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/database.json.j2"
|
src: "{{ role_path }}/templates/database.json.j2"
|
||||||
dest: "{{ matrix_appservice_webhooks_data_path }}/database.json"
|
dest: "{{ matrix_appservice_webhooks_data_path }}/database.json"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure appservice-webhooks registration.yaml installed
|
- name: Ensure appservice-webhooks registration.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_appservice_webhooks_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_appservice_webhooks_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_appservice_webhooks_config_path }}/webhooks-registration.yaml"
|
dest: "{{ matrix_appservice_webhooks_config_path }}/webhooks-registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -82,13 +82,13 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-webhooks.service installed
|
- name: Ensure matrix-appservice-webhooks.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-webhooks.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-appservice-webhooks.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-appservice-webhooks.service"
|
dest: "{{ matrix_systemd_path }}/matrix-appservice-webhooks.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_appservice_webhooks_systemd_service_result
|
register: matrix_appservice_webhooks_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-webhooks.service installation
|
- name: Ensure systemd reloaded after matrix-appservice-webhooks.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_webhooks_systemd_service_result.changed"
|
when: "matrix_appservice_webhooks_systemd_service_result.changed"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-webhooks service
|
- name: Check existence of matrix-appservice-webhooks service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-webhooks.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-webhooks.service"
|
||||||
register: matrix_appservice_webhooks_service_stat
|
register: matrix_appservice_webhooks_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-webhooks is stopped
|
- name: Ensure matrix-appservice-webhooks is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-appservice-webhooks
|
name: matrix-appservice-webhooks
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-webhooks.service doesn't exist
|
- name: Ensure matrix-appservice-webhooks.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-appservice-webhooks.service"
|
path: "{{ matrix_systemd_path }}/matrix-appservice-webhooks.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-appservice-webhooks.service removal
|
- name: Ensure systemd reloaded after matrix-appservice-webhooks.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-beeper-linkedin.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-beeper-linkedin.service'] }}"
|
||||||
when: matrix_beeper_linkedin_enabled | bool
|
when: matrix_beeper_linkedin_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_beeper_linkedin_enabled | bool"
|
when: "run_setup | bool and matrix_beeper_linkedin_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-beeper-linkedin
|
- setup-beeper-linkedin
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup and matrix_beeper_linkedin_enabled"
|
when: "run_setup and matrix_beeper_linkedin_enabled"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-beeper-linkedin
|
- setup-beeper-linkedin
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup and not matrix_beeper_linkedin_enabled"
|
when: "run_setup and not matrix_beeper_linkedin_enabled"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-beeper-linkedin role needs to execute before the matrix-synapse role.
|
The matrix-bridge-beeper-linkedin role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_synapse_role_executed | default(False)"
|
when: "matrix_synapse_role_executed | default(False)"
|
||||||
- name: Ensure Beeper LinkedIn paths exists
|
- name: Ensure Beeper LinkedIn paths exists
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Ensure Beeper LinkedIn repository is present on self-build
|
- name: Ensure Beeper LinkedIn repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_beeper_linkedin_container_image_self_build_repo }}"
|
repo: "{{ matrix_beeper_linkedin_container_image_self_build_repo }}"
|
||||||
dest: "{{ matrix_beeper_linkedin_docker_src_files_path }}"
|
dest: "{{ matrix_beeper_linkedin_docker_src_files_path }}"
|
||||||
version: "{{ matrix_beeper_linkedin_container_image_self_build_branch }}"
|
version: "{{ matrix_beeper_linkedin_container_image_self_build_branch }}"
|
||||||
|
@ -48,7 +48,8 @@
|
||||||
# Building the container image (using the default Dockerfile) requires that a docker-requirements.txt file be generated.
|
# Building the container image (using the default Dockerfile) requires that a docker-requirements.txt file be generated.
|
||||||
# See: https://gitlab.com/beeper/linkedin/-/blob/94442db17ccb9769b377cdb8e4bf1cb3955781d7/.gitlab-ci.yml#L30-40
|
# See: https://gitlab.com/beeper/linkedin/-/blob/94442db17ccb9769b377cdb8e4bf1cb3955781d7/.gitlab-ci.yml#L30-40
|
||||||
- name: Ensure docker-requirements.txt is generated before building Beeper LinkedIn Docker Image
|
- name: Ensure docker-requirements.txt is generated before building Beeper LinkedIn Docker Image
|
||||||
command: |
|
ansible.builtin.command:
|
||||||
|
cmd: |
|
||||||
{{ matrix_host_command_docker }} run \
|
{{ matrix_host_command_docker }} run \
|
||||||
--rm \
|
--rm \
|
||||||
--entrypoint=/bin/sh \
|
--entrypoint=/bin/sh \
|
||||||
|
@ -56,6 +57,8 @@
|
||||||
-w /work \
|
-w /work \
|
||||||
docker.io/python:3.9.6-buster \
|
docker.io/python:3.9.6-buster \
|
||||||
-c "pip install poetry && poetry export --without-hashes -E e2be -E images -E metrics | sed 's/==.*//g' > docker-requirements.txt"
|
-c "pip install poetry && poetry export --without-hashes -E e2be -E images -E metrics | sed 's/==.*//g' > docker-requirements.txt"
|
||||||
|
register: matrix_beeper_linkedin_generate_docker_requirements_result
|
||||||
|
changed_when: matrix_beeper_linkedin_generate_docker_requirements_result.rc == 0
|
||||||
|
|
||||||
- name: Ensure Beeper LinkedIn Docker image is built
|
- name: Ensure Beeper LinkedIn Docker image is built
|
||||||
docker_image:
|
docker_image:
|
||||||
|
@ -72,7 +75,7 @@
|
||||||
when: "matrix_beeper_linkedin_container_image_self_build | bool"
|
when: "matrix_beeper_linkedin_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Ensure beeper-linkedin config.yaml installed
|
- name: Ensure beeper-linkedin config.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_beeper_linkedin_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_beeper_linkedin_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_beeper_linkedin_config_path }}/config.yaml"
|
dest: "{{ matrix_beeper_linkedin_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -80,7 +83,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure beeper-linkedin registration.yaml installed
|
- name: Ensure beeper-linkedin registration.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_beeper_linkedin_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_beeper_linkedin_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_beeper_linkedin_config_path }}/registration.yaml"
|
dest: "{{ matrix_beeper_linkedin_config_path }}/registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -88,13 +91,13 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-beeper-linkedin.service installed
|
- name: Ensure matrix-beeper-linkedin.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-beeper-linkedin.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-beeper-linkedin.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-beeper-linkedin.service"
|
dest: "{{ matrix_systemd_path }}/matrix-beeper-linkedin.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_beeper_linkedin_systemd_service_result
|
register: matrix_beeper_linkedin_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-beeper-linkedin.service installation
|
- name: Ensure systemd reloaded after matrix-beeper-linkedin.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_beeper_linkedin_systemd_service_result.changed"
|
when: "matrix_beeper_linkedin_systemd_service_result.changed"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-beeper-linkedin service
|
- name: Check existence of matrix-beeper-linkedin service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-beeper-linkedin.service"
|
path: "{{ matrix_systemd_path }}/matrix-beeper-linkedin.service"
|
||||||
register: matrix_beeper_linkedin_service_stat
|
register: matrix_beeper_linkedin_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-beeper-linkedin is stopped
|
- name: Ensure matrix-beeper-linkedin is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-beeper-linkedin
|
name: matrix-beeper-linkedin
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-beeper-linkedin.service doesn't exist
|
- name: Ensure matrix-beeper-linkedin.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-beeper-linkedin.service"
|
path: "{{ matrix_systemd_path }}/matrix-beeper-linkedin.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-beeper-linkedin.service removal
|
- name: Ensure systemd reloaded after matrix-beeper-linkedin.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-go-skype-bridge.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-go-skype-bridge.service'] }}"
|
||||||
when: matrix_go_skype_bridge_enabled | bool
|
when: matrix_go_skype_bridge_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
||||||
when: "run_setup | bool and matrix_go_skype_bridge_enabled | bool"
|
when: "run_setup | bool and matrix_go_skype_bridge_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-go-skype-bridge
|
- setup-go-skype-bridge
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_go_skype_bridge_enabled | bool"
|
when: "run_setup | bool and matrix_go_skype_bridge_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-go-skype-bridge
|
- setup-go-skype-bridge
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_go_skype_bridge_enabled | bool"
|
when: "run_setup | bool and not matrix_go_skype_bridge_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -3,22 +3,22 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-go-skype-bridge role needs to execute before the matrix-synapse role.
|
The matrix-bridge-go-skype-bridge role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_synapse_role_executed | default(False)"
|
when: "matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_go_skype_bridge_requires_restart: false
|
matrix_go_skype_bridge_requires_restart: false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Check if an SQLite database already exists
|
- name: Check if an SQLite database already exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_go_skype_bridge_sqlite_database_path_local }}"
|
path: "{{ matrix_go_skype_bridge_sqlite_database_path_local }}"
|
||||||
register: matrix_go_skype_bridge_sqlite_database_path_local_stat_result
|
register: matrix_go_skype_bridge_sqlite_database_path_local_stat_result
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_postgres_db_migration_request:
|
matrix_postgres_db_migration_request:
|
||||||
src: "{{ matrix_go_skype_bridge_sqlite_database_path_local }}"
|
src: "{{ matrix_go_skype_bridge_sqlite_database_path_local }}"
|
||||||
dst: "{{ matrix_go_skype_bridge_database_connection_string }}"
|
dst: "{{ matrix_go_skype_bridge_database_connection_string }}"
|
||||||
|
@ -28,16 +28,18 @@
|
||||||
systemd_services_to_stop: ['matrix-go-skype-bridge.service']
|
systemd_services_to_stop: ['matrix-go-skype-bridge.service']
|
||||||
pgloader_options: ['--with "quote identifiers"']
|
pgloader_options: ['--with "quote identifiers"']
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/migrate_db_to_postgres.yml"
|
- ansible.builtin.import_role:
|
||||||
|
name: matrix-postgres
|
||||||
|
tasks_from: migrate_db_to_postgres
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_go_skype_bridge_requires_restart: true
|
matrix_go_skype_bridge_requires_restart: true
|
||||||
when: "matrix_go_skype_bridge_sqlite_database_path_local_stat_result.stat.exists | bool"
|
when: "matrix_go_skype_bridge_sqlite_database_path_local_stat_result.stat.exists | bool"
|
||||||
when: "matrix_go_skype_bridge_database_engine == 'postgres'"
|
when: "matrix_go_skype_bridge_database_engine == 'postgres'"
|
||||||
|
|
||||||
|
|
||||||
- name: Ensure Go Skype Bridge paths exists
|
- name: Ensure Go Skype Bridge paths exists
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -63,7 +65,7 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure Go Skype Bridge repository is present on self-build
|
- name: Ensure Go Skype Bridge repository is present on self-build
|
||||||
git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_go_skype_bridge_container_image_self_build_repo }}"
|
repo: "{{ matrix_go_skype_bridge_container_image_self_build_repo }}"
|
||||||
dest: "{{ matrix_go_skype_bridge_docker_src_files_path }}"
|
dest: "{{ matrix_go_skype_bridge_docker_src_files_path }}"
|
||||||
version: "{{ matrix_go_skype_bridge_container_image_self_build_branch }}"
|
version: "{{ matrix_go_skype_bridge_container_image_self_build_branch }}"
|
||||||
|
@ -86,17 +88,17 @@
|
||||||
when: "matrix_go_skype_bridge_container_image_self_build | bool"
|
when: "matrix_go_skype_bridge_container_image_self_build | bool"
|
||||||
|
|
||||||
- name: Check if an old database file exists
|
- name: Check if an old database file exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db"
|
path: "{{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db"
|
||||||
register: matrix_go_skype_bridge_stat_database
|
register: matrix_go_skype_bridge_stat_database
|
||||||
|
|
||||||
- name: Check if an old matrix state file exists
|
- name: Check if an old matrix state file exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_go_skype_bridge_base_path }}/mx-state.json"
|
path: "{{ matrix_go_skype_bridge_base_path }}/mx-state.json"
|
||||||
register: matrix_go_skype_bridge_stat_mx_state
|
register: matrix_go_skype_bridge_stat_mx_state
|
||||||
|
|
||||||
- name: (Data relocation) Ensure matrix-go-skype-bridge.service is stopped
|
- name: (Data relocation) Ensure matrix-go-skype-bridge.service is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-go-skype-bridge
|
name: matrix-go-skype-bridge
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -105,15 +107,15 @@
|
||||||
when: "matrix_go_skype_bridge_stat_database.stat.exists"
|
when: "matrix_go_skype_bridge_stat_database.stat.exists"
|
||||||
|
|
||||||
- name: (Data relocation) Move go-skype-bridge database file to ./data directory
|
- name: (Data relocation) Move go-skype-bridge database file to ./data directory
|
||||||
command: "mv {{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db {{ matrix_go_skype_bridge_data_path }}/go-skype-bridge.db"
|
ansible.builtin.command: "mv {{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db {{ matrix_go_skype_bridge_data_path }}/go-skype-bridge.db"
|
||||||
when: "matrix_go_skype_bridge_stat_database.stat.exists"
|
when: "matrix_go_skype_bridge_stat_database.stat.exists"
|
||||||
|
|
||||||
- name: (Data relocation) Move go-skype-bridge mx-state file to ./data directory
|
- name: (Data relocation) Move go-skype-bridge mx-state file to ./data directory
|
||||||
command: "mv {{ matrix_go_skype_bridge_base_path }}/mx-state.json {{ matrix_go_skype_bridge_data_path }}/mx-state.json"
|
ansible.builtin.command: "mv {{ matrix_go_skype_bridge_base_path }}/mx-state.json {{ matrix_go_skype_bridge_data_path }}/mx-state.json"
|
||||||
when: "matrix_go_skype_bridge_stat_mx_state.stat.exists"
|
when: "matrix_go_skype_bridge_stat_mx_state.stat.exists"
|
||||||
|
|
||||||
- name: Ensure go-skype-bridge config.yaml installed
|
- name: Ensure go-skype-bridge config.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_go_skype_bridge_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_go_skype_bridge_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_go_skype_bridge_config_path }}/config.yaml"
|
dest: "{{ matrix_go_skype_bridge_config_path }}/config.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -121,7 +123,7 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure go-skype-bridge registration.yaml installed
|
- name: Ensure go-skype-bridge registration.yaml installed
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_go_skype_bridge_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_go_skype_bridge_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_go_skype_bridge_config_path }}/registration.yaml"
|
dest: "{{ matrix_go_skype_bridge_config_path }}/registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -129,19 +131,19 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-go-skype-bridge.service installed
|
- name: Ensure matrix-go-skype-bridge.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-go-skype-bridge.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-go-skype-bridge.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-go-skype-bridge.service"
|
dest: "{{ matrix_systemd_path }}/matrix-go-skype-bridge.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_go_skype_bridge_systemd_service_result
|
register: matrix_go_skype_bridge_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-go-skype-bridge.service installation
|
- name: Ensure systemd reloaded after matrix-go-skype-bridge.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_go_skype_bridge_systemd_service_result.changed"
|
when: "matrix_go_skype_bridge_systemd_service_result.changed"
|
||||||
|
|
||||||
- name: Ensure matrix-go-skype-bridge.service restarted, if necessary
|
- name: Ensure matrix-go-skype-bridge.service restarted, if necessary
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: "matrix-go-skype-bridge.service"
|
name: "matrix-go-skype-bridge.service"
|
||||||
state: restarted
|
state: restarted
|
||||||
when: "matrix_go_skype_bridge_requires_restart | bool"
|
when: "matrix_go_skype_bridge_requires_restart | bool"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-go-skype-bridge service
|
- name: Check existence of matrix-go-skype-bridge service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "/etc/systemd/system/matrix-go-skype-bridge.service"
|
path: "/etc/systemd/system/matrix-go-skype-bridge.service"
|
||||||
register: matrix_go_skype_bridge_service_stat
|
register: matrix_go_skype_bridge_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-go-skype-bridge is stopped
|
- name: Ensure matrix-go-skype-bridge is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-go-skype-bridge
|
name: matrix-go-skype-bridge
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_go_skype_bridge_service_stat.stat.exists"
|
when: "matrix_go_skype_bridge_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-go-skype-bridge.service doesn't exist
|
- name: Ensure matrix-go-skype-bridge.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "/etc/systemd/system/matrix-go-skype-bridge.service"
|
path: "/etc/systemd/system/matrix-go-skype-bridge.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_go_skype_bridge_service_stat.stat.exists"
|
when: "matrix_go_skype_bridge_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-go-skype-bridge.service removal
|
- name: Ensure systemd reloaded after matrix-go-skype-bridge.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_go_skype_bridge_service_stat.stat.exists"
|
when: "matrix_go_skype_bridge_service_stat.stat.exists"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required settings not defined
|
- name: Fail if required settings not defined
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
You need to define a required configuration setting (`{{ item }}`).
|
You need to define a required configuration setting (`{{ item }}`).
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
||||||
# We don't want to fail in such cases.
|
# We don't want to fail in such cases.
|
||||||
- name: Fail if matrix-synapse role already executed
|
- name: Fail if matrix-synapse role already executed
|
||||||
fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
The matrix-bridge-heisenbridge role needs to execute before the matrix-synapse role.
|
The matrix-bridge-heisenbridge role needs to execute before the matrix-synapse role.
|
||||||
when: "matrix_heisenbridge_enabled and matrix_synapse_role_executed | default(False)"
|
when: "matrix_heisenbridge_enabled and matrix_synapse_role_executed | default(False)"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-heisenbridge.service'] }}"
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-heisenbridge.service'] }}"
|
||||||
when: matrix_heisenbridge_enabled | bool
|
when: matrix_heisenbridge_enabled | bool
|
||||||
|
|
||||||
# If the matrix-synapse role is not used, these variables may not exist.
|
# If the matrix-synapse role is not used, these variables may not exist.
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_synapse_container_extra_arguments: >
|
matrix_synapse_container_extra_arguments: >
|
||||||
{{
|
{{
|
||||||
matrix_synapse_container_extra_arguments | default([])
|
matrix_synapse_container_extra_arguments | default([])
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/init.yml"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||||
when: "run_setup | bool and matrix_heisenbridge_enabled | bool"
|
when: "run_setup | bool and matrix_heisenbridge_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- setup-heisenbridge
|
- setup-heisenbridge
|
||||||
|
|
||||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||||
when: "run_setup | bool and not matrix_heisenbridge_enabled | bool"
|
when: "run_setup | bool and not matrix_heisenbridge_enabled | bool"
|
||||||
tags:
|
tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure heisenbridge paths exist
|
- name: Ensure heisenbridge paths exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0750
|
mode: 0750
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
- "{{ matrix_heisenbridge_base_path }}"
|
- "{{ matrix_heisenbridge_base_path }}"
|
||||||
|
|
||||||
- name: Ensure heisenbridge registration.yaml installed if provided
|
- name: Ensure heisenbridge registration.yaml installed if provided
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_heisenbridge_registration | to_nice_yaml(indent=2, width=999999) }}"
|
content: "{{ matrix_heisenbridge_registration | to_nice_yaml(indent=2, width=999999) }}"
|
||||||
dest: "{{ matrix_heisenbridge_base_path }}/registration.yaml"
|
dest: "{{ matrix_heisenbridge_base_path }}/registration.yaml"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -30,13 +30,13 @@
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure matrix-heisenbridge.service installed
|
- name: Ensure matrix-heisenbridge.service installed
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-heisenbridge.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-heisenbridge.service.j2"
|
||||||
dest: "{{ matrix_systemd_path }}/matrix-heisenbridge.service"
|
dest: "{{ matrix_systemd_path }}/matrix-heisenbridge.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
register: matrix_heisenbridge_systemd_service_result
|
register: matrix_heisenbridge_systemd_service_result
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-heisenbridge.service installation
|
- name: Ensure systemd reloaded after matrix-heisenbridge.service installation
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: matrix_heisenbridge_systemd_service_result.changed
|
when: matrix_heisenbridge_systemd_service_result.changed
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Check existence of matrix-heisenbridge service
|
- name: Check existence of matrix-heisenbridge service
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-heisenbridge.service"
|
path: "{{ matrix_systemd_path }}/matrix-heisenbridge.service"
|
||||||
register: matrix_heisenbridge_service_stat
|
register: matrix_heisenbridge_service_stat
|
||||||
|
|
||||||
- name: Ensure matrix-heisenbridge is stopped
|
- name: Ensure matrix-heisenbridge is stopped
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: matrix-heisenbridge
|
name: matrix-heisenbridge
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -14,12 +14,12 @@
|
||||||
when: "matrix_heisenbridge_service_stat.stat.exists"
|
when: "matrix_heisenbridge_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-heisenbridge.service doesn't exist
|
- name: Ensure matrix-heisenbridge.service doesn't exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-heisenbridge.service"
|
path: "{{ matrix_systemd_path }}/matrix-heisenbridge.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_heisenbridge_service_stat.stat.exists"
|
when: "matrix_heisenbridge_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure systemd reloaded after matrix-heisenbridge.service removal
|
- name: Ensure systemd reloaded after matrix-heisenbridge.service removal
|
||||||
service:
|
ansible.builtin.service:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: "matrix_heisenbridge_service_stat.stat.exists"
|
when: "matrix_heisenbridge_service_stat.stat.exists"
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue