Matrix Docker Ansible eploy
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

138 строки
4.9 KiB

  1. ---
  2. #
  3. # Tasks related to setting up mxisd
  4. #
  5. - name: Ensure mxisd paths exist
  6. file:
  7. path: "{{ item.path }}"
  8. state: directory
  9. mode: 0750
  10. owner: "{{ matrix_user_username }}"
  11. group: "{{ matrix_user_username }}"
  12. with_items:
  13. - { path: "{{ matrix_mxisd_config_path }}", when: true }
  14. - { path: "{{ matrix_mxisd_data_path }}", when: true }
  15. - { path: "{{ matrix_mxisd_docker_src_files_path }}", when: "{{ matrix_mxisd_container_image_self_build }}"}
  16. when: matrix_mxisd_enabled|bool and item.when
  17. - name: Ensure mxisd image is pulled
  18. docker_image:
  19. name: "{{ matrix_mxisd_docker_image }}"
  20. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  21. force_source: "{{ matrix_mxisd_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  22. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mxisd_docker_image_force_pull }}"
  23. when: matrix_mxisd_enabled|bool and not matrix_mxisd_container_image_self_build
  24. - block:
  25. - name: Ensure gradle is installed for self-building (Debian)
  26. apt:
  27. name:
  28. - gradle
  29. state: present
  30. update_cache: yes
  31. when: (ansible_os_family == 'Debian')
  32. - name: Ensure gradle is installed for self-building (CentOS)
  33. fail:
  34. msg: "Installing gradle on CentOS is currently not supported, so self-building mxisd cannot happen at this time"
  35. when: ansible_distribution == 'CentOS'
  36. - name: Ensure gradle is installed for self-building (Archlinux)
  37. pacman:
  38. name:
  39. - gradle
  40. state: latest
  41. update_cache: yes
  42. when: ansible_distribution == 'Archlinux'
  43. - name: Ensure mxisd repository is present on self-build
  44. git:
  45. repo: https://github.com/kamax-matrix/mxisd.git
  46. dest: "{{ matrix_mxisd_docker_src_files_path }}"
  47. version: "v{{ matrix_mxisd_docker_image.split(':')[1] }}"
  48. force: "yes"
  49. - name: Ensure mxisd Docker image is built
  50. shell: "./gradlew dockerBuild"
  51. args:
  52. chdir: "{{ matrix_mxisd_docker_src_files_path }}"
  53. when: "matrix_mxisd_enabled|bool and matrix_mxisd_container_image_self_build"
  54. - name: Ensure mxisd config installed
  55. copy:
  56. content: "{{ matrix_mxisd_configuration|to_nice_yaml }}"
  57. dest: "{{ matrix_mxisd_config_path }}/mxisd.yaml"
  58. mode: 0644
  59. owner: "{{ matrix_user_username }}"
  60. group: "{{ matrix_user_username }}"
  61. when: matrix_mxisd_enabled|bool
  62. - name: Ensure custom templates are installed if any
  63. copy:
  64. content: "{{ item.value }}"
  65. dest: "{{ matrix_mxisd_data_path }}/{{ item.location }}"
  66. mode: 0644
  67. owner: "{{ matrix_user_username }}"
  68. group: "{{ matrix_user_username }}"
  69. with_items:
  70. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_invite_template }}", location: 'invite-template.eml'}
  71. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_session_validation_template }}", location: 'validate-template.eml'}
  72. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_unbind_fraudulent_template }}", location: 'unbind-fraudulent.eml'}
  73. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_matrixid_template }}", location: 'mxid-template.eml'}
  74. when: "matrix_mxisd_enabled|bool and matrix_mxisd_threepid_medium_email_custom_templates_enabled|bool and item.value"
  75. - name: Ensure matrix-mxisd.service installed
  76. template:
  77. src: "{{ role_path }}/templates/systemd/matrix-mxisd.service.j2"
  78. dest: "{{ matrix_systemd_path }}/matrix-mxisd.service"
  79. mode: 0644
  80. register: matrix_mxisd_systemd_service_result
  81. when: matrix_mxisd_enabled|bool
  82. - name: Ensure systemd reloaded after matrix-mxisd.service installation
  83. service:
  84. daemon_reload: yes
  85. when: "matrix_mxisd_enabled|bool and matrix_mxisd_systemd_service_result.changed"
  86. #
  87. # Tasks related to getting rid of mxisd (if it was previously enabled)
  88. #
  89. - name: Check existence of matrix-mxisd service
  90. stat:
  91. path: "{{ matrix_systemd_path }}/matrix-mxisd.service"
  92. register: matrix_mxisd_service_stat
  93. - name: Ensure matrix-mxisd is stopped
  94. service:
  95. name: matrix-mxisd
  96. state: stopped
  97. daemon_reload: yes
  98. register: stopping_result
  99. when: "not matrix_mxisd_enabled|bool and matrix_mxisd_service_stat.stat.exists"
  100. - name: Ensure matrix-mxisd.service doesn't exist
  101. file:
  102. path: "{{ matrix_systemd_path }}/matrix-mxisd.service"
  103. state: absent
  104. when: "not matrix_mxisd_enabled|bool and matrix_mxisd_service_stat.stat.exists"
  105. - name: Ensure systemd reloaded after matrix-mxisd.service removal
  106. service:
  107. daemon_reload: yes
  108. when: "not matrix_mxisd_enabled|bool and matrix_mxisd_service_stat.stat.exists"
  109. - name: Ensure Matrix mxisd paths don't exist
  110. file:
  111. path: "{{ matrix_mxisd_base_path }}"
  112. state: absent
  113. when: "not matrix_mxisd_enabled|bool"
  114. - name: Ensure mxisd Docker image doesn't exist
  115. docker_image:
  116. name: "{{ matrix_mxisd_docker_image }}"
  117. state: absent
  118. when: "not matrix_mxisd_enabled|bool"