eeca3c8dca
The `to_nice_yaml` helper will by default wrap any string YAML values on the first space after column 80. This can in worst case yield invalid YAML syntax. More details in Ansible's documentation here: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#formatting-data-yaml-and-json In short, you need to explicitly provide a custom width argument of a high number of some kind to avoid the line wrapping.
102 lines
4.5 KiB
YAML
102 lines
4.5 KiB
YAML
---
|
|
|
|
- set_fact:
|
|
matrix_registration_requires_restart: false
|
|
|
|
- block:
|
|
- name: Check if an SQLite database already exists
|
|
stat:
|
|
path: "{{ matrix_registration_sqlite_database_path_local }}"
|
|
register: matrix_registration_sqlite_database_path_local_stat_result
|
|
|
|
- block:
|
|
- set_fact:
|
|
matrix_postgres_db_migration_request:
|
|
src: "{{ matrix_registration_sqlite_database_path_local }}"
|
|
dst: "{{ matrix_registration_database_connection_string }}"
|
|
caller: "{{ role_path|basename }}"
|
|
engine_variable_name: 'matrix_registration_database_engine'
|
|
engine_old: 'sqlite'
|
|
systemd_services_to_stop: ['matrix-registration.service']
|
|
# pgloader makes `ex_date` of type `TIMESTAMP WITH TIMEZONE`,
|
|
# which makes matrix-registration choke on it later on when comparing dates.
|
|
additional_psql_statements_list:
|
|
- ALTER TABLE tokens ALTER COLUMN ex_date TYPE TIMESTAMP WITHOUT TIME ZONE;
|
|
additional_psql_statements_db_name: "{{ matrix_registration_database_name }}"
|
|
|
|
- import_tasks: "{{ role_path }}/../matrix-postgres/tasks/util/migrate_db_to_postgres.yml"
|
|
|
|
- set_fact:
|
|
matrix_registration_requires_restart: true
|
|
when: "matrix_registration_sqlite_database_path_local_stat_result.stat.exists|bool"
|
|
when: "matrix_registration_database_engine == 'postgres'"
|
|
|
|
- name: Ensure matrix-registration paths exist
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
with_items:
|
|
- {path: "{{ matrix_registration_base_path }}", when: true}
|
|
- {path: "{{ matrix_registration_config_path }}", when: true}
|
|
- {path: "{{ matrix_registration_data_path }}", when: true}
|
|
- {path: "{{ matrix_registration_docker_src_files_path }}", when: "{{ matrix_registration_container_image_self_build }}"}
|
|
when: "item.when|bool"
|
|
|
|
- name: Ensure matrix-registration image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_registration_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_registration_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_registration_docker_image_force_pull }}"
|
|
when: "not matrix_registration_container_image_self_build|bool"
|
|
|
|
- name: Ensure matrix-registration repository is present when self-building
|
|
git:
|
|
repo: "{{ matrix_registration_container_image_self_build_repo }}"
|
|
dest: "{{ matrix_registration_docker_src_files_path }}"
|
|
version: "{{ matrix_registration_container_image_self_build_branch }}"
|
|
force: "yes"
|
|
register: matrix_registration_git_pull_results
|
|
when: "matrix_registration_container_image_self_build|bool"
|
|
|
|
- name: Ensure matrix-registration Docker image is built
|
|
docker_image:
|
|
name: "{{ matrix_registration_docker_image }}"
|
|
source: build
|
|
force_source: "{{ matrix_registration_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_registration_git_pull_results.changed }}"
|
|
build:
|
|
dockerfile: Dockerfile
|
|
path: "{{ matrix_registration_docker_src_files_path }}"
|
|
pull: true
|
|
when: "matrix_registration_container_image_self_build|bool"
|
|
|
|
- name: Ensure matrix-registration config installed
|
|
copy:
|
|
content: "{{ matrix_registration_configuration|to_nice_yaml(indent=2, width=999999) }}"
|
|
dest: "{{ matrix_registration_config_path }}/config.yaml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Ensure matrix-registration.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-registration.service.j2"
|
|
dest: "{{ matrix_systemd_path }}/matrix-registration.service"
|
|
mode: 0644
|
|
register: matrix_registration_systemd_service_result
|
|
|
|
- name: Ensure systemd reloaded after matrix-registration.service installation
|
|
service:
|
|
daemon_reload: true
|
|
when: "matrix_registration_systemd_service_result.changed|bool"
|
|
|
|
- name: Ensure matrix-registration.service restarted, if necessary
|
|
service:
|
|
name: "matrix-registration.service"
|
|
state: restarted
|
|
when: "matrix_registration_requires_restart|bool"
|