mirror of
				https://github.com/spantaleev/matrix-docker-ansible-deploy.git
				synced 2025-11-04 00:58:56 +01:00 
			
		
		
		
	
							
								
								
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# These are supported funding model platforms
 | 
			
		||||
 | 
			
		||||
# https://liberapay.com/s.pantaleev/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								.github/dependabot.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.github/dependabot.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
version: 2
 | 
			
		||||
updates:
 | 
			
		||||
  - package-ecosystem: "github-actions"
 | 
			
		||||
    directory: "/"
 | 
			
		||||
    schedule:
 | 
			
		||||
      interval: daily
 | 
			
		||||
							
								
								
									
										16
									
								
								.github/workflows/matrix.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/matrix.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
---
 | 
			
		||||
name: Matrix CI
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
  pull_request:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  yamllint:
 | 
			
		||||
    name: 🧹 yamllint
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: ⤵️ Check out configuration from GitHub
 | 
			
		||||
        uses: actions/checkout@v2.4.0
 | 
			
		||||
      - name: 🚀 Run yamllint
 | 
			
		||||
        uses: frenck/action-yamllint@v1.1.2
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
collections:
 | 
			
		||||
  - name: community.general
 | 
			
		||||
  - name: community.docker  
 | 
			
		||||
  - name: community.docker
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
version: '3'
 | 
			
		||||
services:
 | 
			
		||||
  nginx:
 | 
			
		||||
    image: local/nginx 
 | 
			
		||||
    image: local/nginx
 | 
			
		||||
    ports:
 | 
			
		||||
      - 40888:80
 | 
			
		||||
    volumes:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# The bare domain name which represents your Matrix identity.
 | 
			
		||||
# Matrix user ids for your server will be of the form (`@user:<matrix-domain>`).
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -1128,8 +1128,6 @@ matrix_corporal_matrix_registration_shared_secret: "{{ matrix_synapse_registrati
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-coturn
 | 
			
		||||
@@ -1164,8 +1162,6 @@ matrix_coturn_container_additional_volumes: |
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-dimension
 | 
			
		||||
@@ -1243,8 +1239,6 @@ matrix_dynamic_dns_enabled: false
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-email2matrix
 | 
			
		||||
@@ -1261,8 +1255,6 @@ matrix_email2matrix_container_image_self_build: "{{ matrix_architecture not in [
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-jitsi
 | 
			
		||||
@@ -1307,8 +1299,6 @@ matrix_jitsi_etherpad_base: "{{ matrix_etherpad_base_url if matrix_etherpad_enab
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-mailer
 | 
			
		||||
@@ -1328,8 +1318,6 @@ matrix_mailer_container_image_self_build: "{{ matrix_architecture not in ['amd64
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-ma1sd
 | 
			
		||||
@@ -1393,8 +1381,6 @@ matrix_ma1sd_database_password: "{{ '%s' | format(matrix_homeserver_generic_secr
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-nginx-proxy
 | 
			
		||||
@@ -1570,8 +1556,6 @@ matrix_ssl_pre_obtaining_required_service_name: "{{ 'matrix-dynamic-dns' if matr
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-postgres
 | 
			
		||||
@@ -1820,8 +1804,6 @@ matrix_postgres_import_databases_to_ignore: |
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-sygnal
 | 
			
		||||
@@ -1842,8 +1824,6 @@ matrix_sygnal_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enable
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-redis
 | 
			
		||||
@@ -1858,8 +1838,6 @@ matrix_redis_enabled: "{{ matrix_synapse_workers_enabled }}"
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-client-element
 | 
			
		||||
@@ -1907,8 +1885,6 @@ matrix_client_element_jitsi_preferredDomain: "{{ matrix_server_fqn_jitsi if matr
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-client-hydrogen
 | 
			
		||||
@@ -1932,8 +1908,6 @@ matrix_client_hydrogen_self_check_validate_certificates: "{{ false if matrix_ssl
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-client-cinny
 | 
			
		||||
@@ -1959,8 +1933,6 @@ matrix_client_cinny_self_check_validate_certificates: "{{ false if matrix_ssl_re
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-synapse
 | 
			
		||||
@@ -2071,8 +2043,6 @@ matrix_synapse_redis_password: "{{ matrix_redis_connection_password if matrix_re
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-synapse-admin
 | 
			
		||||
@@ -2094,8 +2064,6 @@ matrix_synapse_admin_container_image_self_build: "{{ matrix_architecture != 'amd
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-prometheus-node-exporter
 | 
			
		||||
@@ -2110,8 +2078,6 @@ matrix_prometheus_node_exporter_enabled: false
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-prometheus
 | 
			
		||||
@@ -2145,7 +2111,6 @@ matrix_prometheus_scraper_hookshot_targets: "{{ [matrix_hookshot_container_url|s
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-prometheus-postgres-exporter
 | 
			
		||||
@@ -2201,8 +2166,6 @@ matrix_grafana_systemd_wanted_services_list: |
 | 
			
		||||
#
 | 
			
		||||
######################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
######################################################################
 | 
			
		||||
#
 | 
			
		||||
# matrix-registration
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/setup.yml"
 | 
			
		||||
  when: run_stop|bool
 | 
			
		||||
  tags:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
matrix_awx_enabled: true
 | 
			
		||||
 | 
			
		||||
# Defaults for 'Customise Website + Access Export' template
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Record Backup Server variables locally on AWX
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
@@ -38,18 +39,18 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/backup_server.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  tags: use-survey
 | 
			
		||||
 | 
			
		||||
- name: Include vars in matrix_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Copy new 'matrix_vars.yml' to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
@@ -58,8 +59,8 @@
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
  tags: use-survey
 | 
			
		||||
 | 
			
		||||
- name: Run initial backup of /matrix/ and snapshot the database simultaneously 
 | 
			
		||||
  command: "{{ item }}" 
 | 
			
		||||
- name: Run initial backup of /matrix/ and snapshot the database simultaneously
 | 
			
		||||
  command: "{{ item }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - borgmatic -c /root/.config/borgmatic/config_1.yaml
 | 
			
		||||
    - /bin/sh /usr/local/bin/awx-export-service.sh 1 0
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Record Bridge Discord AppService variables locally on AWX
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
@@ -33,7 +34,7 @@
 | 
			
		||||
- name: Copy new 'Bridge Discord Appservice' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/bridge_discord_appservice.json'
 | 
			
		||||
    dest:  '/matrix/awx/bridge_discord_appservice.json'
 | 
			
		||||
    dest: '/matrix/awx/bridge_discord_appservice.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Bridge Discord Appservice' job template
 | 
			
		||||
@@ -54,4 +55,4 @@
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Collect current datetime
 | 
			
		||||
  set_fact:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Create a AWX session token for executing modules
 | 
			
		||||
  awx.awx.tower_token:
 | 
			
		||||
@@ -7,4 +8,4 @@
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_master_token }}"
 | 
			
		||||
  register: awx_session_token
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
#
 | 
			
		||||
# Create user and define if they are admin
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@
 | 
			
		||||
- name: Reload vars in matrix_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '{{ awx_cached_matrix_vars }}'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Save new 'Customise Website + Access Export' survey.json to the AWX tower, template
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
@@ -60,7 +60,7 @@
 | 
			
		||||
- name: Copy new 'Customise Website + Access Export' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_export.json'
 | 
			
		||||
    dest:  '/matrix/awx/configure_website_access_export.json'
 | 
			
		||||
    dest: '/matrix/awx/configure_website_access_export.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
  when: awx_customise_base_domain_website is defined
 | 
			
		||||
 | 
			
		||||
@@ -74,7 +74,7 @@
 | 
			
		||||
