mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2024-12-27 03:18:31 +01:00
410a915a8a
This paves the way for installing other roles into `roles/galaxy` using `ansible-galaxy`, similar to how it's done in: - https://github.com/spantaleev/gitea-docker-ansible-deploy - https://github.com/spantaleev/nextcloud-docker-ansible-deploy In the near future, we'll be removing a lot of the shared role code from here and using upstream roles for it. Some of the core `matrix-*` roles have already been extracted out into other reusable roles: - https://github.com/devture/com.devture.ansible.role.postgres - https://github.com/devture/com.devture.ansible.role.systemd_docker_base - https://github.com/devture/com.devture.ansible.role.timesync - https://github.com/devture/com.devture.ansible.role.vars_preserver - https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages - https://github.com/devture/com.devture.ansible.role.playbook_help We just need to migrate to those.
92 lines
5.6 KiB
YAML
92 lines
5.6 KiB
YAML
---
|
|
|
|
- name: Fail if invalid homeserver implementation
|
|
ansible.builtin.fail:
|
|
msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`"
|
|
when: "matrix_homeserver_implementation not in ['synapse', 'dendrite', 'conduit']"
|
|
|
|
# We generally support Ansible 2.7.1 and above.
|
|
- name: Fail if running on Ansible < 2.7.1
|
|
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"
|
|
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)"
|
|
|
|
# Though we do not support Ansible 2.9.6 which is buggy
|
|
- name: Fail if running on Ansible 2.9.6 on Ubuntu
|
|
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"
|
|
when:
|
|
- ansible_distribution == 'Ubuntu'
|
|
- "ansible_version.major == 2 and ansible_version.minor == 9 and ansible_version.revision == 6"
|
|
|
|
- name: (Deprecation) Catch and report renamed settings
|
|
ansible.builtin.fail:
|
|
msg: >-
|
|
Your configuration contains a variable, which now has a different name.
|
|
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
|
|
when: "item.old in vars"
|
|
with_items:
|
|
- {'old': 'host_specific_hostname_identity', 'new': 'matrix_domain'}
|
|
- {'old': 'hostname_identity', 'new': 'matrix_domain'}
|
|
- {'old': 'hostname_matrix', 'new': 'matrix_server_fqn_matrix'}
|
|
- {'old': 'hostname_riot', 'new': 'matrix_server_fqn_element'}
|
|
- {'old': 'matrix_server_fqn_riot', 'new': 'matrix_server_fqn_element'}
|
|
|
|
# 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
|
|
ansible.builtin.fail:
|
|
msg: |
|
|
The `matrix_homeserver_generic_secret_key` variable must be defined and have a non-null and non-empty value.
|
|
|
|
If you're observing this error on a new installation, you should ensure that the `matrix_homeserver_generic_secret_key` is defined.
|
|
|
|
If you're observing this error on an existing homeserver installation, you can fix it easily and in a backward-compatible way by adding
|
|
`{% raw %}matrix_homeserver_generic_secret_key: "{{ matrix_synapse_macaroon_secret_key }}"{% endraw %}`
|
|
to your `vars.yml` file. Using another secret value for the new variable is also possible and shouldn't cause any trouble.
|
|
when: "matrix_homeserver_generic_secret_key is none or matrix_homeserver_generic_secret_key == ''"
|
|
|
|
- name: Fail if required variables are undefined
|
|
ansible.builtin.fail:
|
|
msg: "The `{{ item.var }}` variable must be defined and have a non-null and non-empty value"
|
|
with_items:
|
|
- {'var': matrix_domain, 'value': "{{ matrix_domain | default('') }}"}
|
|
- {'var': matrix_server_fqn_matrix, 'value': "{{ matrix_server_fqn_matrix | default('') }}"}
|
|
- {'var': matrix_server_fqn_element, 'value': "{{ matrix_server_fqn_element | default('') }}"}
|
|
- {'var': matrix_homeserver_container_url, 'value': "{{ matrix_homeserver_container_url | default('') }}"}
|
|
- {'var': matrix_homeserver_container_federation_url, 'value': "{{ matrix_homeserver_container_federation_url | default('') }}"}
|
|
when: "item.value is none or item.value == ''"
|
|
|
|
- name: Fail if uppercase domain used
|
|
ansible.builtin.fail:
|
|
msg: "Detected that you're using an uppercase domain name - `{{ item }}`. This will cause trouble. Please use all-lowercase!"
|
|
with_items:
|
|
- "{{ matrix_domain }}"
|
|
- "{{ matrix_server_fqn_matrix }}"
|
|
- "{{ matrix_server_fqn_element }}"
|
|
when: "item != item | lower"
|
|
|
|
- name: Fail if using python2 on Archlinux
|
|
ansible.builtin.fail:
|
|
msg: "Detected that you're using python2 when installing onto Archlinux. Archlinux by default only supports python3."
|
|
when:
|
|
- ansible_distribution == 'Archlinux'
|
|
- ansible_python.version.major != 3
|
|
|
|
- name: Fail if architecture is set incorrectly
|
|
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 }}."
|
|
when: (ansible_architecture == "x86_64" and matrix_architecture != "amd64") or
|
|
(ansible_architecture == "aarch64" and matrix_architecture != "arm64") or
|
|
(ansible_architecture.startswith("armv") and matrix_architecture != "arm32")
|
|
|
|
- name: Fail if encountering usage of removed role (mx-puppet-skype)
|
|
ansible.builtin.fail:
|
|
msg: >-
|
|
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.
|
|
To get rid of this error, remove all `matrix_mx_puppet_*` references from your configuration.
|
|
To clean up your server from mx-puppet-skype's presence, see this changelog entry: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#mx-puppet-skype-removal.
|
|
If you still need bridging to Skype, consider switching to the go-skype bridge instead. See `docs/configuring-playbook-bridge-go-skype-bridge.md`.
|
|
when: "'matrix_mx_puppet_skype_enabled' in vars"
|