Matrix Docker Ansible eploy
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 

181 рядки
7.5 KiB

  1. ---
  2. - name: Record Element-Web variables locally on AWX
  3. delegate_to: 127.0.0.1
  4. lineinfile:
  5. path: '{{ awx_cached_matrix_vars }}'
  6. regexp: "^#? *{{ item.key | regex_escape() }}:"
  7. line: "{{ item.key }}: {{ item.value }}"
  8. insertafter: '# Element Settings Start'
  9. with_dict:
  10. 'matrix_client_element_enabled': '{{ matrix_client_element_enabled }}'
  11. 'matrix_client_element_jitsi_preferredDomain': 'jitsi.{{ matrix_domain }}'
  12. 'matrix_client_element_default_theme': '{{ matrix_client_element_default_theme }}'
  13. 'matrix_client_element_registration_enabled': '{{ matrix_client_element_registration_enabled }}'
  14. 'matrix_client_element_brand': '{{ matrix_client_element_brand | trim }}'
  15. 'matrix_client_element_branding_welcomeBackgroundUrl': '{{ matrix_client_element_branding_welcomeBackgroundUrl | trim }}'
  16. 'matrix_client_element_welcome_logo': '{{ matrix_client_element_welcome_logo | trim }}'
  17. 'matrix_client_element_welcome_logo_link': '{{ matrix_client_element_welcome_logo_link | trim }}'
  18. - name: Record Element-Web custom variables locally on AWX
  19. delegate_to: 127.0.0.1
  20. lineinfile:
  21. path: '{{ awx_cached_matrix_vars }}'
  22. regexp: "^#? *{{ item.key | regex_escape() }}:"
  23. line: "{{ item.key }}: '{{ item.value }}'"
  24. insertbefore: '# Element Settings End'
  25. with_dict:
  26. 'awx_matrix_client_element_welcome_headline': '{{ awx_matrix_client_element_welcome_headline | trim }}'
  27. 'awx_matrix_client_element_welcome_text': '{{ awx_matrix_client_element_welcome_text | trim }}'
  28. - name: Set Element-Web custom branding locally on AWX
  29. delegate_to: 127.0.0.1
  30. lineinfile:
  31. path: '{{ awx_cached_matrix_vars }}'
  32. regexp: "^#? *{{ item.key | regex_escape() }}:"
  33. line: "{{ item.key }}: '{{ item.value }}'"
  34. insertafter: '# Element Settings Start'
  35. with_dict:
  36. 'matrix_client_element_brand': "{{ matrix_client_element_brand }}"
  37. when: matrix_client_element_brand | trim | length > 0
  38. - name: Remove Element-Web custom branding locally on AWX if not defined
  39. delegate_to: 127.0.0.1
  40. lineinfile:
  41. path: '{{ awx_cached_matrix_vars }}'
  42. regexp: "^matrix_client_element_brand: "
  43. state: absent
  44. when: matrix_client_element_brand | trim | length == 0
  45. - name: Set fact for 'https' string
  46. set_fact:
  47. awx_https_string: "https"
  48. - name: Set Element-Web custom logo locally on AWX if defined
  49. delegate_to: 127.0.0.1
  50. lineinfile:
  51. path: '{{ awx_cached_matrix_vars }}'
  52. regexp: "^#? *{{ item.key | regex_escape() }}:"
  53. line: "{{ item.key }}: '{{ item.value }}'"
  54. insertafter: '# Element Settings Start'
  55. with_dict:
  56. 'matrix_client_element_welcome_logo': '{{ matrix_client_element_welcome_logo }}'
  57. when: ( awx_https_string in matrix_client_element_welcome_logo ) and ( matrix_client_element_welcome_logo | trim | length > 0 )
  58. - name: Remove Element-Web custom logo locally on AWX if not defined
  59. delegate_to: 127.0.0.1
  60. lineinfile:
  61. path: '{{ awx_cached_matrix_vars }}'
  62. regexp: "^matrix_client_element_welcome_logo: "
  63. state: absent
  64. when: matrix_client_element_welcome_logo | trim | length == 0
  65. - name: Set Element-Web custom logo link locally on AWX if defined
  66. delegate_to: 127.0.0.1
  67. lineinfile:
  68. path: '{{ awx_cached_matrix_vars }}'
  69. regexp: "^#? *{{ item.key | regex_escape() }}:"
  70. line: "{{ item.key }}: '{{ item.value }}'"
  71. insertafter: '# Element Settings Start'
  72. with_dict:
  73. 'matrix_client_element_welcome_logo_link': '{{ matrix_client_element_welcome_logo_link }}'
  74. when: ( awx_https_string in matrix_client_element_welcome_logo_link ) and ( matrix_client_element_welcome_logo_link | trim | length > 0 )
  75. - name: Remove Element-Web custom logo link locally on AWX if not defined
  76. delegate_to: 127.0.0.1
  77. lineinfile:
  78. path: '{{ awx_cached_matrix_vars }}'
  79. regexp: "^matrix_client_element_welcome_logo_link: "
  80. state: absent
  81. when: matrix_client_element_welcome_logo_link | trim | length == 0
  82. - name: Set Element-Web custom headline locally on AWX if defined
  83. delegate_to: 127.0.0.1
  84. lineinfile:
  85. path: '{{ awx_cached_matrix_vars }}'
  86. regexp: "^#? *{{ item.key | regex_escape() }}:"
  87. line: "{{ item.key }}: '{{ item.value }}'"
  88. insertafter: '# Element Settings Start'
  89. with_dict:
  90. 'matrix_client_element_welcome_headline': '{{ awx_matrix_client_element_welcome_headline }}'
  91. when: awx_matrix_client_element_welcome_headline | trim | length > 0
  92. - name: Remove Element-Web custom headline locally on AWX if not defined
  93. delegate_to: 127.0.0.1
  94. lineinfile:
  95. path: '{{ awx_cached_matrix_vars }}'
  96. regexp: "^matrix_client_element_welcome_headline: "
  97. state: absent
  98. when: awx_matrix_client_element_welcome_headline | trim | length == 0
  99. - name: Set Element-Web custom text locally on AWX if defined
  100. delegate_to: 127.0.0.1
  101. lineinfile:
  102. path: '{{ awx_cached_matrix_vars }}'
  103. regexp: "^#? *{{ item.key | regex_escape() }}:"
  104. line: "{{ item.key }}: '{{ item.value }}'"
  105. insertafter: '# Element Settings Start'
  106. with_dict:
  107. 'matrix_client_element_welcome_text': '{{ awx_matrix_client_element_welcome_text }}'
  108. when: awx_matrix_client_element_welcome_text | trim | length > 0
  109. - name: Remove Element-Web custom text locally on AWX if not defined
  110. delegate_to: 127.0.0.1
  111. lineinfile:
  112. path: '{{ awx_cached_matrix_vars }}'
  113. regexp: "^matrix_client_element_welcome_text: "
  114. state: absent
  115. when: awx_matrix_client_element_welcome_text | trim | length == 0
  116. - name: Set Element-Web background locally on AWX if defined
  117. delegate_to: 127.0.0.1
  118. lineinfile:
  119. path: '{{ awx_cached_matrix_vars }}'
  120. regexp: "^#? *{{ item.key | regex_escape() }}:"
  121. line: "{{ item.key }}: '{{ item.value }}'"
  122. insertafter: '# Element Settings Start'
  123. with_dict:
  124. 'matrix_client_element_branding_welcomeBackgroundUrl': '{{ matrix_client_element_branding_welcomeBackgroundUrl }}'
  125. when: matrix_client_element_branding_welcomeBackgroundUrl | trim | length > 0
  126. - name: Remove Element-Web background locally on AWX if not defined
  127. delegate_to: 127.0.0.1
  128. lineinfile:
  129. path: '{{ awx_cached_matrix_vars }}'
  130. regexp: "^matrix_client_element_branding_welcomeBackgroundUrl: "
  131. state: absent
  132. when: matrix_client_element_branding_welcomeBackgroundUrl | trim | length == 0
  133. - name: Save new 'Configure Element' survey.json to the AWX tower, template
  134. delegate_to: 127.0.0.1
  135. template:
  136. src: 'roles/matrix-awx/surveys/configure_element.json.j2'
  137. dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_element.json'
  138. - name: Copy new 'Configure Element' survey.json to target machine
  139. copy:
  140. src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_element.json'
  141. dest: '/matrix/awx/configure_element.json'
  142. mode: '0660'
  143. - name: Recreate 'Configure Element' job template
  144. delegate_to: 127.0.0.1
  145. awx.awx.tower_job_template:
  146. name: "{{ matrix_domain }} - 1 - Configure Element"
  147. description: "Configure Element client via survey."
  148. extra_vars: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/extra_vars.json') }}"
  149. job_type: run
  150. job_tags: "start,setup-client-element"
  151. inventory: "{{ member_id }}"
  152. project: "{{ member_id }} - Matrix Docker Ansible Deploy"
  153. playbook: setup.yml
  154. credential: "{{ member_id }} - AWX SSH Key"
  155. survey_enabled: true
  156. survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_element.json') }}"
  157. become_enabled: true
  158. state: present
  159. verbosity: 1
  160. tower_host: "https://{{ awx_host }}"
  161. tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
  162. validate_certs: true