Matrix Docker Ansible eploy
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

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