677a2fc503
Details here: https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_6.html#id36 Basically: ```yaml - name: Prior to 2.13 debug: msg: '[1] + {{ [2] }}' - name: 2.13 and forward debug: msg: '{{ [1] + [2] }}' ``` Interestingly, we had been using the new/safe syntax in lofs of places. We were using the broken one in many others though. Hopefully all instances were fixed by this patch.
87 lines
3.9 KiB
YAML
87 lines
3.9 KiB
YAML
---
|
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
|
# We don't want to fail in such cases.
|
|
- name: Fail if matrix-synapse role already executed
|
|
fail:
|
|
msg: >-
|
|
The matrix-bridge-appservice-webhooks role needs to execute before the matrix-synapse role.
|
|
when: "matrix_synapse_role_executed|default(False)"
|
|
|
|
- set_fact:
|
|
matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-appservice-webhooks.service'] }}"
|
|
when: matrix_appservice_webhooks_enabled|bool
|
|
|
|
# If the matrix-synapse role is not used, these variables may not exist.
|
|
- set_fact:
|
|
matrix_synapse_container_extra_arguments: >
|
|
{{
|
|
matrix_synapse_container_extra_arguments|default([])
|
|
+
|
|
["--mount type=bind,src={{ matrix_appservice_webhooks_config_path }}/webhooks-registration.yaml,dst=/matrix-appservice-webhooks-registration.yaml,ro"]
|
|
}}
|
|
|
|
matrix_synapse_app_service_config_files: >
|
|
{{
|
|
matrix_synapse_app_service_config_files|default([])
|
|
+
|
|
["/matrix-appservice-webhooks-registration.yaml"]
|
|
}}
|
|
when: matrix_appservice_webhooks_enabled|bool
|
|
|
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
|
# We don't want to fail in such cases.
|
|
- name: Fail if matrix-synapse role already executed
|
|
fail:
|
|
msg: >-
|
|
The matrix-bridge-appservice-webhooks role needs to execute before the matrix-synapse role.
|
|
when: "matrix_synapse_role_executed|default(False)"
|
|
|
|
- block:
|
|
- name: Fail if matrix-nginx-proxy role already executed
|
|
fail:
|
|
msg: >-
|
|
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.
|
|
To fix this, please change the order of roles in your playbook,
|
|
so that the matrix-nginx-proxy role would run after the matrix-bridge-appservice-webhooks role.
|
|
when: matrix_nginx_proxy_role_executed|default(False)|bool
|
|
|
|
- name: Generate Matrix Appservice webhooks proxying configuration for matrix-nginx-proxy
|
|
set_fact:
|
|
matrix_appservice_webhooks_matrix_nginx_proxy_configuration: |
|
|
{% if matrix_nginx_proxy_enabled|default(False) %}
|
|
{# Use the embedded DNS resolver in Docker containers to discover the service #}
|
|
location ~ ^{{ matrix_appservice_webhooks_public_endpoint }}/(.*)$ {
|
|
resolver 127.0.0.11 valid=5s;
|
|
set $backend "matrix-appservice-webhooks:{{ matrix_appservice_webhooks_matrix_port }}";
|
|
proxy_pass http://$backend/$1;
|
|
}
|
|
{% else %}
|
|
{# Generic configuration for use outside of our container setup #}
|
|
location {{ matrix_appservice_webhooks_public_endpoint }}/ {
|
|
proxy_pass http://127.0.0.1:{{ matrix_appservice_webhooks_matrix_port }}/;
|
|
}
|
|
{% endif %}
|
|
|
|
- name: Register webhooks Appservice proxying configuration with matrix-nginx-proxy
|
|
set_fact:
|
|
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
|
|
{{
|
|
matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks|default([])
|
|
+
|
|
[matrix_appservice_webhooks_matrix_nginx_proxy_configuration]
|
|
}}
|
|
tags:
|
|
- always
|
|
when: matrix_appservice_webhooks_enabled|bool
|
|
|
|
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
|
|
debug:
|
|
msg: >-
|
|
NOTE: You've enabled the Matrix webhooks bridge but are not using the matrix-nginx-proxy
|
|
reverse proxy.
|
|
Please make sure that you're proxying the `{{ matrix_appservice_webhooks_public_endpoint }}`
|
|
URL endpoint to the matrix-appservice-webhooks container.
|
|
You can expose the container's port using the `matrix_appservice_webhooks_container_http_host_bind_port` variable.
|
|
when: "matrix_appservice_webhooks_enabled|bool and not matrix_nginx_proxy_enabled|default(False)|bool"
|