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.
78 lines
3.2 KiB
YAML
78 lines
3.2 KiB
YAML
---
|
|
# This will throw a Permission Denied error if already mounted using fuse
|
|
- name: Check Dendrite media store path
|
|
stat:
|
|
path: "{{ matrix_dendrite_media_store_path }}"
|
|
register: local_path_media_store_stat
|
|
ignore_errors: true
|
|
|
|
# This is separate and conditional, to ensure we don't execute it
|
|
# if the path already exists or we failed to check, because it's mounted using fuse.
|
|
- name: Ensure Dendrite media store path exists
|
|
file:
|
|
path: "{{ matrix_dendrite_media_store_path }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
when: "not local_path_media_store_stat.failed and not local_path_media_store_stat.stat.exists"
|
|
|
|
- name: Ensure Dendrite Docker image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_dendrite_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_dendrite_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_dendrite_docker_image_force_pull }}"
|
|
|
|
- name: Check if a Dendrite signing key exists
|
|
stat:
|
|
path: "{{ matrix_dendrite_config_dir_path }}/{{ matrix_server_fqn_matrix }}.signing.pem"
|
|
register: matrix_dendrite_signing_key_stat
|
|
|
|
# We do this so that the signing key would get generated.
|
|
# We don't use the `docker_container` module, because using it with `cap_drop` requires
|
|
# a very recent version, which is not available for a lot of people yet.
|
|
- name: Generate Dendrite signing key
|
|
command: |
|
|
docker run
|
|
--rm
|
|
--name=matrix-dendrite-config
|
|
--entrypoint=generate-keys
|
|
--mount type=bind,src={{ matrix_dendrite_config_dir_path }},dst=/data
|
|
{{ matrix_dendrite_docker_image }} --private-key=/data/{{ matrix_server_fqn_matrix }}.signing.pem
|
|
generate
|
|
when: "not matrix_dendrite_signing_key_stat.stat.exists"
|
|
|
|
- name: Ensure Dendrite server key exists
|
|
file:
|
|
path: "{{ matrix_dendrite_config_dir_path }}/{{ matrix_server_fqn_matrix }}.signing.pem"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Ensure Dendrite configuration installed
|
|
copy:
|
|
content: "{{ matrix_dendrite_configuration|to_nice_yaml(indent=2, width=999999) }}"
|
|
dest: "{{ matrix_dendrite_config_dir_path }}/dendrite.yaml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Ensure matrix-dendrite.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/dendrite/systemd/matrix-dendrite.service.j2"
|
|
dest: "{{ matrix_systemd_path }}/matrix-dendrite.service"
|
|
mode: 0644
|
|
register: matrix_dendrite_systemd_service_result
|
|
|
|
- name: Ensure systemd reloaded after matrix-dendrite.service installation
|
|
service:
|
|
daemon_reload: true
|
|
when: "matrix_dendrite_systemd_service_result.changed|bool"
|
|
|
|
- name: Ensure matrix-dendrite-create-account script created
|
|
template:
|
|
src: "{{ role_path }}/templates/dendrite/usr-local-bin/matrix-dendrite-create-account.j2"
|
|
dest: "{{ matrix_local_bin_path }}/matrix-dendrite-create-account"
|
|
mode: 0750
|