|
|
|
---
|
|
|
|
|
|
|
|
- name: Install system dependencies
|
|
|
|
yum: name={{ synapse_packages }}
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Check if pg_config is available
|
|
|
|
stat: path=/bin/pg_config
|
|
|
|
register: synapse_pg_config
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Setup pg_config
|
|
|
|
alternatives:
|
|
|
|
name: psql-pg_config
|
|
|
|
link: /bin/pg_config
|
|
|
|
path: /usr/pgsql-13/bin/pg_config
|
|
|
|
when: not synapse_pg_config.stat.exists
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Wipe pip cache
|
|
|
|
file: path=/root/.cache/pip state=absent
|
|
|
|
when: synapse_old_venv.stat.exists
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Install or update dependencies in the virtual env
|
|
|
|
pip:
|
|
|
|
state: latest
|
|
|
|
virtualenv: "{{ synapse_root_dir }}/venv"
|
|
|
|
virtualenv_command: /usr/bin/virtualenv-3
|
|
|
|
virtualenv_python: /usr/bin/python3
|
|
|
|
name:
|
|
|
|
- bleach
|
|
|
|
- matrix-synapse-ldap3
|
|
|
|
- psycopg2
|
|
|
|
- txacme
|
|
|
|
- Jinja2
|
|
|
|
- lxml
|
|
|
|
- pysaml2
|
|
|
|
- mock
|
|
|
|
- six
|
|
|
|
- authlib
|
|
|
|
- twisted
|
|
|
|
notify: restart synapse
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Install or update synapse in a virtualenv
|
|
|
|
pip:
|
|
|
|
virtualenv: "{{ synapse_root_dir }}/venv"
|
|
|
|
virtualenv_command: /usr/bin/virtualenv-3
|
|
|
|
virtualenv_python: /usr/bin/python3
|
|
|
|
name:
|
|
|
|
- matrix-synapse
|
|
|
|
version: "{{ synapse_version }}"
|
|
|
|
notify: restart synapse
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Install the service unit file
|
|
|
|
template: src=matrix-synapse.service.j2 dest=/etc/systemd/system/matrix-synapse.service
|
|
|
|
register: synapse_service_unit
|
|
|
|
notify: restart synapse
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Reload systemd
|
|
|
|
systemd: daemon_reload=True
|
|
|
|
when: synapse_service_unit.changed
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Install REST auth module
|
|
|
|
get_url:
|
|
|
|
url: https://raw.githubusercontent.com/ma1uta/matrix-synapse-rest-password-provider/master/rest_auth_provider.py
|
|
|
|
dest: "{{ synapse_root_dir }}/venv/lib/python3.6/site-packages/"
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Create the PostgreSQL role
|
|
|
|
postgresql_user:
|
|
|
|
db: postgres
|
|
|
|
name: "{{ synapse_pg_db_user }}"
|
|
|
|
password: "{{ synapse_pg_db_pass }}"
|
|
|
|
login_host: "{{ synapse_pg_db_server }}"
|
|
|
|
login_user: sqladmin
|
|
|
|
login_password: "{{ pg_admin_pass }}"
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Create the PostgreSQL database
|
|
|
|
postgresql_db:
|
|
|
|
name: "{{ synapse_pg_db_name }}"
|
|
|
|
encoding: UTF-8
|
|
|
|
lc_collate: C
|
|
|
|
lc_ctype: C
|
|
|
|
template: template0
|
|
|
|
owner: "{{ synapse_pg_db_user }}"
|
|
|
|
login_host: "{{ synapse_pg_db_server }}"
|
|
|
|
login_user: sqladmin
|
|
|
|
login_password: "{{ pg_admin_pass }}"
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Deploy backup scripts
|
|
|
|
template: src={{ item }}-backup.sh.j2 dest=/etc/backup/{{ item }}.d/matrix_synapse.sh mode=750
|
|
|
|
loop:
|
|
|
|
- pre
|
|
|
|
- post
|
|
|
|
tags: matrix
|
|
|
|
|
|
|
|
- name: Reset SELinux contexts
|
|
|
|
command: restorecon -R {{ synapse_root_dir }}
|
|
|
|
changed_when: False
|
|
|
|
when: ansible_selinux.status == 'enabled'
|
|
|
|
tags: matrix
|