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.
 
 

125 lines
4.4 KiB

  1. ---
  2. #
  3. # Tasks related to setting up mxisd
  4. #
  5. - name: Ensure mxisd paths exist
  6. file:
  7. path: "{{ item }}"
  8. state: directory
  9. mode: 0750
  10. owner: "{{ matrix_user_username }}"
  11. group: "{{ matrix_user_username }}"
  12. with_items:
  13. - "{{ matrix_mxisd_config_path }}"
  14. - "{{ matrix_mxisd_data_path }}"
  15. - { src: "{{ matrix_mxisd_docker_src_files_path }}", when: "{{ matrix_mxisd_self_build }}"}
  16. when: matrix_mxisd_enabled|bool
  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_self_build
  24. - name: Ensure gradel is installed for self-building
  25. apt:
  26. name:
  27. - gradle
  28. state: present
  29. update_cache: yes
  30. when: "matrix_mxisd_enabled|bool and matrix_mxisd_self_build"
  31. - name: Ensure mxisd repository is present on self-build
  32. git:
  33. repo: https://github.com/kamax-matrix/mxisd.git
  34. dest: "{{ matrix_mxisd_docker_src_files_path }}"
  35. version: "v{{ matrix_mxisd_docker_image.split(':')[1] }}"
  36. force: "yes"
  37. when: "matrix_mxisd_enabled|bool and matrix_mxisd_self_build"
  38. - name: Ensure mxisd Docker image is build
  39. shell: "./gradlew dockerBuild"
  40. args:
  41. chdir: "{{ matrix_mxisd_docker_src_files_path }}"
  42. when: "matrix_mxisd_enabled|bool and matrix_mxisd_self_build"
  43. - name: Ensure mxisd config installed
  44. copy:
  45. content: "{{ matrix_mxisd_configuration|to_nice_yaml }}"
  46. dest: "{{ matrix_mxisd_config_path }}/mxisd.yaml"
  47. mode: 0644
  48. owner: "{{ matrix_user_username }}"
  49. group: "{{ matrix_user_username }}"
  50. when: matrix_mxisd_enabled|bool
  51. - name: Ensure custom templates are installed if any
  52. copy:
  53. content: "{{ item.value }}"
  54. dest: "{{ matrix_mxisd_data_path }}/{{ item.location }}"
  55. mode: 0644
  56. owner: "{{ matrix_user_username }}"
  57. group: "{{ matrix_user_username }}"
  58. with_items:
  59. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_invite_template }}", location: 'invite-template.eml'}
  60. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_session_validation_template }}", location: 'validate-template.eml'}
  61. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_unbind_fraudulent_template }}", location: 'unbind-fraudulent.eml'}
  62. - {value: "{{ matrix_mxisd_threepid_medium_email_custom_matrixid_template }}", location: 'mxid-template.eml'}
  63. when: "matrix_mxisd_enabled|bool and matrix_mxisd_threepid_medium_email_custom_templates_enabled|bool and item.value"
  64. - name: Ensure matrix-mxisd.service installed
  65. template:
  66. src: "{{ role_path }}/templates/systemd/matrix-mxisd.service.j2"
  67. dest: "/etc/systemd/system/matrix-mxisd.service"
  68. mode: 0644
  69. register: matrix_mxisd_systemd_service_result
  70. when: matrix_mxisd_enabled|bool
  71. - name: Ensure systemd reloaded after matrix-mxisd.service installation
  72. service:
  73. daemon_reload: yes
  74. when: "matrix_mxisd_enabled|bool and matrix_mxisd_systemd_service_result.changed"
  75. #
  76. # Tasks related to getting rid of mxisd (if it was previously enabled)
  77. #
  78. - name: Check existence of matrix-mxisd service
  79. stat:
  80. path: "/etc/systemd/system/matrix-mxisd.service"
  81. register: matrix_mxisd_service_stat
  82. - name: Ensure matrix-mxisd is stopped
  83. service:
  84. name: matrix-mxisd
  85. state: stopped
  86. daemon_reload: yes
  87. register: stopping_result
  88. when: "not matrix_mxisd_enabled|bool and matrix_mxisd_service_stat.stat.exists"
  89. - name: Ensure matrix-mxisd.service doesn't exist
  90. file:
  91. path: "/etc/systemd/system/matrix-mxisd.service"
  92. state: absent
  93. when: "not matrix_mxisd_enabled|bool and matrix_mxisd_service_stat.stat.exists"
  94. - name: Ensure systemd reloaded after matrix-mxisd.service removal
  95. service:
  96. daemon_reload: yes
  97. when: "not matrix_mxisd_enabled|bool and matrix_mxisd_service_stat.stat.exists"
  98. - name: Ensure Matrix mxisd paths don't exist
  99. file:
  100. path: "{{ matrix_mxisd_base_path }}"
  101. state: absent
  102. when: "not matrix_mxisd_enabled|bool"
  103. - name: Ensure mxisd Docker image doesn't exist
  104. docker_image:
  105. name: "{{ matrix_mxisd_docker_image }}"
  106. state: absent
  107. when: "not matrix_mxisd_enabled|bool"