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.
85 lines
3.3 KiB
YAML
85 lines
3.3 KiB
YAML
---
|
|
|
|
- import_tasks: "{{ role_path }}/../matrix-base/tasks/util/ensure_openssl_installed.yml"
|
|
|
|
- name: Ensure hookshot image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_hookshot_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_hookshot_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_hookshot_docker_image_force_pull }}"
|
|
|
|
- name: Ensure hookshot paths exist
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
with_items:
|
|
- "{{ matrix_hookshot_base_path }}"
|
|
|
|
- name: Check if hookshot passkey exists
|
|
stat:
|
|
path: "{{ matrix_hookshot_base_path }}/passkey.pem"
|
|
register: hookshot_passkey_file
|
|
|
|
- name: Generate hookshot passkey if it doesn't exist
|
|
shell: "{{ matrix_host_command_openssl }} genpkey -out {{ matrix_hookshot_base_path }}/passkey.pem -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:4096"
|
|
become: true
|
|
become_user: "{{ matrix_user_username }}"
|
|
when: "not hookshot_passkey_file.stat.exists"
|
|
|
|
- name: Ensure hookshot config.yml installed if provided
|
|
copy:
|
|
content: "{{ matrix_hookshot_configuration|to_nice_yaml(indent=2, width=999999) }}"
|
|
dest: "{{ matrix_hookshot_base_path }}/config.yml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Validate hookshot config.yml
|
|
command: |
|
|
{{ matrix_host_command_docker }} run
|
|
--rm
|
|
--name={{ matrix_hookshot_container_url }}-validate
|
|
--user={{ matrix_user_uid }}:{{ matrix_user_gid }}
|
|
--cap-drop=ALL
|
|
-v {{ matrix_hookshot_base_path }}/config.yml:/config.yml
|
|
{{ matrix_hookshot_docker_image }} node Config/Config.js /config.yml
|
|
register: hookshot_config_validation_result
|
|
|
|
- name: Fail if hookshot config.yml invalid
|
|
fail:
|
|
msg: "Your hookshot configuration did not pass validation:\n{{ hookshot_config_validation_result.stdout }}\n{{ hookshot_config_validation_result.stderr }}"
|
|
when: "hookshot_config_validation_result.rc > 0"
|
|
|
|
- name: Ensure hookshot registration.yml installed if provided
|
|
copy:
|
|
content: "{{ matrix_hookshot_registration|to_nice_yaml(indent=2, width=999999) }}"
|
|
dest: "{{ matrix_hookshot_base_path }}/registration.yml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Ensure hookshot github private key file installed if github is enabled
|
|
copy:
|
|
content: "{{ matrix_hookshot_github_private_key }}"
|
|
dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}"
|
|
mode: 0400
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
when: matrix_hookshot_github_enabled|bool and matrix_hookshot_github_private_key|length > 0
|
|
|
|
- name: Ensure matrix-hookshot.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-hookshot.service.j2"
|
|
dest: "{{ matrix_systemd_path }}/matrix-hookshot.service"
|
|
mode: 0644
|
|
register: matrix_hookshot_systemd_service_result
|
|
|
|
- name: Ensure systemd reloaded after matrix-hookshot.service installation
|
|
service:
|
|
daemon_reload: true
|
|
when: matrix_hookshot_systemd_service_result.changed
|