feat(synapse): add deployment method virtualenv

This commit is contained in:
2024-09-26 23:13:41 +02:00
parent 03501ac444
commit 7d7693a2c7
10 changed files with 238 additions and 6 deletions

View File

@ -1,12 +1,19 @@
---
- name: Ensure synapse group '{{ synapse_group }}' is {{ synapse_state }}
ansible.builtin.group:
name: "{{ synapse_group }}"
system: "{{ synapse_group_system | default(true, true) }}"
state: "{{ synapse_state }}"
register: synapse_group_info
- name: Ensure synapse user '{{ synapse_user }}' is {{ synapse_state }}
ansible.builtin.user:
name: "{{ synapse_user }}"
state: "{{ synapse_state }}"
system: "{{ synapse_user_system | default(true, true) }}"
create_home: "{{ synapse_user_create_home | default(false, true) }}"
groups: "{{ synapse_user_groups | default(omit, true) }}"
append: "{{ (synapse_user_groups is defined) | ternary(true, omit) }}"
groups: "{{ synapse_user_all_groups | default(omit, true) }}"
append: "{{ synapse_user_groups_append | default(omit, true) }}"
register: synapse_user_info
- name: Ensure directories for synapse are {{ synapse_state }}
@ -64,3 +71,4 @@
mode: "0640"
notify:
- synapse-restart
when: synapse_state != 'absent'

View File

@ -0,0 +1,67 @@
---
- name: Ensure directory for virtualenv is {{ synapse_state }}
ansible.builtin.file:
path: "{{ synapse_venv_path }}"
owner: >-2
{{ synapse_user_info.uid | default(synapse_user) }}
group: >-2
{{ synapse_user_info.group | default(synapse_user) }}
mode: "{{ synapse_venv_path_mode | default('0755') }}"
state: >-
{{ (synapse_state == 'present')
| ternary('directory', 'absent') }}
- name: Ensure virtual environment is {{ synapse_state }}
ansible.builtin.pip:
name: "{{ synapse_venv_pip_dependencies }}"
virtualenv: "{{ synapse_venv_path }}"
virtualenv_python: "{{ synapse_venv_python_binary }}"
extra_args: "{{ synapse_venv_extra_args | default(omit, true) }}"
state: "{{ synapse_state }}"
- name: Ensure synapse pip package is {{ synapse_state }}
ansible.builtin.pip:
name: "{{ synapse_venv_package }}"
version: "{{ synapse_version }}"
state: "{{ synapse_state }}"
virtualenv: "{{ synapse_venv_path }}"
notify:
- synapse-restart
when: synapse_state != 'absent'
- name: Ensure synapse virtualenv is {{ synapse_state }}
ansible.builtin.file:
path: "{{ synapse_venv_path }}"
state: "{{ synapse_state }}"
when: synapse_state == 'absent'
- name: Ensure systemd unit is {{ synapse_state }}
ansible.builtin.template:
src: "synapse.service.j2"
dest: "{{ synapse_systemd_service_file }}"
notify:
- systemd-daemon-reload
when: synapse_state != 'absent'
- name: Ensure systemd unit is {{ synapse_state }}
ansible.builtin.file:
path: "{{ synapse_systemd_service_file }}"
state: "{{ synapse_state }}"
when: synapse_state == 'absent'
notify:
- systemd-daemon-reload
- name: Ensure handlers are flushed for systemd daemon reload and synapse service state propagation
meta: flush_handlers
- name: Ensure systemd service is {{ synapse_systemd_state }}
ansible.builtin.systemd_service:
name: "{{ synapse_systemd_name }}"
state: "{{ synapse_systemd_state }}"
when: synapse_state != 'absent'
- name: Ensure systemd service is {{ synapse_systemd_enabled | ternary('enabled', 'disabled') }}
ansible.builtin.systemd_service:
name: "{{ synapse_systemd_name }}"
enabled: "{{ synapse_systemd_enabled }}"
when: synapse_state != 'absent'