ansible-collection-famedly-.../roles/synapse/tasks/deployment.yml
2022-05-10 13:47:35 +02:00

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']