mirror of
				https://github.com/spantaleev/matrix-docker-ansible-deploy.git
				synced 2025-10-30 23:07:57 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # See https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1070
 | |
| # and https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/1ab507349c752042d26def3e95884f6df8886b74#commitcomment-51108407
 | |
| - name: Fail if trying to self-build on Ansible < 2.8
 | |
|   fail:
 | |
|     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"
 | |
| 
 | |
| # 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-slack 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-slack.service'] }}"
 | |
|   when: matrix_appservice_slack_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_slack_config_path }}/slack-registration.yaml,dst=/matrix-appservice-slack-registration.yaml,ro"]
 | |
| 
 | |
|     matrix_synapse_app_service_config_files: >
 | |
|       {{ matrix_synapse_app_service_config_files|default([]) }}
 | |
|       +
 | |
|       {{ ["/matrix-appservice-slack-registration.yaml"] }}
 | |
|   when: matrix_appservice_slack_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-slack 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 Slack 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-slack role.
 | |
|     when: matrix_nginx_proxy_role_executed|default(False)|bool
 | |
| 
 | |
|   - name: Generate Matrix Appservice Slack proxying configuration for matrix-nginx-proxy
 | |
|     set_fact:
 | |
|       matrix_appservice_slack_matrix_nginx_proxy_configuration: |
 | |
|         location {{ matrix_appservice_slack_public_endpoint }} {
 | |
|         {% if matrix_nginx_proxy_enabled|default(False) %}
 | |
|         	{# Use the embedded DNS resolver in Docker containers to discover the service #}
 | |
|         	resolver 127.0.0.11 valid=5s;
 | |
|         	set $backend "{{ matrix_appservice_slack_appservice_url }}:{{ matrix_appservice_slack_slack_port }}";
 | |
|         	proxy_pass $backend;
 | |
|         {% else %}
 | |
|         	{# Generic configuration for use outside of our container setup #}
 | |
|         	proxy_pass http://127.0.0.1:{{ matrix_appservice_slack_slack_port }};
 | |
|         {% endif %}
 | |
|         }
 | |
| 
 | |
|   - name: Register Slack 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_slack_matrix_nginx_proxy_configuration]
 | |
|         }}
 | |
|   tags:
 | |
|    - always
 | |
|   when: matrix_appservice_slack_enabled|bool
 | |
| 
 | |
| - name: Warn about reverse-proxying if matrix-nginx-proxy not used
 | |
|   debug:
 | |
|     msg: >-
 | |
|       NOTE: You've enabled the Matrix Slack bridge but are not using the matrix-nginx-proxy
 | |
|       reverse proxy.
 | |
|       Please make sure that you're proxying the `{{ something }}`
 | |
|       URL endpoint to the matrix-appservice-slack container.
 | |
|       You can expose the container's port using the `matrix_appservice_slack_container_http_host_bind_port` variable.
 | |
|   when: "matrix_appservice_slack_enabled|bool and matrix_nginx_proxy_enabled is not defined"
 |