- name: Copy new 'Customise Website + Access Export' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/access_export.json'
 | 
			
		||||
    dest:  '/matrix/awx/access_export.json'
 | 
			
		||||
    dest: '/matrix/awx/access_export.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
  when: awx_customise_base_domain_website is undefined
 | 
			
		||||
 | 
			
		||||
@@ -92,12 +92,12 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_export.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: awx_customise_base_domain_website is defined
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Access Export' job template
 | 
			
		||||
@@ -114,12 +114,12 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/access_export.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: awx_customise_base_domain_website is undefined
 | 
			
		||||
 | 
			
		||||
- name: If user doesn't define a awx_sftp_password, create a disabled 'sftp' account
 | 
			
		||||
@@ -153,7 +153,7 @@
 | 
			
		||||
  user:
 | 
			
		||||
    name: sftp
 | 
			
		||||
    groups: sftp
 | 
			
		||||
    append: yes
 | 
			
		||||
    append: true
 | 
			
		||||
  when: awx_customise_base_domain_website is defined
 | 
			
		||||
 | 
			
		||||
- name: Create the ro /chroot directory with sticky bit if it doesn't exist. (/chroot/website has matrix:matrix permissions and is mounted to nginx container)
 | 
			
		||||
@@ -208,7 +208,7 @@
 | 
			
		||||
    group: sftp
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
  when: (awx_sftp_public_key | length > 0) and (awx_sftp_auth_method == "SSH Key")
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
- name: Remove any existing Subsystem lines
 | 
			
		||||
  lineinfile:
 | 
			
		||||
    path: /etc/ssh/sshd_config
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Run export of /matrix/ and snapshot the database simultaneously 
 | 
			
		||||
  command: "{{ item }}" 
 | 
			
		||||
- name: Run export of /matrix/ and snapshot the database simultaneously
 | 
			
		||||
  command: "{{ item }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - /bin/sh /usr/local/bin/awx-export-service.sh 1 0
 | 
			
		||||
    - /bin/sh /usr/local/bin/awx-export-service.sh 0 1
 | 
			
		||||
@@ -23,7 +23,7 @@
 | 
			
		||||
    command: rm /chroot/export/matrix*
 | 
			
		||||
    count: 1
 | 
			
		||||
    units: days
 | 
			
		||||
    unique: yes
 | 
			
		||||
    unique: true
 | 
			
		||||
 | 
			
		||||
- name: Delete the AWX session token for executing modules
 | 
			
		||||
  awx.awx.tower_token:
 | 
			
		||||
 
 | 
			
		||||
@@ -3,14 +3,14 @@
 | 
			
		||||
- name: Include vars in organisation.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '/var/lib/awx/projects/clients/{{ member_id }}/organisation.yml'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Include vars in hosting_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '/var/lib/awx/projects/hosting/hosting_vars.yml'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Include AWX master token from awx_tokens.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: /var/lib/awx/projects/hosting/awx_tokens.yml
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,9 @@
 | 
			
		||||
- name: Include new vars in matrix_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '{{ awx_cached_matrix_vars }}'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: If include_vars succeeds overwrite the old matrix_vars.yml 
 | 
			
		||||
- name: If include_vars succeeds overwrite the old matrix_vars.yml
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
  shell: "cp {{ awx_cached_matrix_vars }} /var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml && rm {{ awx_cached_matrix_vars }}"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
# Load initial hosting and organisation variables from AWX volume
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "load_hosting_and_org_variables.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: always
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
# Renames or updates the vars.yml if needed
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "update_variables.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: always
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
# Create AWX session token
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "create_session_token.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: always
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
# Perform a backup of the server
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "backup_server.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: backup-server
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
    - backup-server
 | 
			
		||||
 | 
			
		||||
# Perform a export of the server
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "export_server.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: export-server
 | 
			
		||||
@@ -45,7 +45,7 @@
 | 
			
		||||
    - export-server
 | 
			
		||||
 | 
			
		||||
# Create a user account if called
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "create_user.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: create-user
 | 
			
		||||
@@ -54,7 +54,7 @@
 | 
			
		||||
    - create-user
 | 
			
		||||
 | 
			
		||||
# Purge local/remote media if called
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "purge_media_main.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: purge-media
 | 
			
		||||
@@ -63,7 +63,7 @@
 | 
			
		||||
    - purge-media
 | 
			
		||||
 | 
			
		||||
# Purge Synapse database if called
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "purge_database_main.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: purge-database
 | 
			
		||||
@@ -72,7 +72,7 @@
 | 
			
		||||
    - purge-database
 | 
			
		||||
 | 
			
		||||
# Rotate SSH key if called
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "rotate_ssh.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: rotate-ssh
 | 
			
		||||
@@ -81,16 +81,16 @@
 | 
			
		||||
    - rotate-ssh
 | 
			
		||||
 | 
			
		||||
# Import configs, media repo from /chroot/backup import
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "import_awx.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: import-awx
 | 
			
		||||
  when: run_setup|bool and matrix_awx_enabled|bool
 | 
			
		||||
  tags:
 | 
			
		||||
    - import-awx
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
# Perform extra self-check functions
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "self_check.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: self-check
 | 
			
		||||
@@ -99,7 +99,7 @@
 | 
			
		||||
    - self-check
 | 
			
		||||
 | 
			
		||||
# Create cached matrix_vars.yml file
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "cache_matrix_variables.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: always
 | 
			
		||||
@@ -108,7 +108,7 @@
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
# Configure SFTP so user can upload a static website or access the servers export
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "customise_website_access_export.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-nginx-proxy
 | 
			
		||||
@@ -117,7 +117,7 @@
 | 
			
		||||
    - setup-nginx-proxy
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Element configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_element.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-client-element
 | 
			
		||||
@@ -126,7 +126,7 @@
 | 
			
		||||
    - setup-client-element
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Mailer configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_mailer.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-mailer
 | 
			
		||||
@@ -135,7 +135,7 @@
 | 
			
		||||
    - setup-mailer
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Element configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_element_subdomain.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-client-element-subdomain
 | 
			
		||||
@@ -144,7 +144,7 @@
 | 
			
		||||
    - setup-client-element-subdomain
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Synapse configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_synapse.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-synapse
 | 
			
		||||
@@ -153,7 +153,7 @@
 | 
			
		||||
    - setup-synapse
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Jitsi configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_jitsi.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-jitsi
 | 
			
		||||
@@ -162,7 +162,7 @@
 | 
			
		||||
    - setup-jitsi
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Ma1sd configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_ma1sd.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-ma1sd
 | 
			
		||||
@@ -171,7 +171,7 @@
 | 
			
		||||
    - setup-ma1sd
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Corporal configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_corporal.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-corporal
 | 
			
		||||
@@ -180,7 +180,7 @@
 | 
			
		||||
    - setup-corporal
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Dimension configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_dimension.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-dimension
 | 
			
		||||
@@ -189,7 +189,7 @@
 | 
			
		||||
    - setup-dimension
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Synapse Admin configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "set_variables_synapse_admin.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: setup-synapse-admin
 | 
			
		||||
@@ -198,7 +198,7 @@
 | 
			
		||||
    - setup-synapse-admin
 | 
			
		||||
 | 
			
		||||
# Additional playbook to set the variable file during Discord Appservice Bridge configuration
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "bridge_discord_appservice.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: bridge-discord-appservice
 | 
			
		||||
@@ -207,7 +207,7 @@
 | 
			
		||||
    - bridge-discord-appservice
 | 
			
		||||
 | 
			
		||||
# Delete AWX session token
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "delete_session_token.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: always
 | 
			
		||||
@@ -216,7 +216,7 @@
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
# Load newly formed matrix variables from AWX volume
 | 
			
		||||
- include_tasks: 
 | 
			
		||||
