xoxys.matrix/tasks/install.yml

74 lines
2.2 KiB
YAML
Raw Normal View History

2019-01-18 14:52:23 +01:00
---
- name: Prepare base folders
file:
path: "{{ item }}"
state: directory
owner: "{{ matrix_user }}"
group: "{{ matrix_user }}"
mode: 0750
loop:
- "{{ matrix_base_dir }}"
- "{{ matrix_conf_dir }}"
2019-01-19 01:30:45 +01:00
- "{{ matrix_data_dir }}"
2019-01-19 15:09:07 +01:00
- "{{ matrix_log_dir }}"
2019-01-18 14:52:23 +01:00
become: True
become_user: root
- block:
- name: Upgrade python dependencies
pip:
name: "{{ item }}"
virtualenv: "{{ matrix_base_dir }}/env"
2019-01-19 01:30:45 +01:00
virtualenv_command: /usr/bin/python3 -m venv
2019-01-18 14:52:23 +01:00
extra_args: --upgrade
loop:
- pip
- setuptools
- psycopg2
- name: Install with pip and virtualenv
pip:
2019-01-19 01:30:45 +01:00
name: matrix-synapse[all]
2019-01-18 14:52:23 +01:00
version: "{{ matrix_version }}"
virtualenv: "{{ matrix_base_dir }}/env"
2019-01-19 01:30:45 +01:00
virtualenv_command: /usr/bin/python3 -m venv
2019-01-18 14:52:23 +01:00
2019-01-19 15:06:56 +01:00
- name: Create signing key
shell: "{{ matrix_base_dir }}/env/bin/python -c \"from signedjson import key; file = open('{{ matrix_conf_dir }}/{{ matrix_base_url | urlsplit('hostname') }}.signing.key','w'); key.write_signing_keys(file, [key.generate_signing_key('first')]); file.close()\""
2019-01-19 15:06:56 +01:00
args:
creates: "{{ matrix_conf_dir }}/{{ matrix_base_url | urlsplit('hostname') }}.signing.key"
2019-01-19 15:06:56 +01:00
notify: __matrix_restart
- name: Deploy global config files
2019-01-18 14:52:23 +01:00
template:
2019-01-19 15:06:56 +01:00
src: "opt/matrix/config/{{ item }}.j2"
dest: "{{ matrix_conf_dir }}/{{ item }}"
mode: 0650
loop:
- "homeserver.yml"
2019-01-19 15:22:55 +01:00
- "logging.config"
2019-01-18 14:52:23 +01:00
notify: __matrix_restart
become: True
become_user: "{{ matrix_user }}"
- block:
- name: Copy systemd unit file
template:
src: "etc/systemd/system/matrix.service.j2"
dest: "/etc/systemd/system/matrix.service"
notify: __matrix_restart
- name: Open ports in iptables
iptables_raw:
name: "{{ item.name }}"
rules: "{{ item.rules }}"
state: "{{ item.state }}"
weight: "{{ item.weight | default(omit) }}"
table: "{{ item.table | default(omit) }}"
with_items: "{{ matrix_open_ports }}"
loop_control:
label: "{{ item.name }}"
when: matrix_iptables_enabled
become: True
become_user: root