Matrix Docker Ansible eploy
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

230 řádky
9.1 KiB

  1. - name: Limit max upload size to 200MB part 1
  2. set_fact:
  3. matrix_synapse_max_upload_size_mb: "200"
  4. when: matrix_synapse_max_upload_size_mb_raw|int >= 200
  5. - name: Limit max upload size to 200MB part 2
  6. set_fact:
  7. matrix_synapse_max_upload_size_mb: "{{ matrix_synapse_max_upload_size_mb_raw }}"
  8. when: matrix_synapse_max_upload_size_mb_raw|int < 200
  9. - name: Record Synapse variables locally on AWX
  10. delegate_to: 127.0.0.1
  11. lineinfile:
  12. path: '{{ awx_cached_matrix_vars }}'
  13. regexp: "^#? *{{ item.key | regex_escape() }}:"
  14. line: "{{ item.key }}: {{ item.value }}"
  15. insertafter: '# Synapse Settings Start'
  16. with_dict:
  17. 'matrix_synapse_allow_public_rooms_over_federation': '{{ matrix_synapse_allow_public_rooms_over_federation }}'
  18. 'matrix_synapse_enable_registration': '{{ matrix_synapse_enable_registration }}'
  19. 'matrix_synapse_federation_enabled': '{{ matrix_synapse_federation_enabled }}'
  20. 'matrix_synapse_enable_group_creation': '{{ matrix_synapse_enable_group_creation }}'
  21. 'matrix_synapse_presence_enabled': '{{ matrix_synapse_presence_enabled }}'
  22. 'matrix_synapse_max_upload_size_mb': '{{ matrix_synapse_max_upload_size_mb }}'
  23. 'matrix_synapse_url_preview_enabled': '{{ matrix_synapse_url_preview_enabled }}'
  24. 'matrix_synapse_allow_guest_access': '{{ matrix_synapse_allow_guest_access }}'
  25. - name: Empty Synapse variable 'matrix_synapse_auto_join_rooms' locally on AWX, if raw inputs empty
  26. delegate_to: 127.0.0.1
  27. replace:
  28. path: '{{ awx_cached_matrix_vars }}'
  29. regexp: "^matrix_synapse_auto_join_rooms: .*$"
  30. replace: "matrix_synapse_auto_join_rooms: []"
  31. when: matrix_synapse_auto_join_rooms_raw|length == 0
  32. - name: If the raw inputs is not empty start constructing parsed auto_join_rooms list
  33. set_fact:
  34. matrix_synapse_auto_join_rooms_array: |-
  35. {{ matrix_synapse_auto_join_rooms_raw.splitlines() | to_json }}
  36. when: matrix_synapse_auto_join_rooms_raw|length > 0
  37. - name: Record Synapse variable 'matrix_synapse_auto_join_rooms' locally on AWX, if it's not blank
  38. delegate_to: 127.0.0.1
  39. lineinfile:
  40. path: '{{ awx_cached_matrix_vars }}'
  41. regexp: "^#? *{{ item.key | regex_escape() }}:"
  42. line: "{{ item.key }}: {{ item.value }}"
  43. insertafter: '# Synapse Settings Start'
  44. with_dict:
  45. "matrix_synapse_auto_join_rooms": "{{ matrix_synapse_auto_join_rooms_array }}"
  46. when: matrix_synapse_auto_join_rooms_raw|length > 0
  47. - name: Record Synapse Shared Secret if it's defined
  48. delegate_to: 127.0.0.1
  49. lineinfile:
  50. path: '{{ awx_cached_matrix_vars }}'
  51. regexp: "^#? *{{ item.key | regex_escape() }}:"
  52. line: "{{ item.key }}: {{ item.value }}"
  53. insertafter: '# Synapse Settings Start'
  54. with_dict:
  55. 'matrix_synapse_registration_shared_secret': '{{ ext_matrix_synapse_registration_shared_secret }}'
  56. when: ext_matrix_synapse_registration_shared_secret|length > 0
  57. - name: Record registations_require_3pid extra variable if true
  58. delegate_to: 127.0.0.1
  59. lineinfile:
  60. path: '{{ awx_cached_matrix_vars }}'
  61. regexp: "{{ item }}"
  62. line: "{{ item }}"
  63. insertbefore: '# Synapse Extension End'
  64. with_items:
  65. - " registrations_require_3pid:"
  66. - " - email"
  67. when: ext_registrations_require_3pid|bool
  68. - name: Remove registrations_require_3pid extra variable if false
  69. delegate_to: 127.0.0.1
  70. lineinfile:
  71. path: '{{ awx_cached_matrix_vars }}'
  72. regexp: "{{ item }}"
  73. line: "{{ item }}"
  74. insertbefore: '# Synapse Extension End'
  75. state: absent
  76. with_items:
  77. - " registrations_require_3pid:"
  78. - " - email"
  79. when: not ext_registrations_require_3pid|bool
  80. - name: Remove URL Languages
  81. delegate_to: 127.0.0.1
  82. replace:
  83. path: '{{ awx_cached_matrix_vars }}'
  84. regexp: '^(?!.*\bemail\b) - [a-zA-Z\-]{2,5}\n'
  85. after: ' url_preview_accept_language:'
  86. before: '# Synapse Extension End'
  87. - name: Set URL languages default if raw inputs empty
  88. set_fact:
  89. ext_url_preview_accept_language_default: 'en'
  90. when: ext_url_preview_accept_language_raw|length == 0
  91. - name: Set URL languages default if raw inputs not empty
  92. set_fact:
  93. ext_url_preview_accept_language_default: "{{ ext_url_preview_accept_language_raw }}"
  94. when: ext_url_preview_accept_language_raw|length > 0
  95. - name: Set URL languages if raw inputs empty
  96. delegate_to: 127.0.0.1
  97. lineinfile:
  98. path: '{{ awx_cached_matrix_vars }}'
  99. insertafter: '^ url_preview_accept_language:'
  100. line: " - {{ ext_url_preview_accept_language_default }}"
  101. when: ext_url_preview_accept_language_raw|length == 0
  102. - name: Set URL languages if raw inputs not empty
  103. delegate_to: 127.0.0.1
  104. lineinfile:
  105. path: '{{ awx_cached_matrix_vars }}'
  106. insertafter: '^ url_preview_accept_language:'
  107. line: " - {{ item }}"
  108. with_items: "{{ ext_url_preview_accept_language_raw.splitlines() }}"
  109. when: ext_url_preview_accept_language_raw|length > 0
  110. - name: Remove Federation Whitelisting 1
  111. delegate_to: 127.0.0.1
  112. replace:
  113. path: '{{ awx_cached_matrix_vars }}'
  114. regexp: '^ - [a-z0-9]+\.[a-z0-9.]+\n'
  115. after: ' federation_domain_whitelist:'
  116. before: '# Synapse Extension End'
  117. - name: Remove Federation Whitelisting 2
  118. delegate_to: 127.0.0.1
  119. lineinfile:
  120. path: '{{ awx_cached_matrix_vars }}'
  121. line: " federation_domain_whitelist:"
  122. state: absent
  123. - name: Set Federation Whitelisting 1
  124. delegate_to: 127.0.0.1
  125. lineinfile:
  126. path: '{{ awx_cached_matrix_vars }}'
  127. insertafter: '^matrix_synapse_configuration_extension_yaml: \|'
  128. line: " federation_domain_whitelist:"
  129. when: ext_federation_whitelist_raw|length > 0
  130. - name: Set Federation Whitelisting 2
  131. delegate_to: 127.0.0.1
  132. lineinfile:
  133. path: '{{ awx_cached_matrix_vars }}'
  134. insertafter: '^ federation_domain_whitelist:'
  135. line: " - {{ item }}"
  136. with_items: "{{ ext_federation_whitelist_raw.splitlines() }}"
  137. when: ext_federation_whitelist_raw|length > 0
  138. - name: Set ext_recaptcha_public_key to a 'public-key' if undefined
  139. set_fact: ext_recaptcha_public_key="public-key"
  140. when: (ext_recaptcha_public_key is not defined) or (ext_recaptcha_public_key|length == 0)
  141. - name: Set ext_recaptcha_private_key to a 'private-key' if undefined
  142. set_fact: ext_recaptcha_private_key="private-key"
  143. when: (ext_recaptcha_private_key is not defined) or (ext_recaptcha_private_key|length == 0)
  144. - name: Record Synapse Extension variables locally on AWX
  145. delegate_to: 127.0.0.1
  146. lineinfile:
  147. path: '{{ awx_cached_matrix_vars }}'
  148. regexp: "^#? *{{ item.key | regex_escape() }}:"
  149. line: "{{ item.key }}: {{ item.value }}"
  150. insertbefore: '# Synapse Extension End'
  151. with_dict:
  152. ' enable_registration_captcha': '{{ ext_enable_registration_captcha }}'
  153. ' recaptcha_public_key': '{{ ext_recaptcha_public_key }}'
  154. ' recaptcha_private_key': '{{ ext_recaptcha_private_key }}'
  155. - name: Record Synapse Custom variables locally on AWX
  156. delegate_to: 127.0.0.1
  157. lineinfile:
  158. path: '{{ awx_cached_matrix_vars }}'
  159. regexp: "^#? *{{ item.key | regex_escape() }}:"
  160. line: "{{ item.key }}: {{ item.value }}"
  161. insertafter: '# Custom Settings Start'
  162. with_dict:
  163. 'ext_federation_whitelist_raw': '{{ ext_federation_whitelist_raw.splitlines() | to_json }}'
  164. 'ext_url_preview_accept_language_default': '{{ ext_url_preview_accept_language_default.splitlines() | to_json }}'
  165. 'ext_enable_registration_captcha': '{{ ext_enable_registration_captcha }}'
  166. 'ext_recaptcha_public_key': '"{{ ext_recaptcha_public_key }}"'
  167. 'ext_recaptcha_private_key': '"{{ ext_recaptcha_private_key }}"'
  168. - name: Save new 'Configure Synapse' survey.json to the AWX tower, template
  169. delegate_to: 127.0.0.1
  170. template:
  171. src: 'roles/matrix-awx/surveys/configure_synapse.json.j2'
  172. dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}//configure_synapse.json'
  173. - name: Copy new 'Configure Synapse' survey.json to target machine
  174. copy:
  175. src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_synapse.json'
  176. dest: '/matrix/awx/configure_synapse.json'
  177. mode: '0660'
  178. - name: Collect AWX admin token the hard way!
  179. delegate_to: 127.0.0.1
  180. shell: |
  181. curl -sku {{ tower_username }}:{{ tower_password }} -H "Content-Type: application/json" -X POST -d '{"description":"Tower CLI", "application":null, "scope":"write"}' https://{{ tower_host }}/api/v2/users/1/personal_tokens/ | jq '.token' | sed -r 's/\"//g'
  182. register: tower_token
  183. no_log: True
  184. - name: Recreate 'Configure Synapse' job template
  185. delegate_to: 127.0.0.1
  186. awx.awx.tower_job_template:
  187. name: "{{ matrix_domain }} - 1 - Configure Synapse"
  188. description: "Configure Synapse (homeserver) settings."
  189. extra_vars: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/extra_vars.json') }}"
  190. job_type: run
  191. job_tags: "start,setup-synapse"
  192. inventory: "{{ member_id }}"
  193. project: "{{ member_id }} - Matrix Docker Ansible Deploy"
  194. playbook: setup.yml
  195. credential: "{{ member_id }} - AWX SSH Key"
  196. survey_enabled: true
  197. survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_synapse.json') }}"
  198. become_enabled: yes
  199. state: present
  200. verbosity: 1
  201. tower_host: "https://{{ tower_host }}"
  202. tower_oauthtoken: "{{ tower_token.stdout }}"
  203. validate_certs: yes