- include_tasks:
 | 
			
		||||
    file: "load_matrix_variables.yml"
 | 
			
		||||
    apply:
 | 
			
		||||
      tags: always
 | 
			
		||||
 
 | 
			
		||||
@@ -9,20 +9,20 @@
 | 
			
		||||
- name: Include vars in matrix_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure curl and jq intalled on target machine
 | 
			
		||||
  apt:
 | 
			
		||||
    pkg:
 | 
			
		||||
    - curl
 | 
			
		||||
    - jq
 | 
			
		||||
      - curl
 | 
			
		||||
      - jq
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
- name: Collect before shrink size of Synapse database
 | 
			
		||||
  shell: du -sh /matrix/postgres/data
 | 
			
		||||
  register: awx_db_size_before_stat
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Collect the internal IP of the matrix-synapse container
 | 
			
		||||
  shell: "/usr/bin/docker inspect --format '{''{range.NetworkSettings.Networks}''}{''{.IPAddress}''}{''{end}''}' matrix-synapse"
 | 
			
		||||
@@ -34,7 +34,7 @@
 | 
			
		||||
    curl -X POST -d '{"type":"m.login.password", "user":"admin-janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_matrix/client/r0/login" | jq '.access_token'
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
 | 
			
		||||
  register: awx_janitors_token
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Copy build_room_list.py script to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
  fetch:
 | 
			
		||||
    src: /tmp/room_list_complete.json
 | 
			
		||||
    dest: "/tmp/{{ subscription_id }}_room_list_complete.json"
 | 
			
		||||
    flat: yes
 | 
			
		||||
    flat: true
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Remove complete room list from target machine
 | 
			
		||||
@@ -80,7 +80,7 @@
 | 
			
		||||
- name: Setting host fact awx_room_list_no_local_users
 | 
			
		||||
  set_fact:
 | 
			
		||||
    awx_room_list_no_local_users: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_no_local_users.txt') }}"
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Purge all rooms with no local users
 | 
			
		||||
@@ -113,7 +113,7 @@
 | 
			
		||||
  set_fact:
 | 
			
		||||
    awx_room_list_joined_members: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_joined_members.txt') }}"
 | 
			
		||||
  when: awx_purge_mode.find("Number of users [slower]") != -1
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Purge all rooms with more then N users
 | 
			
		||||
  include_tasks: purge_database_users.yml
 | 
			
		||||
@@ -138,7 +138,7 @@
 | 
			
		||||
  set_fact:
 | 
			
		||||
    awx_room_list_state_events: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_state_events.txt') }}"
 | 
			
		||||
  when: awx_purge_mode.find("Number of events [slower]") != -1
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Purge all rooms with more then N events
 | 
			
		||||
  include_tasks: purge_database_events.yml
 | 
			
		||||
