- name: Ensure dateutils is installed in AWX delegate_to: 127.0.0.1 yum: name: dateutils state: latest - 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 - name: Ensure curl and jq intalled on target machine apt: pkg: - curl - jq state: present - name: Collect the internal IP of the matrix-synapse container shell: "/usr/bin/docker inspect --format '{''{range.NetworkSettings.Networks}''}{''{.IPAddress}''}{''{end}''}' matrix-synapse" register: awx_synapse_container_ip - name: Collect access token for janitor user shell: | 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: awx_purge_dates - name: Calculate initial size of local media repository shell: du -sh /matrix/synapse/storage/media-store/local* 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: 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: "{{ 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: "{{ 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: 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: 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: "{{ 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: "{{ 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: "{{ 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: "{{ 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: description: 'AWX Session Token' scope: "write" state: absent existing_token_id: "{{ awx_session_token.ansible_facts.tower_token.id }}" 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: End playbook early if this task is called. meta: end_play when: awx_end_playbook is defined and awx_end_playbook|bool