--- - name: Include vars in matrix_vars.yml include_vars: file: '{{ awx_cached_matrix_vars }}' 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 register: matrix_synapse_ip - name: Collect access token of @admin-mjolnir user shell: | curl -X POST --header 'Content-Type: application/json' -d '{"identifier": {"type": "m.id.user","user": "admin-mjolnir"}, "password": "{{ awx_mjolnir_user_password }}", "type": "m.login.password"}' 'http://{{ matrix_synapse_ip.stdout }}:8008/_matrix/client/r0/login' | jq '.access_token' register: awx_mjolnir_user_access_token no_log: true - name: Record Mjolnir Bot variables locally on AWX delegate_to: 127.0.0.1 lineinfile: path: '{{ awx_cached_matrix_vars }}' regexp: "^#? *{{ item.key | regex_escape() }}:" line: "{{ item.key }}: {{ item.value }}" insertafter: '# Mjolnir Settings Start' with_dict: 'matrix_bot_mjolnir_enabled': '{{ matrix_bot_mjolnir_enabled }}' 'matrix_bot_mjolnir_access_token': '{{ awx_mjolnir_user_access_token.stdout[1:-1] }}' 'matrix_bot_mjolnir_management_room': '"{{ matrix_bot_mjolnir_management_room }}"' no_log: true - name: Remove Synapse rate-limiting for admin-mjolnir user shell: | /usr/local/bin/matrix-postgres-cli-non-interactive --dbname=synapse --command="INSERT INTO ratelimit_override VALUES ('@admin-mjolnir:{{ matrix_domain }}', 0, 0);" ignore_errors: true - name: Save new 'Configure Mjolnir' survey.json to the AWX tower, template delegate_to: 127.0.0.1 template: src: 'roles/matrix-awx/surveys/configure_mjolnir.json.j2' dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_mjolnir.json' - name: Copy new 'Configure Mjolnir' survey.json to target machine copy: src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_mjolnir.json' dest: '/matrix/awx/configure_mjolnir.json' mode: '0660' - name: Recreate 'Configure Mjolnir Bot' job template delegate_to: 127.0.0.1 awx.awx.tower_job_template: name: "{{ matrix_domain }} - 1 - Configure Mjolnir Bot" description: "Configure Mjolnir settings, Mjolnir is a moderation bot for Matrix." extra_vars: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/extra_vars.json') }}" job_type: run job_tags: "start,setup-bot-mjolnir" inventory: "{{ member_id }}" project: "{{ member_id }} - Matrix Docker Ansible Deploy" playbook: setup.yml credential: "{{ member_id }} - AWX SSH Key" survey_enabled: true survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_mjolnir.json') }}" become_enabled: true state: present verbosity: 1 tower_host: "https://{{ awx_host }}" tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}" validate_certs: true