@@ -161,17 +161,17 @@
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1) or (awx_purge_mode.find("Skip purging rooms [faster]") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Execute rust-synapse-compress-state job template
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
  awx.awx.tower_job_launch:
 | 
			
		||||
    job_template: "{{ matrix_domain }} - 0 - Deploy/Update a Server"
 | 
			
		||||
    wait: yes
 | 
			
		||||
    wait: true
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1) or (awx_purge_mode.find("Skip purging rooms [faster]") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Revert 'Deploy/Update a Server' job template
 | 
			
		||||
@@ -190,14 +190,14 @@
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1) or (awx_purge_mode.find("Skip purging rooms [faster]") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-synapse is stopped
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-synapse
 | 
			
		||||
    state: stopped
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Re-index Synapse database
 | 
			
		||||
@@ -208,7 +208,7 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-synapse
 | 
			
		||||
    state: started
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Adjust 'Deploy/Update a Server' job template
 | 
			
		||||
@@ -227,17 +227,17 @@
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Execute run-postgres-vacuum job template
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
  awx.awx.tower_job_launch:
 | 
			
		||||
    job_template: "{{ matrix_domain }} - 0 - Deploy/Update a Server"
 | 
			
		||||
    wait: yes
 | 
			
		||||
    wait: true
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Revert 'Deploy/Update a Server' job template
 | 
			
		||||
@@ -256,7 +256,7 @@
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
 | 
			
		||||
- name: Cleanup room_list files
 | 
			
		||||
@@ -264,13 +264,13 @@
 | 
			
		||||
  shell: |
 | 
			
		||||
    rm /tmp/{{ subscription_id }}_room_list*
 | 
			
		||||
  when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
 | 
			
		||||
- name: Collect after shrink size of Synapse database
 | 
			
		||||
  shell: du -sh /matrix/postgres/data
 | 
			
		||||
  register: awx_db_size_after_stat
 | 
			
		||||
  when: (awx_purge_mode.find("Perform final shrink") != -1)
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Print total number of rooms processed
 | 
			
		||||
  debug:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Ensure dateutils is installed in AWX
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
@@ -8,13 +9,13 @@
 | 
			
		||||
- name: Include vars in matrix_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure curl and jq intalled on target machine
 | 
			
		||||
  apt:
 | 
			
		||||
    pkg:
 | 
			
		||||
    - curl
 | 
			
		||||
    - jq
 | 
			
		||||
      - curl
 | 
			
		||||
      - jq
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
- name: Collect the internal IP of the matrix-synapse container
 | 
			
		||||
@@ -25,7 +26,7 @@
 | 
			
		||||
  shell: |
 | 
			
		||||
    curl -XPOST -d '{"type":"m.login.password", "user":"admin-janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_matrix/client/r0/login" | jq '.access_token'
 | 
			
		||||
  register: awx_janitors_token
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Generate list of dates to purge to
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
@@ -37,16 +38,16 @@
 | 
			
		||||
  register: awx_local_media_size_before
 | 
			
		||||
  when: awx_purge_media_type == "Local Media"
 | 
			
		||||
  async: 600
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate initial size of remote media repository
 | 
			
		||||
  shell: du -sh /matrix/synapse/storage/media-store/remote*
 | 
			
		||||
  register: awx_remote_media_size_before
 | 
			
		||||
  when: awx_purge_media_type == "Remote Media"
 | 
			
		||||
  async: 600 
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  async: 600
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Purge local media with loop
 | 
			
		||||
  include_tasks: purge_media_local.yml
 | 
			
		||||
@@ -62,15 +63,15 @@
 | 
			
		||||
  shell: du -sh /matrix/synapse/storage/media-store/local*
 | 
			
		||||
  register: awx_local_media_size_after
 | 
			
		||||
  when: awx_purge_media_type == "Local Media"
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate final size of remote media repository
 | 
			
		||||
  shell: du -sh /matrix/synapse/storage/media-store/remote*
 | 
			
		||||
  register: awx_remote_media_size_after
 | 
			
		||||
  when: awx_purge_media_type == "Remote Media"
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Print size of local media repository before purge
 | 
			
		||||
  debug:
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
  authorized_key:
 | 
			
		||||
    user: root
 | 
			
		||||
    state: present
 | 
			
		||||
    exclusive: yes
 | 
			
		||||
    exclusive: true
 | 
			
		||||
    key: "{{ lookup('file', '/var/lib/awx/projects/hosting/client_public.key') }}"
 | 
			
		||||
 | 
			
		||||
- name: Delete the AWX session token for executing modules
 | 
			
		||||
 
 | 
			
		||||
@@ -25,53 +25,53 @@
 | 
			
		||||
  shell: |
 | 
			
		||||
    curl -s localhost:9000 | grep "^synapse_admin_mau_current "
 | 
			
		||||
  register: awx_mau_stat
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate CPU usage statistics
 | 
			
		||||
  shell: iostat -c
 | 
			
		||||
  register: awx_cpu_usage_stat
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate RAM usage statistics
 | 
			
		||||
  shell: free -mh
 | 
			
		||||
  register: awx_ram_usage_stat
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate free disk space
 | 
			
		||||
  shell: df -h
 | 
			
		||||
  register: awx_disk_space_stat
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate size of Synapse database
 | 
			
		||||
  shell: du -sh /matrix/postgres/data
 | 
			
		||||
  register: awx_db_size_stat
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate size of local media repository
 | 
			
		||||
  shell: du -sh /matrix/synapse/storage/media-store/local*
 | 
			
		||||
  register: awx_local_media_size_stat
 | 
			
		||||
  async: 600
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate size of remote media repository
 | 
			
		||||
  shell: du -sh /matrix/synapse/storage/media-store/remote*
 | 
			
		||||
  register: awx_remote_media_size_stat
 | 
			
		||||
  async: 600
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Calculate docker container statistics
 | 
			
		||||
  shell: docker stats --all --no-stream
 | 
			
		||||
  register: awx_docker_stats
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
  no_log: True
 | 
			
		||||
  ignore_errors: true
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Print size of remote media repository
 | 
			
		||||
  debug:
 | 
			
		||||
    msg: "{{ awx_remote_media_size_stat.stdout.split('\n') }}"
 | 
			
		||||
  when: awx_remote_media_size_stat is defined
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- name: Print size of local media repository
 | 
			
		||||
  debug:
 | 
			
		||||
    msg: "{{ awx_local_media_size_stat.stdout.split('\n') }}"
 | 
			
		||||
 
 | 
			
		||||
@@ -235,9 +235,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_corporal.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -3,18 +3,18 @@
 | 
			
		||||
- name: Include vars in matrix_vars.yml
 | 
			
		||||
  include_vars:
 | 
			
		||||
    file: '{{ awx_cached_matrix_vars }}'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Install jq and curl on remote machine
 | 
			
		||||
  apt:
 | 
			
		||||
    name: 
 | 
			
		||||
    name:
 | 
			
		||||
      - jq
 | 
			
		||||
      - curl
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
- name: Collect access token of @admin-dimension user
 | 
			
		||||
  shell: |
 | 
			
		||||
    curl -X POST --header 'Content-Type: application/json' -d '{ "identifier": { "type": "m.id.user","user": "admin-dimension" }, "password": "{{ awx_dimension_user_password }}", "type": "m.login.password"}' 'https://matrix.{{ matrix_domain }}/_matrix/client/r0/login' | jq -c '. | {access_token}' | sed 's/.*\":\"//' | sed 's/\"}//'
 | 
			
		||||
    curl -X POST --header 'Content-Type: application/json' -d '{"identifier": {"type": "m.id.user","user": "admin-dimension"}, "password": "{{ awx_dimension_user_password }}", "type": "m.login.password"}' 'https://matrix.{{ matrix_domain }}/_matrix/client/r0/login' | jq -c '. | {access_token}' | sed 's/.*\":\"//' | sed 's/\"}//'
 | 
			
		||||
  register: awx_dimension_user_access_token
 | 
			
		||||
 | 
			
		||||
- name: Record Synapse variables locally on AWX
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
  with_dict:
 | 
			
		||||
    'matrix_dimension_enabled': '{{ matrix_dimension_enabled }}'
 | 
			
		||||
    'matrix_dimension_access_token': '"{{ awx_dimension_user_access_token.stdout }}"'
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- name: Set final users list if users are defined
 | 
			
		||||
  set_fact:
 | 
			
		||||
    awx_dimension_users_final: "{{ awx_dimension_users }}"
 | 
			
		||||
@@ -80,7 +80,7 @@
 | 
			
		||||
- name: Copy new 'Configure Dimension' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_dimension.json'
 | 
			
		||||
    dest:  '/matrix/awx/configure_dimension.json'
 | 
			
		||||
    dest: '/matrix/awx/configure_dimension.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Configure Dimension' job template
 | 
			
		||||
@@ -97,9 +97,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_dimension.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -172,9 +172,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_element.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    insertafter: '# Element Settings Start'
 | 
			
		||||
  with_dict:
 | 
			
		||||
    'matrix_server_fqn_element': "{{ awx_element_subdomain | trim }}.{{ matrix_domain }}"
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
- name: Save new 'Configure Element Subdomain' survey.json to the AWX tower, template
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
  template:
 | 
			
		||||
@@ -40,4 +40,4 @@
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@
 | 
			
		||||
- name: Copy new 'Configure Jitsi' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_jitsi.json'
 | 
			
		||||
    dest:  '/matrix/awx/configure_jitsi.json'
 | 
			
		||||
    dest: '/matrix/awx/configure_jitsi.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Configure Jitsi' job template
 | 
			
		||||
@@ -37,9 +37,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_jitsi.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@
 | 
			
		||||
  with_dict:
 | 
			
		||||
    'awx_matrix_ma1sd_auth_store': '{{ awx_matrix_ma1sd_auth_store }}'
 | 
			
		||||
    'awx_matrix_ma1sd_configuration_extension_yaml': '{{ awx_matrix_ma1sd_configuration_extension_yaml.splitlines() | to_json }}'
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
 | 
			
		||||
- name: Save new 'Configure ma1sd' survey.json to the AWX tower, template
 | 
			
		||||
  delegate_to: 127.0.0.1
 | 
			
		||||
@@ -77,7 +77,7 @@
 | 
			
		||||
- name: Copy new 'Configure ma1sd' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_ma1sd.json'
 | 
			
		||||
    dest:  '/matrix/awx/configure_ma1sd.json'
 | 
			
		||||
    dest: '/matrix/awx/configure_ma1sd.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Configure ma1sd (Advanced)' job template
 | 
			
		||||
@@ -94,10 +94,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_ma1sd.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -36,9 +36,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_email_relay.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Limit max upload size to 200MB part 1
 | 
			
		||||
  set_fact:
 | 
			
		||||
@@ -197,7 +198,7 @@
 | 
			
		||||
- name: Copy new 'Configure Synapse' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_synapse.json'
 | 
			
		||||
    dest:  '/matrix/awx/configure_synapse.json'
 | 
			
		||||
    dest: '/matrix/awx/configure_synapse.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Configure Synapse' job template
 | 
			
		||||
@@ -214,9 +215,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_synapse.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
- name: Copy new 'Configure Synapse Admin' survey.json to target machine
 | 
			
		||||
  copy:
 | 
			
		||||
    src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_synapse_admin.json'
 | 
			
		||||
    dest:  '/matrix/awx/configure_synapse_admin.json'
 | 
			
		||||
    dest: '/matrix/awx/configure_synapse_admin.json'
 | 
			
		||||
    mode: '0660'
 | 
			
		||||
 | 
			
		||||
- name: Recreate 'Configure Synapse Admin' job template
 | 
			
		||||
@@ -36,9 +36,9 @@
 | 
			
		||||
    credential: "{{ member_id }} - AWX SSH Key"
 | 
			
		||||
    survey_enabled: true
 | 
			
		||||
    survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_synapse_admin.json') }}"
 | 
			
		||||
    become_enabled: yes
 | 
			
		||||
    become_enabled: true
 | 
			
		||||
    state: present
 | 
			
		||||
    verbosity: 1
 | 
			
		||||
    tower_host: "https://{{ awx_host }}"
 | 
			
		||||
    tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
 | 
			
		||||
    validate_certs: yes
 | 
			
		||||
    validate_certs: true
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
  command: |
 | 
			
		||||
      openssl rand -hex 16
 | 
			
		||||
  register: generic_secret
 | 
			
		||||
  no_log: True
 | 
			
		||||
  no_log: true
 | 
			
		||||
  when: ( matrix_homeserver_generic_secret_key is undefined ) or ( matrix_homeserver_generic_secret_key | length == 0 )
 | 
			
		||||
 | 
			
		||||
- name: Add new matrix_homeserver_generic_secret_key variable
 | 
			
		||||
@@ -22,5 +22,5 @@
 | 
			
		||||
    line: "matrix_homeserver_generic_secret_key: {{ generic_secret.stdout }}"
 | 
			
		||||
    insertbefore: '# Basic Settings End'
 | 
			
		||||
    mode: '0600'
 | 
			
		||||
    state: present    
 | 
			
		||||
    state: present
 | 
			
		||||
  when: ( matrix_homeserver_generic_secret_key is undefined ) or ( matrix_homeserver_generic_secret_key | length == 0 )
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# The bare domain name which represents your Matrix identity.
 | 
			
		||||
# Matrix user ids for your server will be of the form (`@user:<matrix-domain>`).
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -6,4 +6,4 @@
 | 
			
		||||
    state: absent
 | 
			
		||||
  with_items:
 | 
			
		||||
    - "{{ matrix_base_data_path }}/environment-variables"
 | 
			
		||||
    - "{{ matrix_base_data_path }}/scratchpad"
 | 
			
		||||
    - "{{ matrix_base_data_path }}/scratchpad"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/sanity_check.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
      name:
 | 
			
		||||
        - lsb-release
 | 
			
		||||
      state: present
 | 
			
		||||
      update_cache: yes
 | 
			
		||||
      update_cache: true
 | 
			
		||||
    register: lsb_release_installation_result
 | 
			
		||||
 | 
			
		||||
  - name: Reread ansible_lsb facts if lsb-release got installed
 | 
			
		||||
@@ -34,10 +34,10 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: docker
 | 
			
		||||
    state: started
 | 
			
		||||
    enabled: yes
 | 
			
		||||
    enabled: true
 | 
			
		||||
 | 
			
		||||
- name: "Ensure {{ matrix_ntpd_service }} is started and autoruns"
 | 
			
		||||
  service:
 | 
			
		||||
    name: "{{ matrix_ntpd_service }}"
 | 
			
		||||
    state: started
 | 
			
		||||
    enabled: yes
 | 
			
		||||
    enabled: true
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
      - python-docker
 | 
			
		||||
      - python-dnspython
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker is installed
 | 
			
		||||
  pacman:
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
      - ca-certificates
 | 
			
		||||
      - gnupg
 | 
			
		||||
    state: present
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker's APT key is trusted
 | 
			
		||||
  apt_key:
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
  apt_repository:
 | 
			
		||||
    repo: "deb [arch={{ matrix_debian_arch }}] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
 | 
			
		||||
    state: present
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
  when: matrix_docker_installation_enabled|bool and matrix_docker_package_name == 'docker-ce'
 | 
			
		||||
 | 
			
		||||
- name: Ensure APT packages are installed
 | 
			
		||||
@@ -30,7 +30,7 @@
 | 
			
		||||
    name:
 | 
			
		||||
      - "{{ matrix_ntpd_package }}"
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker is installed
 | 
			
		||||
  apt:
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
      - ca-certificates
 | 
			
		||||
      - gnupg
 | 
			
		||||
    state: present
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker's APT key is trusted
 | 
			
		||||
  apt_key:
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
  apt_repository:
 | 
			
		||||
    repo: "deb [arch={{ matrix_debian_arch }}] https://download.docker.com/linux/raspbian {{ ansible_distribution_release }} stable"
 | 
			
		||||
    state: present
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
  when: matrix_docker_installation_enabled|bool and matrix_docker_package_name == 'docker-ce'
 | 
			
		||||
 | 
			
		||||
- name: Ensure APT packages are installed
 | 
			
		||||
@@ -30,7 +30,7 @@
 | 
			
		||||
    name:
 | 
			
		||||
      - "{{ matrix_ntpd_package }}"
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker is installed
 | 
			
		||||
  apt:
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
    name:
 | 
			
		||||
      - "{{ matrix_ntpd_package }}"
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker is installed
 | 
			
		||||
  yum:
 | 
			
		||||
 
 | 
			
		||||
@@ -22,14 +22,14 @@
 | 
			
		||||
    name:
 | 
			
		||||
      - epel-release
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure yum packages are installed
 | 
			
		||||
  yum:
 | 
			
		||||
    name:
 | 
			
		||||
      - "{{ matrix_ntpd_package }}"
 | 
			
		||||
    state: latest
 | 
			
		||||
    update_cache: yes
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Ensure Docker is installed
 | 
			
		||||
  yum:
 | 
			
		||||
 
 | 
			
		||||
@@ -18,8 +18,8 @@
 | 
			
		||||
    state: present
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
    home: "{{ matrix_base_data_path }}"
 | 
			
		||||
    create_home: no
 | 
			
		||||
    system: yes
 | 
			
		||||
    create_home: false
 | 
			
		||||
    system: true
 | 
			
		||||
  register: matrix_user
 | 
			
		||||
 | 
			
		||||
- name: Set Matrix Group UID Variable
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# We need others to be able to read these directories too,
 | 
			
		||||
# so that matrix-nginx-proxy's nginx user can access the files.
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
# This is for both RedHat 7 and 8
 | 
			
		||||
- name: Ensure fuse installed (RedHat)
 | 
			
		||||
  yum:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
# This is for both RedHat 7 and 8
 | 
			
		||||
- name: Ensure openssl installed (RedHat)
 | 
			
		||||
  yum:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# This will contain a list of enabled services that the playbook is managing.
 | 
			
		||||
# Each component is expected to append its service name to this list.
 | 
			
		||||
matrix_systemd_services_list: []
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python.
 | 
			
		||||
# See: https://github.com/matrix-org/go-neb
 | 
			
		||||
 | 
			
		||||
@@ -203,8 +204,8 @@ matrix_bot_go_neb_services: []
 | 
			
		||||
#      # Each room will get the notification with the alert rendered with the given template
 | 
			
		||||
#      rooms:
 | 
			
		||||
#        "!someroomid:domain.tld":
 | 
			
		||||
#          text_template: "{% raw %}{{range .Alerts -}} [{{ .Status }}] {{index .Labels \"alertname\" }}: {{index .Annotations \"description\"}} {{ end -}}{% endraw %}"
 | 
			
		||||
#          html_template: "{% raw %}{{range .Alerts -}}  {{ $severity := index .Labels \"severity\" }}    {{ if eq .Status \"firing\" }}      {{ if eq $severity \"critical\"}}        <font color='red'><b>[FIRING - CRITICAL]</b></font>      {{ else if eq $severity \"warning\"}}        <font color='orange'><b>[FIRING - WARNING]</b></font>      {{ else }}        <b>[FIRING - {{ $severity }}]</b>      {{ end }}    {{ else }}      <font color='green'><b>[RESOLVED]</b></font>    {{ end }}  {{ index .Labels \"alertname\"}} : {{ index .Annotations \"description\"}}   <a href=\"{{ .GeneratorURL }}\">source</a><br/>{{end -}}{% endraw %}"
 | 
			
		||||
#          text_template: "{% raw %}{{range .Alerts -}} [{{ .Status }}] {{index .Labels \"alertname\"}}: {{index .Annotations \"description\"}} {{ end -}}{% endraw %}"
 | 
			
		||||
#          html_template: "{% raw %}{{range .Alerts -}}  {{ $severity := index .Labels \"severity\"}}    {{ if eq .Status \"firing\"}}      {{ if eq $severity \"critical\"}}        <font color='red'><b>[FIRING - CRITICAL]</b></font>      {{ else if eq $severity \"warning\"}}        <font color='orange'><b>[FIRING - WARNING]</b></font>      {{ else }}        <b>[FIRING - {{ $severity }}]</b>      {{ end }}    {{ else }}      <font color='green'><b>[RESOLVED]</b></font>    {{ end }}  {{ index .Labels \"alertname\"}} : {{ index .Annotations \"description\"}}   <a href=\"{{ .GeneratorURL }}\">source</a><br/>{{end -}}{% endraw %}"
 | 
			
		||||
#          msg_type: "m.text"  # Must be either `m.text` or `m.notice`
 | 
			
		||||
 | 
			
		||||
# Default configuration template which covers the generic use case.
 | 
			
		||||
@@ -228,4 +229,3 @@ matrix_bot_go_neb_configuration_extension: "{{ matrix_bot_go_neb_configuration_e
 | 
			
		||||
# Holds the final configuration (a combination of the default and its extension).
 | 
			
		||||
# You most likely don't need to touch this variable. Instead, see `matrix_bot_go_neb_configuration_yaml`.
 | 
			
		||||
matrix_bot_go_neb_configuration: "{{ matrix_bot_go_neb_configuration_yaml|from_yaml|combine(matrix_bot_go_neb_configuration_extension, recursive=True) }}"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- set_fact:
 | 
			
		||||
    matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-go-neb.service'] }}"
 | 
			
		||||
  when: matrix_bot_go_neb_enabled|bool
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -11,9 +11,9 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_bot_go_neb_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_go_neb_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_go_neb_data_store_path }}", when: true }
 | 
			
		||||
    - {path: "{{ matrix_bot_go_neb_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_go_neb_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_go_neb_data_store_path }}", when: true}
 | 
			
		||||
  when: "item.when|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure go-neb image is pulled
 | 
			
		||||
