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.
 
 

101 lines
3.1 KiB

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