| @@ -8,10 +8,10 @@ | |||
| "required": false, | |||
| "min": null, | |||
| "max": null, | |||
| "default": "{{ matrix_awx_backup_enabled | string | lower }}", | |||
| "default": "{{ awx_backup_enabled | string | lower }}", | |||
| "choices": "true\nfalse", | |||
| "new_question": true, | |||
| "variable": "matrix_awx_backup_enabled", | |||
| "variable": "awx_backup_enabled", | |||
| "type": "multiplechoice" | |||
| } | |||
| ] | |||
| @@ -7,7 +7,7 @@ | |||
| line: "{{ item.key }}: {{ item.value }}" | |||
| insertafter: '# AWX Settings Start' | |||
| with_dict: | |||
| 'matrix_awx_backup_enabled': '{{ matrix_awx_backup_enabled }}' | |||
| 'awx_backup_enabled': '{{ awx_backup_enabled }}' | |||
| tags: use-survey | |||
| - name: Save new 'Backup Server' survey.json to the AWX tower, template | |||
| @@ -66,7 +66,7 @@ | |||
| register: _create_instances | |||
| async: 3600 # Maximum runtime in seconds. | |||
| poll: 0 # Fire and continue (never poll) | |||
| when: matrix_awx_backup_enabled|bool | |||
| when: awx_backup_enabled|bool | |||
| - name: Wait for both of these jobs to finish | |||
| async_status: | |||
| @@ -76,11 +76,11 @@ | |||
| delay: 5 # Check every 5 seconds. | |||
| retries: 720 # Retry for a full hour. | |||
| with_items: "{{ _create_instances.results }}" | |||
| when: matrix_awx_backup_enabled|bool | |||
| when: awx_backup_enabled|bool | |||
| - name: Perform borg backup of postgres dump | |||
| command: borgmatic -c /root/.config/borgmatic/config_2.yaml | |||
| when: matrix_awx_backup_enabled|bool | |||
| when: awx_backup_enabled|bool | |||
| - name: Delete the AWX session token for executing modules | |||
| awx.awx.tower_token: | |||
| @@ -6,22 +6,18 @@ | |||
| - name: Set admin bool to zero | |||
| set_fact: | |||
| admin_bool: 0 | |||
| when: admin_access == 'false' | |||
| awx_admin_bool: 0 | |||
| when: awx_admin_access == 'false' | |||
| - name: Examine if server admin set | |||
| set_fact: | |||
| admin_bool: 1 | |||
| when: admin_access == 'true' | |||
| - name: Set boolean value to exit playbook | |||
| set_fact: | |||
| end_playbook: true | |||
| awx_admin_bool: 1 | |||
| when: awx_admin_access == 'true' | |||
| - name: Create user account | |||
| command: | | |||
| /usr/local/bin/matrix-synapse-register-user {{ new_username | quote }} {{ new_password | quote }} {{ admin_bool }} | |||
| register: cmd | |||
| /usr/local/bin/matrix-synapse-register-user {{ awx_new_username | quote }} {{ awx_new_password | quote }} {{ awx_admin_bool }} | |||
| register: awx_cmd_output | |||
| - name: Delete the AWX session token for executing modules | |||
| awx.awx.tower_token: | |||
| @@ -32,9 +28,13 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| - name: Set boolean value to exit playbook | |||
| set_fact: | |||
| awx_end_playbook: true | |||
| - name: Result | |||
| debug: msg="{{ cmd.stdout }}" | |||
| debug: msg="{{ awx_cmd_output.stdout }}" | |||
| - name: End playbook if this task list is called. | |||
| meta: end_play | |||
| when: end_playbook is defined and end_playbook|bool | |||
| when: awx_end_playbook is defined and awx_end_playbook|bool | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Enable index.html creation if user doesn't wish to customise base domain | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Delete the AWX session token for executing modules | |||
| awx.awx.tower_token: | |||
| @@ -1,21 +1,22 @@ | |||
| --- | |||
| - 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 | |||
| register: _create_instances | |||
| register: awx_create_instances | |||
| async: 3600 # Maximum runtime in seconds. | |||
| poll: 0 # Fire and continue (never poll) | |||
| - name: Wait for both of these jobs to finish | |||
| async_status: | |||
| jid: "{{ item.ansible_job_id }}" | |||
| register: _jobs | |||
| until: _jobs.finished | |||
| register: awx_jobs | |||
| until: awx_jobs.finished | |||
| delay: 5 # Check every 5 seconds. | |||
| retries: 720 # Retry for a full hour. | |||
| with_items: "{{ _create_instances.results }}" | |||
| with_items: "{{ awx_create_instances.results }}" | |||
| - name: Schedule deletion of the export in 24 hours | |||
| at: | |||
| @@ -35,8 +36,8 @@ | |||
| - name: Set boolean value to exit playbook | |||
| set_fact: | |||
| end_playbook: true | |||
| awx_end_playbook: true | |||
| - name: End playbook if this task list is called. | |||
| meta: end_play | |||
| when: end_playbook is defined and end_playbook|bool | |||
| when: awx_end_playbook is defined and awx_end_playbook|bool | |||
| @@ -1,7 +1,7 @@ | |||
| --- | |||
| - name: Ensure correct ownership of /matrix/awx | |||
| shell: chown -R matrix:matrix /matrix/awx | |||
| - name: Ensure correct ownership of /matrix/synapse | |||
| shell: chown -R matrix:matrix /matrix/synapse | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Include vars in organisation.yml | |||
| include_vars: | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Include new vars in matrix_vars.yml | |||
| include_vars: | |||
| @@ -1,10 +1,11 @@ | |||
| --- | |||
| - name: Collect entire room list into stdout | |||
| shell: | | |||
| curl -X GET --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" '{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/rooms?from={{ item }}' | |||
| register: rooms_output | |||
| register: awx_rooms_output | |||
| - name: Print stdout to file | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| echo '{{ rooms_output.stdout }}' >> /tmp/{{ subscription_id }}_room_list_complete.json | |||
| echo '{{ awx_rooms_output.stdout }}' >> /tmp/{{ subscription_id }}_room_list_complete.json | |||
| @@ -1,12 +1,13 @@ | |||
| --- | |||
| - name: Purge all rooms with more then N events | |||
| shell: | | |||
| curl --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ purge_epoche_time.stdout }}000 }' "{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_history/{{ item[1:-1] }}" | |||
| register: purge_command | |||
| curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ awx_purge_epoche_time.stdout }}000 }' "{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_history/{{ item[1:-1] }}" | |||
| register: awx_purge_command | |||
| - name: Print output of purge command | |||
| debug: | |||
| msg: "{{ purge_command.stdout }}" | |||
| msg: "{{ awx_purge_command.stdout }}" | |||
| - name: Pause for 5 seconds to let Synapse breathe | |||
| pause: | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Ensure dateutils and curl is installed in AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -19,20 +20,20 @@ | |||
| - name: Collect before shrink size of Synapse database | |||
| shell: du -sh /matrix/postgres/data | |||
| register: db_size_before_stat | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| register: awx_db_size_before_stat | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| 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" | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| register: synapse_container_ip | |||
| 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_synapse_container_ip | |||
| - name: Collect access token for janitor user | |||
| shell: | | |||
| curl -X POST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ matrix_awx_janitor_user_password }}"}' "{{ synapse_container_ip.stdout }}:8008/_matrix/client/r0/login" | jq '.access_token' | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| register: janitors_token | |||
| curl -X POST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:8008/_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 | |||
| - name: Copy build_room_list.py script to target machine | |||
| @@ -42,107 +43,107 @@ | |||
| owner: matrix | |||
| group: matrix | |||
| mode: '0755' | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| 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: Run build_room_list.py script | |||
| shell: | | |||
| runuser -u matrix -- python3 /usr/local/bin/matrix_build_room_list.py {{ janitors_token.stdout[1:-1] }} {{ synapse_container_ip.stdout }} | |||
| register: rooms_total | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| runuser -u matrix -- python3 /usr/local/bin/matrix_build_room_list.py {{ awx_janitors_token.stdout[1:-1] }} {{ awx_synapse_container_ip.stdout }} | |||
| register: awx_rooms_total | |||
| 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: Fetch complete room list from target machine | |||
| fetch: | |||
| src: /tmp/room_list_complete.json | |||
| dest: "/tmp/{{ subscription_id }}_room_list_complete.json" | |||
| flat: yes | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| 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 | |||
| file: | |||
| path: /tmp/room_list_complete.json | |||
| state: absent | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| 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: Generate list of rooms with no local users | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| jq 'try .rooms[] | select(.joined_local_members == 0) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_no_local_users.txt | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| 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: Count number of rooms with no local users | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| wc -l /tmp/{{ subscription_id }}_room_list_no_local_users.txt | awk '{ print $1 }' | |||
| register: rooms_no_local_total | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| register: awx_rooms_no_local_total | |||
| 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: Setting host fact room_list_no_local_users | |||
| - name: Setting host fact awx_room_list_no_local_users | |||
| set_fact: | |||
| room_list_no_local_users: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_no_local_users.txt') }}" | |||
| awx_room_list_no_local_users: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_no_local_users.txt') }}" | |||
| no_log: True | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| 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 | |||
| include_tasks: purge_database_no_local.yml | |||
| loop: "{{ room_list_no_local_users.splitlines() | flatten(levels=1) }}" | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| include_tasks: awx_purge_database_no_local.yml | |||
| loop: "{{ awx_room_list_no_local_users.splitlines() | flatten(levels=1) }}" | |||
| 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: Collect epoche time from date | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| date -d '{{ purge_date }}' +"%s" | |||
| when: (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| register: purge_epoche_time | |||
| date -d '{{ awx_purge_date }}' +"%s" | |||
| when: (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1) | |||
| register: awx_purge_epoche_time | |||
| - name: Generate list of rooms with more then N users | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| jq 'try .rooms[] | select(.joined_members > {{ purge_metric_value }}) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_joined_members.txt | |||
| when: purge_mode.find("Number of users [slower]") != -1 | |||
| jq 'try .rooms[] | select(.joined_members > {{ awx_purge_metric_value }}) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_joined_members.txt | |||
| when: awx_purge_mode.find("Number of users [slower]") != -1 | |||
| - name: Count number of rooms with more then N users | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| wc -l /tmp/{{ subscription_id }}_room_list_joined_members.txt | awk '{ print $1 }' | |||
| register: rooms_join_members_total | |||
| when: purge_mode.find("Number of users [slower]") != -1 | |||
| register: awx_rooms_join_members_total | |||
| when: awx_purge_mode.find("Number of users [slower]") != -1 | |||
| - name: Setting host fact room_list_joined_members | |||
| - name: Setting host fact awx_room_list_joined_members | |||
| delegate_to: 127.0.0.1 | |||
| set_fact: | |||
| room_list_joined_members: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_joined_members.txt') }}" | |||
| when: purge_mode.find("Number of users [slower]") != -1 | |||
| 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 | |||
| - name: Purge all rooms with more then N users | |||
| include_tasks: purge_database_users.yml | |||
| loop: "{{ room_list_joined_members.splitlines() | flatten(levels=1) }}" | |||
| when: purge_mode.find("Number of users [slower]") != -1 | |||
| include_tasks: awx_purge_database_users.yml | |||
| loop: "{{ awx_room_list_joined_members.splitlines() | flatten(levels=1) }}" | |||
| when: awx_purge_mode.find("Number of users [slower]") != -1 | |||
| - name: Generate list of rooms with more then N events | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| jq 'try .rooms[] | select(.state_events > {{ purge_metric_value }}) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_state_events.txt | |||
| when: purge_mode.find("Number of events [slower]") != -1 | |||
| jq 'try .rooms[] | select(.state_events > {{ awx_purge_metric_value }}) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_state_events.txt | |||
| when: awx_purge_mode.find("Number of events [slower]") != -1 | |||
| - name: Count number of rooms with more then N events | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| wc -l /tmp/{{ subscription_id }}_room_list_state_events.txt | awk '{ print $1 }' | |||
| register: rooms_state_events_total | |||
| when: purge_mode.find("Number of events [slower]") != -1 | |||
| register: awx_rooms_state_events_total | |||
| when: awx_purge_mode.find("Number of events [slower]") != -1 | |||
| - name: Setting host fact room_list_state_events | |||
| - name: Setting host fact awx_room_list_state_events | |||
| delegate_to: 127.0.0.1 | |||
| set_fact: | |||
| room_list_state_events: "{{ lookup('file', '/tmp/{{ subscription_id }}_room_list_state_events.txt') }}" | |||
| when: purge_mode.find("Number of events [slower]") != -1 | |||
| 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 | |||
| - name: Purge all rooms with more then N events | |||
| include_tasks: purge_database_events.yml | |||
| loop: "{{ room_list_state_events.splitlines() | flatten(levels=1) }}" | |||
| when: purge_mode.find("Number of events [slower]") != -1 | |||
| include_tasks: awx_purge_database_events.yml | |||
| loop: "{{ awx_room_list_state_events.splitlines() | flatten(levels=1) }}" | |||
| when: awx_purge_mode.find("Number of events [slower]") != -1 | |||
| - name: Adjust 'Deploy/Update a Server' job template | |||
| delegate_to: 127.0.0.1 | |||
| @@ -161,7 +162,7 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| validate_certs: yes | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) or (purge_mode.find("Skip purging rooms [faster]") != -1) | |||
| 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 | |||
| @@ -171,7 +172,7 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| validate_certs: yes | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) or (purge_mode.find("Skip purging rooms [faster]") != -1) | |||
| 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 | |||
| delegate_to: 127.0.0.1 | |||
| @@ -190,25 +191,25 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| validate_certs: yes | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) or (purge_mode.find("Skip purging rooms [faster]") != -1) | |||
| 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 | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Re-index Synapse database | |||
| shell: docker exec -i matrix-postgres psql "host=127.0.0.1 port=5432 dbname=synapse user=synapse password={{ matrix_synapse_connection_password }}" -c 'REINDEX (VERBOSE) DATABASE synapse' | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Ensure matrix-synapse is started | |||
| service: | |||
| name: matrix-synapse | |||
| state: started | |||
| daemon_reload: yes | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Adjust 'Deploy/Update a Server' job template | |||
| delegate_to: 127.0.0.1 | |||
| @@ -227,7 +228,7 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| validate_certs: yes | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Execute run-postgres-vacuum job template | |||
| delegate_to: 127.0.0.1 | |||
| @@ -237,7 +238,7 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| validate_certs: yes | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Revert 'Deploy/Update a Server' job template | |||
| delegate_to: 127.0.0.1 | |||
| @@ -256,50 +257,50 @@ | |||
| tower_host: "https://{{ awx_host }}" | |||
| tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" | |||
| validate_certs: yes | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Cleanup room_list files | |||
| delegate_to: 127.0.0.1 | |||
| shell: | | |||
| rm /tmp/{{ subscription_id }}_room_list* | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| 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 | |||
| - name: Collect after shrink size of Synapse database | |||
| shell: du -sh /matrix/postgres/data | |||
| register: db_size_after_stat | |||
| when: (purge_mode.find("Perform final shrink") != -1) | |||
| register: awx_db_size_after_stat | |||
| when: (awx_purge_mode.find("Perform final shrink") != -1) | |||
| no_log: True | |||
| - name: Print total number of rooms processed | |||
| debug: | |||
| msg: '{{ rooms_total.stdout }}' | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| msg: '{{ awx_rooms_total.stdout }}' | |||
| 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: Print the number of rooms purged with no local users | |||
| debug: | |||
| msg: '{{ rooms_no_local_total.stdout }}' | |||
| when: (purge_mode.find("No local users [recommended]") != -1) or (purge_mode.find("Number of users [slower]") != -1) or (purge_mode.find("Number of events [slower]") != -1) | |||
| msg: '{{ awx_rooms_no_local_total.stdout }}' | |||
| 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: Print the number of rooms purged with more then N users | |||
| debug: | |||
| msg: '{{ rooms_join_members_total.stdout }}' | |||
| when: purge_mode.find("Number of users") != -1 | |||
| msg: '{{ awx_rooms_join_members_total.stdout }}' | |||
| when: awx_purge_mode.find("Number of users") != -1 | |||
| - name: Print the number of rooms purged with more then N events | |||
| debug: | |||
| msg: '{{ rooms_state_events_total.stdout }}' | |||
| when: purge_mode.find("Number of events") != -1 | |||
| msg: '{{ awx_rooms_state_events_total.stdout }}' | |||
| when: awx_purge_mode.find("Number of events") != -1 | |||
| - name: Print before purge size of Synapse database | |||
| debug: | |||
| msg: "{{ db_size_before_stat.stdout.split('\n') }}" | |||
| when: (db_size_before_stat is defined) and (purge_mode.find("Perform final shrink") != -1) | |||
| msg: "{{ awx_db_size_before_stat.stdout.split('\n') }}" | |||
| when: ( awx_db_size_before_stat is defined ) and ( awx_purge_mode.find("Perform final shrink" ) != -1 ) | |||
| - name: Print after purge size of Synapse database | |||
| debug: | |||
| msg: "{{ db_size_after_stat.stdout.split('\n') }}" | |||
| when: (db_size_after_stat is defined) and (purge_mode.find("Perform final shrink") != -1) | |||
| msg: "{{ awx_db_size_after_stat.stdout.split('\n') }}" | |||
| when: (awx_db_size_after_stat is defined) and (awx_purge_mode.find("Perform final shrink") != -1) | |||
| - name: Delete the AWX session token for executing modules | |||
| awx.awx.tower_token: | |||
| @@ -312,8 +313,8 @@ | |||
| - name: Set boolean value to exit playbook | |||
| set_fact: | |||
| end_playbook: true | |||
| awx_end_playbook: true | |||
| - name: End playbook early if this task is called. | |||
| meta: end_play | |||
| when: end_playbook is defined and end_playbook|bool | |||
| when: awx_end_playbook is defined and awx_end_playbook|bool | |||
| @@ -1,12 +1,13 @@ | |||
| --- | |||
| - name: Purge all rooms with no local users | |||
| shell: | | |||
| curl --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "room_id": {{ item }} }' '{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_room' | |||
| register: purge_command | |||
| curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "room_id": {{ item }} }' '{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_room' | |||
| register: awx_purge_command | |||
| - name: Print output of purge command | |||
| debug: | |||
| msg: "{{ purge_command.stdout }}" | |||
| msg: "{{ awx_purge_command.stdout }}" | |||
| - name: Pause for 5 seconds to let Synapse breathe | |||
| pause: | |||
| @@ -1,12 +1,13 @@ | |||
| --- | |||
| - name: Purge all rooms with more then N users | |||
| shell: | | |||
| curl --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ purge_epoche_time.stdout }}000 }' "{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_history/{{ item[1:-1] }}" | |||
| register: purge_command | |||
| curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ awx_purge_epoche_time.stdout }}000 }' "{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_history/{{ item[1:-1] }}" | |||
| register: awx_purge_command | |||
| - name: Print output of purge command | |||
| debug: | |||
| msg: "{{ purge_command.stdout }}" | |||
| msg: "{{ awx_purge_command.stdout }}" | |||
| - name: Pause for 5 seconds to let Synapse breathe | |||
| pause: | |||
| @@ -1,17 +1,18 @@ | |||
| --- | |||
| - name: Collect epoche time from date | |||
| shell: | | |||
| date -d '{{ item }}' +"%s" | |||
| register: epoche_time | |||
| register: awx_epoche_time | |||
| - name: Purge local media to specific date | |||
| shell: | | |||
| curl -X POST --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" '{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/media/matrix.{{ matrix_domain }}/delete?before_ts={{ epoche_time.stdout }}000' | |||
| register: purge_command | |||
| curl -X POST --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" '{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/media/matrix.{{ matrix_domain }}/delete?before_ts={{ awx_epoche_time.stdout }}000' | |||
| register: awx_purge_command | |||
| - name: Print output of purge command | |||
| debug: | |||
| msg: "{{ purge_command.stdout }}" | |||
| msg: "{{ awx_purge_command.stdout }}" | |||
| - name: Pause for 5 seconds to let Synapse breathe | |||
| pause: | |||
| @@ -19,76 +19,76 @@ | |||
| - name: Collect the internal IP of the matrix-synapse container | |||
| shell: "/usr/bin/docker inspect --format '{''{range.NetworkSettings.Networks}''}{''{.IPAddress}''}{''{end}''}' matrix-synapse" | |||
| register: synapse_container_ip | |||
| register: awx_synapse_container_ip | |||
| - name: Collect access token for janitor user | |||
| shell: | | |||
| curl -XPOST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ matrix_awx_janitor_user_password }}"}' "{{ synapse_container_ip.stdout }}:8008/_matrix/client/r0/login" | jq '.access_token' | |||
| register: janitors_token | |||
| curl -XPOST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:8008/_matrix/client/r0/login" | jq '.access_token' | |||
| register: awx_janitors_token | |||
| no_log: True | |||
| - name: Generate list of dates to purge to | |||
| delegate_to: 127.0.0.1 | |||
| shell: "dateseq {{ matrix_purge_from_date }} {{ matrix_purge_to_date }}" | |||
| register: purge_dates | |||
| register: awx_purge_dates | |||
| - name: Calculate initial size of local media repository | |||
| shell: du -sh /matrix/synapse/storage/media-store/local* | |||
| register: local_media_size_before | |||
| when: matrix_purge_media_type == "Local Media" | |||
| register: awx_local_media_size_before | |||
| when: awx_purge_media_type == "Local Media" | |||
| ignore_errors: yes | |||
| no_log: True | |||
| - name: Calculate initial size of remote media repository | |||
| shell: du -sh /matrix/synapse/storage/media-store/remote* | |||
| register: remote_media_size_before | |||
| when: matrix_purge_media_type == "Remote Media" | |||
| register: awx_remote_media_size_before | |||
| when: awx_purge_media_type == "Remote Media" | |||
| ignore_errors: yes | |||
| no_log: True | |||
| - name: Purge local media with loop | |||
| include_tasks: purge_media_local.yml | |||
| loop: "{{ purge_dates.stdout_lines | flatten(levels=1) }}" | |||
| when: matrix_purge_media_type == "Local Media" | |||
| loop: "{{ awx_purge_dates.stdout_lines | flatten(levels=1) }}" | |||
| when: awx_purge_media_type == "Local Media" | |||
| - name: Purge remote media with loop | |||
| include_tasks: purge_media_remote.yml | |||
| loop: "{{ purge_dates.stdout_lines | flatten(levels=1) }}" | |||
| when: matrix_purge_media_type == "Remote Media" | |||
| loop: "{{ awx_purge_dates.stdout_lines | flatten(levels=1) }}" | |||
| when: awx_purge_media_type == "Remote Media" | |||
| - name: Calculate final size of local media repository | |||
| shell: du -sh /matrix/synapse/storage/media-store/local* | |||
| register: local_media_size_after | |||
| when: matrix_purge_media_type == "Local Media" | |||
| register: awx_local_media_size_after | |||
| when: awx_purge_media_type == "Local Media" | |||
| ignore_errors: yes | |||
| no_log: True | |||
| - name: Calculate final size of remote media repository | |||
| shell: du -sh /matrix/synapse/storage/media-store/remote* | |||
| register: remote_media_size_after | |||
| when: matrix_purge_media_type == "Remote Media" | |||
| register: awx_remote_media_size_after | |||
| when: awx_purge_media_type == "Remote Media" | |||
| ignore_errors: yes | |||
| no_log: True | |||
| - name: Print size of local media repository before purge | |||
| debug: | |||
| msg: "{{ local_media_size_before.stdout.split('\n') }}" | |||
| when: matrix_purge_media_type == "Local Media" | |||
| msg: "{{ awx_local_media_size_before.stdout.split('\n') }}" | |||
| when: awx_purge_media_type == "Local Media" | |||
| - name: Print size of local media repository after purge | |||
| debug: | |||
| msg: "{{ local_media_size_after.stdout.split('\n') }}" | |||
| when: matrix_purge_media_type == "Local Media" | |||
| msg: "{{ awx_local_media_size_after.stdout.split('\n') }}" | |||
| when: awx_purge_media_type == "Local Media" | |||
| - name: Print size of remote media repository before purge | |||
| debug: | |||
| msg: "{{ remote_media_size_before.stdout.split('\n') }}" | |||
| when: matrix_purge_media_type == "Remote Media" | |||
| msg: "{{ awx_remote_media_size_before.stdout.split('\n') }}" | |||
| when: awx_purge_media_type == "Remote Media" | |||
| - name: Print size of remote media repository after purge | |||
| debug: | |||
| msg: "{{ remote_media_size_after.stdout.split('\n') }}" | |||
| when: matrix_purge_media_type == "Remote Media" | |||
| msg: "{{ awx_remote_media_size_after.stdout.split('\n') }}" | |||
| when: awx_purge_media_type == "Remote Media" | |||
| - name: Delete the AWX session token for executing modules | |||
| awx.awx.tower_token: | |||
| @@ -101,8 +101,8 @@ | |||
| - name: Set boolean value to exit playbook | |||
| set_fact: | |||
| end_playbook: true | |||
| awx_end_playbook: true | |||
| - name: End playbook early if this task is called. | |||
| meta: end_play | |||
| when: end_playbook is defined and end_playbook|bool | |||
| when: awx_end_playbook is defined and awx_end_playbook|bool | |||
| @@ -1,17 +1,18 @@ | |||
| --- | |||
| - name: Collect epoche time from date | |||
| shell: | | |||
| date -d '{{ item }}' +"%s" | |||
| register: epoche_time | |||
| register: awx_epoche_time | |||
| - name: Purge remote media to specific date | |||
| shell: | | |||
| curl -X POST --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" '{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_media_cache?before_ts={{ epoche_time.stdout }}000' | |||
| register: purge_command | |||
| curl -X POST --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" '{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_media_cache?before_ts={{ awx_epoche_time.stdout }}000' | |||
| register: awx_purge_command | |||
| - name: Print output of purge command | |||
| debug: | |||
| msg: "{{ purge_command.stdout }}" | |||
| msg: "{{ awx_purge_command.stdout }}" | |||
| - name: Pause for 5 seconds to let Synapse breathe | |||
| pause: | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Rename synapse presence variable | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Set the new authorized key taken from file | |||
| authorized_key: | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Install prerequisite apt packages on target | |||
| apt: | |||
| @@ -23,83 +24,83 @@ | |||
| - name: Calculate MAU value | |||
| shell: | | |||
| curl -s localhost:9000 | grep "^synapse_admin_mau_current " | |||
| register: mau_stat | |||
| register: awx_mau_stat | |||
| no_log: True | |||
| - name: Print MAU value | |||
| debug: | |||
| msg: "{{ mau_stat.stdout.split('\n') }}" | |||
| when: mau_stat is defined | |||
| - name: Calculate CPU usage statistics | |||
| shell: iostat -c | |||
| register: cpu_usage_stat | |||
| register: awx_cpu_usage_stat | |||
| no_log: True | |||
| - name: Print CPU usage statistics | |||
| debug: | |||
| msg: "{{ cpu_usage_stat.stdout.split('\n') }}" | |||
| when: cpu_usage_stat is defined | |||
| - name: Calculate RAM usage statistics | |||
| shell: free -mh | |||
| register: ram_usage_stat | |||
| register: awx_ram_usage_stat | |||
| no_log: True | |||
| - name: Print RAM usage statistics | |||
| debug: | |||
| msg: "{{ ram_usage_stat.stdout.split('\n') }}" | |||
| when: ram_usage_stat is defined | |||
| - name: Calculate free disk space | |||
| shell: df -h | |||
| register: disk_space_stat | |||
| register: awx_disk_space_stat | |||
| no_log: True | |||
| - name: Print free disk space | |||
| debug: | |||
| msg: "{{ disk_space_stat.stdout.split('\n') }}" | |||
| when: disk_space_stat is defined | |||
| - name: Calculate size of Synapse database | |||
| shell: du -sh /matrix/postgres/data | |||
| register: db_size_stat | |||
| register: awx_db_size_stat | |||
| no_log: True | |||
| - name: Print size of Synapse database | |||
| debug: | |||
| msg: "{{ db_size_stat.stdout.split('\n') }}" | |||
| when: db_size_stat is defined | |||
| - name: Calculate size of local media repository | |||
| shell: du -sh /matrix/synapse/storage/media-store/local* | |||
| register: local_media_size_stat | |||
| register: awx_local_media_size_stat | |||
| ignore_errors: yes | |||
| no_log: True | |||
| - name: Print size of local media repository | |||
| debug: | |||
| msg: "{{ local_media_size_stat.stdout.split('\n') }}" | |||
| when: local_media_size_stat is defined | |||
| - name: Calculate size of remote media repository | |||
| shell: du -sh /matrix/synapse/storage/media-store/remote* | |||
| register: remote_media_size_stat | |||
| register: awx_remote_media_size_stat | |||
| ignore_errors: yes | |||
| no_log: True | |||
| - name: Print size of remote media repository | |||
| debug: | |||
| msg: "{{ remote_media_size_stat.stdout.split('\n') }}" | |||
| when: remote_media_size_stat is defined | |||
| - name: Calculate docker container statistics | |||
| shell: docker stats --all --no-stream | |||
| register: docker_stats | |||
| register: awx_docker_stats | |||
| ignore_errors: yes | |||
| 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') }}" | |||
| when: awx_local_media_size_stat is defined | |||
| - name: Print size of Synapse database | |||
| debug: | |||
| msg: "{{ awx_db_size_stat.stdout.split('\n') }}" | |||
| when: awx_db_size_stat is defined | |||
| - name: Print free disk space | |||
| debug: | |||
| msg: "{{ awx_disk_space_stat.stdout.split('\n') }}" | |||
| when: awx_disk_space_stat is defined | |||
| - name: Print RAM usage statistics | |||
| debug: | |||
| msg: "{{ awx_ram_usage_stat.stdout.split('\n') }}" | |||
| when: awx_ram_usage_stat is defined | |||
| - name: Print CPU usage statistics | |||
| debug: | |||
| msg: "{{ awx_cpu_usage_stat.stdout.split('\n') }}" | |||
| when: awx_cpu_usage_stat is defined | |||
| - name: Print MAU value | |||
| debug: | |||
| msg: "{{ awx_mau_stat.stdout.split('\n') }}" | |||
| when: awx_mau_stat is defined | |||
| - name: Print docker container statistics | |||
| debug: | |||
| msg: "{{ docker_stats.stdout.split('\n') }}" | |||
| when: docker_stats is defined | |||
| msg: "{{ awx_docker_stats.stdout.split('\n') }}" | |||
| when: awx_docker_stats is defined | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record Corporal Enabled/Disabled variable | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Include vars in matrix_vars.yml | |||
| include_vars: | |||
| @@ -13,7 +14,7 @@ | |||
| - name: Collect access token of Dimension user | |||
| shell: | | |||
| curl -X POST --header 'Content-Type: application/json' -d '{ "identifier": { "type": "m.id.user","user": "dimension" }, "password": "{{ matrix_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": "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 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record Element-Web variables locally on AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record Element-Web variables locally on AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record Jitsi variables locally on AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record ma1sd variables locally on AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record Mailer variables locally on AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -26,21 +26,21 @@ | |||
| 'matrix_synapse_url_preview_enabled': '{{ matrix_synapse_url_preview_enabled }}' | |||
| 'matrix_synapse_allow_guest_access': '{{ matrix_synapse_allow_guest_access }}' | |||
| - name: Empty Synapse variable 'awx_matrix_synapse_auto_join_rooms' locally on AWX, if raw inputs empty | |||
| - name: Empty Synapse variable 'matrix_synapse_auto_join_rooms' locally on AWX, if raw inputs empty | |||
| delegate_to: 127.0.0.1 | |||
| replace: | |||
| path: '{{ awx_cached_matrix_vars }}' | |||
| regexp: "^awx_matrix_synapse_auto_join_rooms: .*$" | |||
| replace: "awx_matrix_synapse_auto_join_rooms: []" | |||
| when: awx_matrix_synapse_auto_join_rooms_raw|length == 0 | |||
| regexp: "^matrix_synapse_auto_join_rooms: .*$" | |||
| replace: "matrix_synapse_auto_join_rooms: []" | |||
| when: matrix_synapse_auto_join_rooms_raw|length == 0 | |||
| - name: If the raw inputs is not empty start constructing parsed auto_join_rooms list | |||
| set_fact: | |||
| awx_matrix_synapse_auto_join_rooms_array: |- | |||
| {{ awx_matrix_synapse_auto_join_rooms_raw.splitlines() | to_json }} | |||
| when: awx_matrix_synapse_auto_join_rooms_raw|length > 0 | |||
| matrix_synapse_auto_join_rooms_array: |- | |||
| {{ matrix_synapse_auto_join_rooms_raw.splitlines() | to_json }} | |||
| when: matrix_synapse_auto_join_rooms_raw|length > 0 | |||
| - name: Record Synapse variable 'awx_matrix_synapse_auto_join_rooms' locally on AWX, if it's not blank | |||
| - name: Record Synapse variable 'matrix_synapse_auto_join_rooms' locally on AWX, if it's not blank | |||
| delegate_to: 127.0.0.1 | |||
| lineinfile: | |||
| path: '{{ awx_cached_matrix_vars }}' | |||
| @@ -48,8 +48,8 @@ | |||
| line: "{{ item.key }}: {{ item.value }}" | |||
| insertafter: '# Synapse Settings Start' | |||
| with_dict: | |||
| "awx_matrix_synapse_auto_join_rooms": "{{ awx_matrix_synapse_auto_join_rooms_array }}" | |||
| when: awx_matrix_synapse_auto_join_rooms_raw|length > 0 | |||
| "matrix_synapse_auto_join_rooms": "{{ matrix_synapse_auto_join_rooms_array }}" | |||
| when: matrix_synapse_auto_join_rooms_raw|length > 0 | |||
| - name: Record Synapse Shared Secret if it's defined | |||
| delegate_to: 127.0.0.1 | |||
| @@ -1,3 +1,4 @@ | |||
| --- | |||
| - name: Record Synapse Admin variables locally on AWX | |||
| delegate_to: 127.0.0.1 | |||
| @@ -2,9 +2,9 @@ | |||
| - name: Create user account @janitor | |||
| command: | | |||
| /usr/local/bin/matrix-synapse-register-user janitor {{ matrix_awx_janitor_user_password | quote }} 1 | |||
| /usr/local/bin/matrix-synapse-register-user janitor {{ awx_janitor_user_password | quote }} 1 | |||
| register: cmd | |||
| when: not matrix_awx_janitor_user_created|bool | |||
| when: not awx_janitor_user_created|bool | |||
| no_log: True | |||
| - name: Update AWX janitor user created variable | |||
| @@ -15,14 +15,14 @@ | |||
| line: "{{ item.key }}: {{ item.value }}" | |||
| insertafter: 'AWX Settings' | |||
| with_dict: | |||
| 'matrix_awx_janitor_user_created': 'true' | |||
| when: not matrix_awx_janitor_user_created|bool | |||
| 'awx_janitor_user_created': 'true' | |||
| when: not awx_janitor_user_created|bool | |||
| - name: Create user account @dimension | |||
| command: | | |||
| /usr/local/bin/matrix-synapse-register-user dimension {{ matrix_awx_dimension_user_password | quote }} 0 | |||
| /usr/local/bin/matrix-synapse-register-user dimension {{ awx_dimension_user_password | quote }} 0 | |||
| register: cmd | |||
| when: not matrix_awx_dimension_user_created|bool | |||
| when: not awx_dimension_user_created|bool | |||
| no_log: True | |||
| - name: Update AWX dimension user created variable | |||
| @@ -33,14 +33,14 @@ | |||
| line: "{{ item.key }}: {{ item.value }}" | |||
| insertafter: 'AWX Settings' | |||
| with_dict: | |||
| 'matrix_awx_dimension_user_created': 'true' | |||
| when: not matrix_awx_dimension_user_created|bool | |||
| 'awx_dimension_user_created': 'true' | |||
| when: not awx_dimension_user_created|bool | |||
| - name: Create user account @mjolnir | |||
| command: | | |||
| /usr/local/bin/matrix-synapse-register-user mjolnir {{ matrix_awx_mjolnir_user_password | quote }} 0 | |||
| /usr/local/bin/matrix-synapse-register-user mjolnir {{ awx_mjolnir_user_password | quote }} 0 | |||
| register: cmd | |||
| when: not matrix_awx_mjolnir_user_created|bool | |||
| when: not awx_mjolnir_user_created|bool | |||
| no_log: True | |||
| - name: Update AWX dimension user created variable | |||
| @@ -51,8 +51,8 @@ | |||
| line: "{{ item.key }}: {{ item.value }}" | |||
| insertafter: 'AWX Settings' | |||
| with_dict: | |||
| 'matrix_awx_mjolnir_user_created': 'true' | |||
| when: not matrix_awx_mjolnir_user_created|bool | |||
| 'awx_mjolnir_user_created': 'true' | |||
| when: not awx_mjolnir_user_created|bool | |||
| - name: Ensure /chroot/website location has correct permissions | |||
| file: | |||
| @@ -61,4 +61,4 @@ | |||
| owner: matrix | |||
| group: matrix | |||
| mode: '0770' | |||
| when: customise_base_domain_website is defined | |||
| when: awx_customise_base_domain_website is defined | |||