@@ -40,7 +40,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-go-neb.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_go_neb_systemd_service_result.changed|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-go-neb.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-bot-go-neb
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  register: stopping_result
 | 
			
		||||
  when: "matrix_bot_go_neb_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-go-neb.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_go_neb_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure Matrix go-neb paths don't exist
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# honoroit is a helpdesk bot
 | 
			
		||||
# See: https://gitlab.com/etke.cc/honoroit
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- set_fact:
 | 
			
		||||
    matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-honoroit.service'] }}"
 | 
			
		||||
  when: matrix_bot_honoroit_enabled|bool
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -33,10 +33,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_bot_honoroit_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_honoroit_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_honoroit_data_store_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_honoroit_docker_src_files_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_honoroit_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_honoroit_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_honoroit_data_store_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_honoroit_docker_src_files_path }}", when: true}
 | 
			
		||||
  when: "item.when|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure honoroit environment variables file created
 | 
			
		||||
@@ -70,7 +70,7 @@
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: Dockerfile
 | 
			
		||||
      path: "{{ matrix_bot_honoroit_docker_src_files_path }}"
 | 
			
		||||
      pull: yes
 | 
			
		||||
      pull: true
 | 
			
		||||
  when: "matrix_bot_honoroit_container_image_self_build|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-honoroit.service installed
 | 
			
		||||
