mirror of
https://github.com/famedly/ansible-collection-matrix
synced 2024-12-14 13:12:27 +00:00
101 lines
3.7 KiB
YAML
101 lines
3.7 KiB
YAML
---
|
|
- name: install synapse with pip into virtualenv
|
|
block:
|
|
- name: Install dependencies
|
|
apt:
|
|
name:
|
|
- git
|
|
- build-essential
|
|
- python3-dev
|
|
- python3-virtualenv
|
|
- python3-pip
|
|
- python3-setuptools
|
|
- sqlite3
|
|
- libffi-dev
|
|
- libssl-dev
|
|
- libjpeg-dev
|
|
- libxslt1-dev
|
|
- libpq-dev
|
|
state: present
|
|
cache_valid_time: 1800
|
|
register: matrix_synapse_dependencies_pulled
|
|
until: matrix_synapse_dependencies_pulled is success
|
|
retries: 10
|
|
delay: 5
|
|
tags: ['prepare', 'prepare-synapse']
|
|
|
|
- name: Create virtualenv
|
|
pip:
|
|
name: >-2
|
|
{{
|
|
['pip', 'setuptools']
|
|
+
|
|
(['txredisapi>=1.4.7', 'hiredis'] if matrix_synapse_workers_enabled|bool else [])
|
|
}}
|
|
virtualenv: "{{ matrix_synapse_base_path }}/env"
|
|
virtualenv_python: python3
|
|
extra_args: --upgrade
|
|
tags: ['prepare', 'prepare-synapse']
|
|
|
|
- name: Clone synapse
|
|
git:
|
|
repo: https://github.com/matrix-org/synapse
|
|
dest: "{{ matrix_synapse_base_path }}/synapse"
|
|
accept_hostkey: yes
|
|
version: "v{{ matrix_synapse_version }}"
|
|
register: matrix_synapse_source_cloned
|
|
until: matrix_synapse_source_cloned is success
|
|
retries: 10
|
|
delay: 5
|
|
tags: ['prepare', 'prepare-synapse']
|
|
|
|
- name: Install Synapse
|
|
pip:
|
|
name: "{{ matrix_synapse_base_path }}/synapse[matrix-synapse-ldap3,postgres,resources.consent,acme,url_preview]"
|
|
virtualenv: "{{ matrix_synapse_base_path }}/env"
|
|
when: matrix_synapse_source_cloned.changed
|
|
notify: restart matrix-synapse
|
|
tags: ['deploy', 'deploy-synapse', 'skip_ansible_lint']
|
|
when: matrix_synapse_deployment_method == "pip"
|
|
|
|
- name: Ensure synapse container image is present
|
|
docker_image:
|
|
name: "{{ matrix_synapse_container_ref }}:{{ matrix_synapse_container_tag }}"
|
|
force_source: "{{ matrix_synapse_docker_pull }}"
|
|
source: pull
|
|
state: present
|
|
register: matrix_synapse_container_image_pulled
|
|
until: matrix_synapse_container_image_pulled is success
|
|
retries: 10
|
|
delay: 5
|
|
when: matrix_synapse_deployment_method == "docker"
|
|
tags: ['prepare', 'prepare-synapse']
|
|
|
|
- name: Ensure synapse container is running
|
|
docker_container:
|
|
name: "{{ matrix_synapse_container_name }}"
|
|
image: "{{ matrix_synapse_container_ref }}:{{ matrix_synapse_container_tag }}"
|
|
networks: "{{ matrix_synapse_docker_networks }}"
|
|
etc_hosts: "{{ matrix_synapse_docker_etc_hosts }}"
|
|
ports: "{{ matrix_synapse_docker_ports }}"
|
|
labels: "{{ matrix_synapse_docker_labels_complete }}"
|
|
env: "{{ matrix_synapse_docker_env }}"
|
|
recreate: "{{ matrix_synapse_docker_recreate }}"
|
|
entrypoint: "{{ matrix_synapse_docker_entrypoint }}"
|
|
command: "{{ matrix_synapse_docker_command }}"
|
|
user: "{{ synapse_user.uid }}:{{ appservice_group.gid }}"
|
|
volumes: "{{ matrix_synapse_docker_volumes }}"
|
|
restart_policy: unless-stopped
|
|
state: started
|
|
register: matrix_synapse_container_started
|
|
when: matrix_synapse_deployment_method == "docker"
|
|
tags: ['deploy', 'deploy-synapse']
|
|
|
|
- name: Refresh container certificates if required
|
|
community.docker.docker_container_exec:
|
|
container: "{{ matrix_synapse_container_name }}"
|
|
command: "{{ matrix_synapse_container_certificate_refresh_command }}"
|
|
user: "{{ matrix_synapse_container_certificate_refresh_user_id }}"
|
|
when: matrix_synapse_container_certificate_refresh and matrix_synapse_deployment_method == "docker" and matrix_synapse_container_started.changed
|
|
notify: restart matrix-synapse
|
|
tags: ['deploy', 'deploy-synapse']
|