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

115 строки
4.2 KiB

  1. ---
  2. #
  3. # Tasks related to setting up the mailer
  4. #
  5. - name: Ensure mailer base path exists
  6. file:
  7. path: "{{ item.path }}"
  8. state: directory
  9. mode: 0750
  10. owner: "{{ matrix_user_username }}"
  11. group: "{{ matrix_user_groupname }}"
  12. with_items:
  13. - {path: "{{ matrix_mailer_base_path }}", when: true}
  14. - {path: "{{ matrix_mailer_container_image_self_build_src_files_path }}", when: "{{ matrix_mailer_container_image_self_build }}"}
  15. when: "matrix_mailer_enabled|bool and item.when"
  16. - name: Ensure mailer environment variables file created
  17. template:
  18. src: "{{ role_path }}/templates/env-mailer.j2"
  19. dest: "{{ matrix_mailer_base_path }}/env-mailer"
  20. mode: 0640
  21. when: matrix_mailer_enabled|bool
  22. - name: Ensure exim-relay repository is present on self-build
  23. git:
  24. repo: "{{ matrix_mailer_container_image_self_build_repository_url }}"
  25. dest: "{{ matrix_mailer_container_image_self_build_src_files_path }}"
  26. version: "{{ matrix_mailer_container_image_self_build_version }}"
  27. force: "yes"
  28. become: true
  29. become_user: "{{ matrix_user_username }}"
  30. register: matrix_mailer_git_pull_results
  31. when: "matrix_mailer_enabled|bool and matrix_mailer_container_image_self_build|bool"
  32. - name: Ensure exim-relay Docker image is built
  33. docker_image:
  34. name: "{{ matrix_mailer_docker_image }}"
  35. source: build
  36. force_source: "{{ matrix_mailer_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  37. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mailer_git_pull_results.changed }}"
  38. build:
  39. dockerfile: Dockerfile
  40. path: "{{ matrix_mailer_container_image_self_build_src_files_path }}"
  41. pull: true
  42. when: "matrix_mailer_enabled|bool and matrix_mailer_container_image_self_build|bool"
  43. - name: Ensure exim-relay image is pulled
  44. docker_image:
  45. name: "{{ matrix_mailer_docker_image }}"
  46. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  47. force_source: "{{ matrix_mailer_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  48. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mailer_docker_image_force_pull }}"
  49. when: "matrix_mailer_enabled|bool and not matrix_mailer_container_image_self_build|bool"
  50. register: result
  51. retries: "{{ matrix_container_retries_count }}"
  52. delay: "{{ matrix_container_retries_delay }}"
  53. until: result is not failed
  54. - name: Ensure matrix-mailer.service installed
  55. template:
  56. src: "{{ role_path }}/templates/systemd/matrix-mailer.service.j2"
  57. dest: "{{ matrix_systemd_path }}/matrix-mailer.service"
  58. mode: 0644
  59. register: matrix_mailer_systemd_service_result
  60. when: matrix_mailer_enabled|bool
  61. - name: Ensure systemd reloaded after matrix-mailer.service installation
  62. service:
  63. daemon_reload: true
  64. when: "matrix_mailer_enabled|bool and matrix_mailer_systemd_service_result.changed"
  65. #
  66. # Tasks related to getting rid of the mailer (if it was previously enabled)
  67. #
  68. - name: Check existence of matrix-mailer service
  69. stat:
  70. path: "{{ matrix_systemd_path }}/matrix-mailer.service"
  71. register: matrix_mailer_service_stat
  72. when: "not matrix_mailer_enabled|bool"
  73. - name: Ensure matrix-mailer is stopped
  74. service:
  75. name: matrix-mailer
  76. state: stopped
  77. enabled: false
  78. daemon_reload: true
  79. register: stopping_result
  80. when: "not matrix_mailer_enabled|bool and matrix_mailer_service_stat.stat.exists"
  81. - name: Ensure matrix-mailer.service doesn't exist
  82. file:
  83. path: "{{ matrix_systemd_path }}/matrix-mailer.service"
  84. state: absent
  85. when: "not matrix_mailer_enabled|bool and matrix_mailer_service_stat.stat.exists"
  86. - name: Ensure systemd reloaded after matrix-mailer.service removal
  87. service:
  88. daemon_reload: true
  89. when: "not matrix_mailer_enabled|bool and matrix_mailer_service_stat.stat.exists"
  90. - name: Ensure Matrix mailer environment variables path doesn't exist
  91. file:
  92. path: "{{ matrix_mailer_base_path }}"
  93. state: absent
  94. when: "not matrix_mailer_enabled|bool"
  95. - name: Ensure mailer Docker image doesn't exist
  96. docker_image:
  97. name: "{{ matrix_mailer_docker_image }}"
  98. state: absent
  99. when: "not matrix_mailer_enabled|bool"