@@ -82,7 +82,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-honoroit.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_honoroit_systemd_service_result.changed|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-honoroit.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-bot-honoroit
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  register: stopping_result
 | 
			
		||||
  when: "matrix_bot_honoroit_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-honoroit.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_honoroit_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure Matrix honoroit paths don't exist
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# matrix-reminder-bot is a bot for one-off and recurring reminders
 | 
			
		||||
# See: https://github.com/anoadragon453/matrix-reminder-bot
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- set_fact:
 | 
			
		||||
    matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-bot-matrix-reminder-bot.service'] }}"
 | 
			
		||||
  when: matrix_bot_matrix_reminder_bot_enabled|bool
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -34,10 +34,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_bot_matrix_reminder_bot_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_matrix_reminder_bot_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_matrix_reminder_bot_data_store_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_matrix_reminder_bot_docker_src_files_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_matrix_reminder_bot_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_matrix_reminder_bot_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_matrix_reminder_bot_data_store_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_matrix_reminder_bot_docker_src_files_path }}", when: true}
 | 
			
		||||
  when: "item.when|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-reminder-bot image is pulled
 | 
			
		||||
@@ -65,7 +65,7 @@
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: docker/Dockerfile
 | 
			
		||||
      path: "{{ matrix_bot_matrix_reminder_bot_docker_src_files_path }}"
 | 
			
		||||
      pull: yes
 | 
			
		||||
      pull: true
 | 
			
		||||
  when: "matrix_bot_matrix_reminder_bot_container_image_self_build|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-reminder-bot config installed
 | 
			
		||||
@@ -85,7 +85,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-matrix-reminder-bot.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_matrix_reminder_bot_systemd_service_result.changed|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-matrix-reminder-bot.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-bot-matrix-reminder-bot
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  register: stopping_result
 | 
			
		||||
  when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-matrix-reminder-bot.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure Matrix matrix-reminder-bot paths don't exist
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# A moderation tool for Matrix
 | 
			
		||||
# See: https://github.com/matrix-org/mjolnir
 | 
			
		||||
 | 
			
		||||
@@ -56,4 +57,3 @@ matrix_bot_mjolnir_configuration_extension: "{{ matrix_bot_mjolnir_configuration
 | 
			
		||||
# Holds the final configuration (a combination of the default and its extension).
 | 
			
		||||
# You most likely don't need to touch this variable. Instead, see `matrix_bot_mjolnir_configuration_yaml`.
 | 
			
		||||
matrix_bot_mjolnir_configuration: "{{ matrix_bot_mjolnir_configuration_yaml|from_yaml|combine(matrix_bot_mjolnir_configuration_extension, recursive=True) }}"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_bot_mjolnir_base_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_mjolnir_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_mjolnir_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_bot_mjolnir_docker_src_files_path }}", when: "{{ matrix_bot_mjolnir_container_image_self_build }}" }
 | 
			
		||||
    - {path: "{{ matrix_bot_mjolnir_base_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_mjolnir_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_mjolnir_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_bot_mjolnir_docker_src_files_path }}", when: "{{ matrix_bot_mjolnir_container_image_self_build }}"}
 | 
			
		||||
  when: "item.when|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure mjolnir Docker image is pulled
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: Dockerfile
 | 
			
		||||
      path: "{{ matrix_bot_mjolnir_docker_src_files_path }}"
 | 
			
		||||
      pull: yes
 | 
			
		||||
      pull: true
 | 
			
		||||
  when: "matrix_bot_mjolnir_container_image_self_build|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-mjolnir config installed
 | 
			
		||||
@@ -62,7 +62,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-mjolnir.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_mjolnir_systemd_service_result.changed|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-mjolnir.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-bot-mjolnir
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  register: stopping_result
 | 
			
		||||
  when: "matrix_bot_mjolnir_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-bot-mjolnir.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_bot_mjolnir_service_stat.stat.exists|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-bot-mjolnir paths don't exist
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# matrix-appservice-discord is a Matrix <-> Discord bridge
 | 
			
		||||
# See: https://github.com/Half-Shot/matrix-appservice-discord
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -54,8 +54,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-appservice-discord
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  failed_when: false
 | 
			
		||||
  when: "matrix_appservice_discord_stat_db.stat.exists"
 | 
			
		||||
 | 
			
		||||
@@ -105,7 +105,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-discord.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_discord_systemd_service_result.changed"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-discord.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-appservice-discord
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_discord_service_stat.stat.exists"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-discord.service doesn't exist
 | 
			
		||||
@@ -21,5 +21,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-discord.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_discord_service_stat.stat.exists"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# Matrix Appservice IRC is a Matrix <-> IRC bridge
 | 
			
		||||
