Matrix Docker Ansible eploy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

85 lines
2.5 KiB

  1. ---
  2. - name: Load list of available worker apps and endpoints
  3. include_vars: "{{ role_path }}/vars/workers.yml"
  4. - name: Ensure synapse worker base service file installed
  5. template:
  6. src: "{{ role_path }}/templates/synapse/systemd/matrix-synapse-worker@.service.j2"
  7. dest: "{{ matrix_systemd_path }}/matrix-synapse-worker@.service"
  8. mode: 0644
  9. register: matrix_synapse_worker_systemd_service_result
  10. - name: Ensure previous worker service symlinks are cleaned
  11. file:
  12. path: "{{ item.root + '/' + item.path }}"
  13. state: absent
  14. when:
  15. - item.state == 'link'
  16. - item.path is match('matrix-synapse-worker@.*\\.service')
  17. with_filetree:
  18. - "{{ matrix_systemd_path }}/matrix-synapse.service.wants"
  19. - name: Ensure systemd reloaded the worker service unit
  20. service:
  21. daemon_reload: yes
  22. - name: Ensure individual worker service symlinks exist
  23. service:
  24. name: "matrix-synapse-worker@{{ item.type }}:{{ item.port }}.service"
  25. enabled: true
  26. with_items: "{{ matrix_synapse_workers_enabled_list }}"
  27. - name: Find worker configs to be cleaned
  28. find:
  29. path: "{{ matrix_synapse_config_dir_path }}"
  30. patterns: "worker.*.yaml"
  31. use_regex: true
  32. register: worker_config_files
  33. - name: Ensure previous worker configs are cleaned
  34. file:
  35. path: "{{ item.path }}"
  36. state: absent
  37. with_items: "{{ worker_config_files.files }}"
  38. - name: Ensure creation of specific worker configs
  39. template:
  40. src: "{{ role_path }}/templates/synapse/worker.yaml.j2"
  41. dest: "{{ matrix_synapse_config_dir_path }}/worker.{{ item.type }}:{{ item.port }}.yaml"
  42. with_list: "{{ matrix_synapse_workers_enabled_list }}"
  43. - name: Add workers to synapse.wants list
  44. set_fact:
  45. matrix_synapse_systemd_wanted_services_list: >
  46. {{ matrix_synapse_systemd_wanted_services_list +
  47. ['matrix-synapse-worker@' + item.type + ':' + item.port|string + '.service'] }}
  48. with_items: "{{ matrix_synapse_workers_enabled_list }}"
  49. - name: Ensure matrix-synapse-worker-write-pid script is created
  50. copy:
  51. src: "{{ role_path }}/files/usr-local-bin/matrix-synapse-worker-write-pid"
  52. dest: "{{ matrix_local_bin_path }}/matrix-synapse-worker-write-pid"
  53. mode: 0750
  54. - name: Ensure jq is installed (Archlinux)
  55. pacman:
  56. name:
  57. - jq
  58. state: present
  59. when: (ansible_distribution == 'Archlinux')
  60. - name: Ensure jq is installed (CentOS)
  61. yum:
  62. name:
  63. - jq
  64. state: present
  65. when: (ansible_distribution == 'CentOS')
  66. - name: Ensure jq is installed (Debian)
  67. apt:
  68. name:
  69. - jq
  70. state: present
  71. when: (ansible_os_family == 'Debian')