|
|
|
---
|
|
|
|
|
|
|
|
- name: Ensure Matrix base path exists
|
|
|
|
file:
|
|
|
|
path: "{{ item }}"
|
|
|
|
state: directory
|
|
|
|
mode: "{{ matrix_base_data_path_mode }}"
|
|
|
|
owner: "{{ matrix_user_username }}"
|
|
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
with_items:
|
|
|
|
- "{{ matrix_base_data_path }}"
|
|
|
|
|
|
|
|
- name: Preserve vars.yml on the server for easily restoring if it gets lost later on
|
|
|
|
copy:
|
|
|
|
src: "{{ inventory_dir }}/host_vars/{{ inventory_hostname }}/vars.yml"
|
|
|
|
dest: "{{ matrix_base_data_path }}/vars.yml"
|
|
|
|
owner: "{{ matrix_user_username }}"
|
|
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
mode: '0660'
|
|
|
|
|
|
|
|
# `docker_network` doesn't work as expected when the given network
|
|
|
|
# is a substring of a network that already exists.
|
|
|
|
#
|
|
|
|
# See:
|
|
|
|
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/12
|
|
|
|
# - https://github.com/ansible/ansible/issues/32926
|
|
|
|
#
|
|
|
|
# Due to that, we employ a workaround below.
|
|
|
|
#
|
|
|
|
# - name: Ensure Matrix network is created in Docker
|
|
|
|
# docker_network:
|
|
|
|
# name: "{{ matrix_docker_network }}"
|
|
|
|
# driver: bridge
|
|
|
|
|
|
|
|
- name: Check existence of Matrix network in Docker
|
|
|
|
shell:
|
|
|
|
cmd: "docker network ls -q --filter='name=^{{ matrix_docker_network }}$'"
|
|
|
|
register: result_check_docker_network
|
|
|
|
changed_when: false
|
|
|
|
check_mode: no
|
|
|
|
|
|
|
|
- name: Create Matrix network in Docker
|
|
|
|
shell:
|
|
|
|
cmd: "docker network create --driver=bridge {{ matrix_docker_network }}"
|
|
|
|
when: "result_check_docker_network.stdout == '' and not ansible_check_mode"
|
|
|
|
|
|
|
|
- name: Ensure matrix-remove-all script created
|
|
|
|
template:
|
|
|
|
src: "{{ role_path }}/templates/usr-local-bin/matrix-remove-all.j2"
|
|
|
|
dest: "{{ matrix_local_bin_path }}/matrix-remove-all"
|
|
|
|
mode: 0750
|