# See: https://github.com/matrix-org/matrix-appservice-irc
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Fail if Postgres not enabled
 | 
			
		||||
  fail:
 | 
			
		||||
    msg: "Postgres via the matrix-postgres role is not enabled (`matrix_postgres_enabled`). Cannot migrate."
 | 
			
		||||
@@ -16,7 +18,7 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-postgres
 | 
			
		||||
    state: started
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  register: matrix_postgres_service_start_result
 | 
			
		||||
 | 
			
		||||
- name: Wait a bit, so that Postgres can start
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_appservice_irc_base_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_irc_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_irc_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_irc_docker_src_files_path }}", when: "{{ matrix_appservice_irc_container_image_self_build }}" }
 | 
			
		||||
    - {path: "{{ matrix_appservice_irc_base_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_irc_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_irc_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_irc_docker_src_files_path }}", when: "{{ matrix_appservice_irc_container_image_self_build }}"}
 | 
			
		||||
  when: item.when|bool
 | 
			
		||||
 | 
			
		||||
- name: Check if an old passkey file already exists
 | 
			
		||||
@@ -26,7 +26,7 @@
 | 
			
		||||
      service:
 | 
			
		||||
        name: matrix-appservice-irc
 | 
			
		||||
        state: stopped
 | 
			
		||||
        daemon_reload: yes
 | 
			
		||||
        daemon_reload: true
 | 
			
		||||
      failed_when: false
 | 
			
		||||
 | 
			
		||||
    - name: (Data relocation) Move AppService IRC passkey.pem file to ./data directory
 | 
			
		||||
@@ -82,7 +82,7 @@
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: Dockerfile
 | 
			
		||||
      path: "{{ matrix_appservice_irc_docker_src_files_path }}"
 | 
			
		||||
      pull: yes
 | 
			
		||||
      pull: true
 | 
			
		||||
  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
 | 
			
		||||
@@ -186,7 +186,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-irc.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_irc_systemd_service_result.changed"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-irc.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-appservice-irc
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_irc_service_stat.stat.exists"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-irc.service doesn't exist
 | 
			
		||||
@@ -21,5 +21,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-irc.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_irc_service_stat.stat.exists"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# matrix-appservice-slack is a Matrix <-> Slack bridge
 | 
			
		||||
# See: https://github.com/matrix-org/matrix-appservice-slack
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# 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
 | 
			
		||||
@@ -39,40 +40,40 @@
 | 
			
		||||
  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: 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: 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]
 | 
			
		||||
        }}
 | 
			
		||||
    - 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
 | 
			
		||||
    - always
 | 
			
		||||
  when: matrix_appservice_slack_enabled|bool
 | 
			
		||||
 | 
			
		||||
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Fail if Postgres not enabled
 | 
			
		||||
  fail:
 | 
			
		||||
    msg: "Postgres via the matrix-postgres role is not enabled (`matrix_postgres_enabled`). Cannot migrate."
 | 
			
		||||
@@ -16,7 +18,7 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-postgres
 | 
			
		||||
    state: started
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  register: matrix_postgres_service_start_result
 | 
			
		||||
 | 
			
		||||
- name: Wait a bit, so that Postgres can start
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_appservice_slack_base_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_slack_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_slack_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_slack_docker_src_files_path }}", when: "{{ matrix_appservice_slack_container_image_self_build }}" }
 | 
			
		||||
    - {path: "{{ matrix_appservice_slack_base_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_slack_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_slack_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_slack_docker_src_files_path }}", when: "{{ matrix_appservice_slack_container_image_self_build }}"}
 | 
			
		||||
  when: item.when|bool
 | 
			
		||||
 | 
			
		||||
- set_fact:
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: Dockerfile
 | 
			
		||||
      path: "{{ matrix_appservice_slack_docker_src_files_path }}"
 | 
			
		||||
      pull: yes
 | 
			
		||||
      pull: true
 | 
			
		||||
  when: "matrix_appservice_slack_container_image_self_build|bool and matrix_appservice_slack_git_pull_results.changed"
 | 
			
		||||
 | 
			
		||||
- name: Ensure Matrix Appservice Slack config installed
 | 
			
		||||
@@ -84,7 +84,7 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-slack.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_slack_systemd_service_result.changed"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-slack.service restarted, if necessary
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-appservice-slack
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_slack_service_stat.stat.exists"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-slack.service doesn't exist
 | 
			
		||||
@@ -21,5 +21,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-slack.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_slack_service_stat.stat.exists"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# matrix-appservice-webhooks is a Matrix <-> webhook bridge
 | 
			
		||||
# See: https://github.com/redoonetworks/matrix-appservice-webhooks
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# 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
 | 
			
		||||
@@ -32,42 +33,42 @@
 | 
			
		||||
  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: 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: 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]
 | 
			
		||||
        }}
 | 
			
		||||
    - 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
 | 
			
		||||
    - always
 | 
			
		||||
  when: matrix_appservice_webhooks_enabled|bool
 | 
			
		||||
 | 
			
		||||
- name: Warn about reverse-proxying if matrix-nginx-proxy not used
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_appservice_webhooks_base_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_webhooks_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_webhooks_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_appservice_webhooks_docker_src_files_path }}", when: "{{ matrix_appservice_webhooks_container_image_self_build }}"}
 | 
			
		||||
    - {path: "{{ matrix_appservice_webhooks_base_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_webhooks_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_webhooks_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_appservice_webhooks_docker_src_files_path }}", when: "{{ matrix_appservice_webhooks_container_image_self_build }}"}
 | 
			
		||||
  when: "item.when|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure Appservice webhooks image is pulled
 | 
			
		||||
@@ -40,7 +40,7 @@
 | 
			
		||||
        build:
 | 
			
		||||
          dockerfile: "{{ matrix_appservice_webhooks_container_image_self_build_repo_dockerfile_path }}"
 | 
			
		||||
          path: "{{ matrix_appservice_webhooks_docker_src_files_path }}"
 | 
			
		||||
          pull: yes
 | 
			
		||||
          pull: true
 | 
			
		||||
  when: "matrix_appservice_webhooks_container_image_self_build|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure Matrix Appservice webhooks config is installed
 | 
			
		||||
@@ -84,5 +84,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-webhooks.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_webhooks_systemd_service_result.changed"
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-appservice-webhooks
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_webhooks_service_stat.stat.exists"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-appservice-webhooks.service doesn't exist
 | 
			
		||||
@@ -21,5 +21,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-appservice-webhooks.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_appservice_webhooks_service_stat.stat.exists"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# beeper-linkedin is a Matrix <-> LinkedIn bridge
 | 
			
		||||
# See: https://gitlab.com/beeper/linkedin
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- set_fact:
 | 
			
		||||
    matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-beeper-linkedin.service'] }}"
 | 
			
		||||
  when: matrix_beeper_linkedin_enabled|bool
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -15,10 +15,10 @@
 | 
			
		||||
    owner: "{{ matrix_user_username }}"
 | 
			
		||||
    group: "{{ matrix_user_groupname }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { path: "{{ matrix_beeper_linkedin_base_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_beeper_linkedin_config_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_beeper_linkedin_data_path }}", when: true }
 | 
			
		||||
    - { path: "{{ matrix_beeper_linkedin_docker_src_files_path }}", when: "{{ matrix_beeper_linkedin_container_image_self_build }}" }
 | 
			
		||||
    - {path: "{{ matrix_beeper_linkedin_base_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_beeper_linkedin_config_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_beeper_linkedin_data_path }}", when: true}
 | 
			
		||||
    - {path: "{{ matrix_beeper_linkedin_docker_src_files_path }}", when: "{{ matrix_beeper_linkedin_container_image_self_build }}"}
 | 
			
		||||
  when: "item.when|bool"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -31,38 +31,38 @@
 | 
			
		||||
  when: "not matrix_beeper_linkedin_container_image_self_build|bool"
 | 
			
		||||
 | 
			
		||||
- block:
 | 
			
		||||
  - name: Ensure Beeper LinkedIn repository is present on self-build
 | 
			
		||||
    git:
 | 
			
		||||
      repo: "{{ matrix_beeper_linkedin_container_image_self_build_repo }}"
 | 
			
		||||
      dest: "{{ matrix_beeper_linkedin_docker_src_files_path }}"
 | 
			
		||||
      version: "{{ matrix_beeper_linkedin_container_image_self_build_branch }}"
 | 
			
		||||
      force: "yes"
 | 
			
		||||
    register: matrix_beeper_linkedin_git_pull_results
 | 
			
		||||
    - name: Ensure Beeper LinkedIn repository is present on self-build
 | 
			
		||||
      git:
 | 
			
		||||
        repo: "{{ matrix_beeper_linkedin_container_image_self_build_repo }}"
 | 
			
		||||
        dest: "{{ matrix_beeper_linkedin_docker_src_files_path }}"
 | 
			
		||||
        version: "{{ matrix_beeper_linkedin_container_image_self_build_branch }}"
 | 
			
		||||
        force: "yes"
 | 
			
		||||
      register: matrix_beeper_linkedin_git_pull_results
 | 
			
		||||
 | 
			
		||||
  # 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
 | 
			
		||||
  - name: Ensure docker-requirements.txt is generated before building Beeper LinkedIn Docker Image
 | 
			
		||||
    command: |
 | 
			
		||||
      {{ matrix_host_command_docker }} run \
 | 
			
		||||
      --rm \
 | 
			
		||||
      --entrypoint=/bin/sh \
 | 
			
		||||
      --mount type=bind,src={{ matrix_beeper_linkedin_docker_src_files_path }},dst=/work \
 | 
			
		||||
      -w /work \
 | 
			
		||||
      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"
 | 
			
		||||
    # 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
 | 
			
		||||
    - name: Ensure docker-requirements.txt is generated before building Beeper LinkedIn Docker Image
 | 
			
		||||
      command: |
 | 
			
		||||
        {{ matrix_host_command_docker }} run \
 | 
			
		||||
        --rm \
 | 
			
		||||
        --entrypoint=/bin/sh \
 | 
			
		||||
        --mount type=bind,src={{ matrix_beeper_linkedin_docker_src_files_path }},dst=/work \
 | 
			
		||||
        -w /work \
 | 
			
		||||
        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"
 | 
			
		||||
 | 
			
		||||
  - name: Ensure Beeper LinkedIn Docker image is built
 | 
			
		||||
    docker_image:
 | 
			
		||||
      name: "{{ matrix_beeper_linkedin_docker_image }}"
 | 
			
		||||
      source: build
 | 
			
		||||
      force_source: "{{ matrix_beeper_linkedin_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
 | 
			
		||||
      force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_beeper_linkedin_git_pull_results.changed }}"
 | 
			
		||||
      build:
 | 
			
		||||
        dockerfile: Dockerfile
 | 
			
		||||
        path: "{{ matrix_beeper_linkedin_docker_src_files_path }}"
 | 
			
		||||
        pull: yes
 | 
			
		||||
        args:
 | 
			
		||||
          TARGETARCH: "{{ matrix_architecture }}"
 | 
			
		||||
    - name: Ensure Beeper LinkedIn Docker image is built
 | 
			
		||||
      docker_image:
 | 
			
		||||
        name: "{{ matrix_beeper_linkedin_docker_image }}"
 | 
			
		||||
        source: build
 | 
			
		||||
        force_source: "{{ matrix_beeper_linkedin_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
 | 
			
		||||
        force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_beeper_linkedin_git_pull_results.changed }}"
 | 
			
		||||
        build:
 | 
			
		||||
          dockerfile: Dockerfile
 | 
			
		||||
          path: "{{ matrix_beeper_linkedin_docker_src_files_path }}"
 | 
			
		||||
          pull: true
 | 
			
		||||
          args:
 | 
			
		||||
            TARGETARCH: "{{ matrix_architecture }}"
 | 
			
		||||
  when: "matrix_beeper_linkedin_container_image_self_build|bool"
 | 
			
		||||
 | 
			
		||||
- name: Ensure beeper-linkedin config.yaml installed
 | 
			
		||||
@@ -90,5 +90,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-beeper-linkedin.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_beeper_linkedin_systemd_service_result.changed"
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@
 | 
			
		||||
  service:
 | 
			
		||||
    name: matrix-beeper-linkedin
 | 
			
		||||
    state: stopped
 | 
			
		||||
    enabled: no
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    enabled: false
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_beeper_linkedin_service_stat.stat.exists"
 | 
			
		||||
 | 
			
		||||
- name: Ensure matrix-beeper-linkedin.service doesn't exist
 | 
			
		||||
@@ -21,5 +21,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-beeper-linkedin.service removal
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: "matrix_beeper_linkedin_service_stat.stat.exists"
 | 
			
		||||
 
 | 
			
		||||
@@ -8,4 +8,3 @@
 | 
			
		||||
  with_items:
 | 
			
		||||
    - "matrix_beeper_linkedin_appservice_token"
 | 
			
		||||
    - "matrix_beeper_linkedin_homeserver_token"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# heisenbridge is a bouncer-style Matrix IRC bridge
 | 
			
		||||
# See: https://github.com/hifi/heisenbridge
 | 
			
		||||
 | 
			
		||||
@@ -34,13 +35,13 @@ matrix_heisenbridge_registration_yaml:
 | 
			
		||||
  id: heisenbridge
 | 
			
		||||
  url: http://matrix-heisenbridge:9898
 | 
			
		||||
  as_token: "{{ matrix_heisenbridge_appservice_token }}"
 | 
			
		||||
  hs_token: "{{ matrix_heisenbridge_homeserver_token }}" 
 | 
			
		||||
  hs_token: "{{ matrix_heisenbridge_homeserver_token }}"
 | 
			
		||||
  rate_limited: false
 | 
			
		||||
  sender_localpart: heisenbridge
 | 
			
		||||
  namespaces:
 | 
			
		||||
    users:
 | 
			
		||||
    - regex: '@hbirc_.*'
 | 
			
		||||
      exclusive: true
 | 
			
		||||
      - regex: '@hbirc_.*'
 | 
			
		||||
        exclusive: true
 | 
			
		||||
    aliases: []
 | 
			
		||||
    rooms: []
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- import_tasks: "{{ role_path }}/tasks/init.yml"
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 
 | 
			
		||||
@@ -4,8 +4,8 @@
 | 
			
		||||
  docker_image:
 | 
			
		||||
    name: "{{ matrix_heisenbridge_docker_image }}"
 | 
			
		||||
    source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
 | 
			
		||||
    force_source: "{{ matrix_heisenbridge_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" 
 | 
			
		||||
    force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_heisenbridge_docker_image_force_pull }}" 
 | 
			
		||||
    force_source: "{{ matrix_heisenbridge_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
 | 
			
		||||
    force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_heisenbridge_docker_image_force_pull }}"
 | 
			
		||||
 | 
			
		||||
- name: Ensure heisenbridge paths exist
 | 
			
		||||
  file:
 | 
			
		||||
@@ -34,5 +34,5 @@
 | 
			
		||||
 | 
			
		||||
- name: Ensure systemd reloaded after matrix-heisenbridge.service installation
 | 
			
		||||
  service:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
  when: matrix_heisenbridge_systemd_service_result.changed
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user