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.
 
 

123 lines
4.4 KiB

  1. ---
  2. - name: Create Config Dir
  3. file:
  4. path: "{{ matrix_maubot_host_data_dir }}"
  5. state: directory
  6. mode: 0755
  7. owner: "{{ matrix_user_username }}"
  8. when: matrix_maubot_enabled|bool
  9. - name: Create User Config Dir
  10. file:
  11. path: "{{ matrix_maubot_host_config_dir }}"
  12. state: directory
  13. mode: 0755
  14. owner: "{{ matrix_user_username }}"
  15. when: matrix_maubot_enabled|bool and matrix_maubot_host_config_dir|bool
  16. - name: Create Config File
  17. template:
  18. src: maubot_config.yaml.j2
  19. dest: "{{ matrix_maubot_config_path }}"
  20. owner: "{{ matrix_user_username }}"
  21. mode: "u=rwx"
  22. when: matrix_maubot_enabled|bool
  23. - name: Ensure Maubot image is pulled
  24. docker_image:
  25. name: "{{ matrix_maubot_docker_image }}"
  26. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  27. force_source: "{{ matrix_maubot_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  28. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_maubot_docker_image_force_pull }}"
  29. when: matrix_maubot_enabled|bool
  30. - name: Ensure matrix-maubot.service installed
  31. template:
  32. src: "{{ role_path }}/templates/matrix-maubot.service.j2"
  33. dest: "/etc/systemd/system/matrix-maubot.service"
  34. mode: 0644
  35. register: matrix_maubot_systemd_service_result
  36. when: matrix_maubot_enabled|bool
  37. - set_fact:
  38. matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-maubot'] }}"
  39. - name: Fail if matrix-nginx-proxy role already executed
  40. fail:
  41. msg: >-
  42. Trying to append Maubot's reverse-proxying configuration to matrix-nginx-proxy,
  43. but it's pointless since the matrix-nginx-proxy role had already executed.
  44. To fix this, please change the order of roles in your plabook,
  45. so that the matrix-nginx-proxy role would run after the matrix-maubot role.
  46. when: matrix_nginx_proxy_role_executed|default(False)|bool and matrix_maubot_enabled|bool
  47. - name: Generate Maubot proxying configuration for matrix-nginx-proxy
  48. set_fact:
  49. matrix_maubot_matrix_nginx_proxy_configuration: |
  50. location /_matrix/maubot {
  51. {% if matrix_nginx_proxy_enabled|default(False) %}
  52. {# Use the embedded DNS resolver in Docker containers to discover the service #}
  53. resolver 127.0.0.11 valid=5s;
  54. set $backend "matrix-maubot:{{ matrix_maubot_management_port }}";
  55. proxy_pass http://$backend;
  56. {% else %}
  57. {# Generic configuration for use outside of our container setup #}
  58. proxy_pass http://127.0.0.1:{{ matrix_maubot_management_port }};
  59. {% endif %}
  60. }
  61. when: matrix_maubot_enabled|bool
  62. - name: Register Maubot's proxying configuration with matrix-nginx-proxy
  63. set_fact:
  64. matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
  65. {{
  66. matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks|default([])
  67. +
  68. [matrix_maubot_matrix_nginx_proxy_configuration]
  69. }}
  70. when: matrix_maubot_enabled|bool
  71. - name: Warn about reverse-proxying if matrix-nginx-proxy not used
  72. debug:
  73. msg: >-
  74. NOTE: You've enabled Maubot but are not using the matrix-nginx-proxy
  75. reverse proxy.
  76. Please make sure that you're proxying the `/_matrix/maubot`
  77. URL endpoint to the matrix-maubot container.
  78. when: "matrix_maubot_enabled|bool and matrix_nginx_proxy_enabled is not defined"
  79. #
  80. # Tasks related to getting rid of the maubot (if it was previously enabled)
  81. #
  82. - name: Check existence of matrix-maubot service
  83. stat:
  84. path: "/etc/systemd/system/matrix-maubot.service"
  85. register: matrix_maubot_service_stat
  86. when: "not matrix_maubot_enabled|bool"
  87. - name: Ensure matrix-maubot is stopped
  88. service:
  89. name: matrix-maubot
  90. state: stopped
  91. daemon_reload: yes
  92. register: stopping_result
  93. when: "not matrix_maubot_enabled|bool and matrix_maubot_service_stat.stat.exists"
  94. - name: Ensure matrix-maubot.service doesn't exist
  95. file:
  96. path: "/etc/systemd/system/matrix-maubot.service"
  97. state: absent
  98. when: "not matrix_maubot_enabled|bool and matrix_maubot_service_stat.stat.exists"
  99. - name: Ensure systemd reloaded after matrix-maubot.service removal
  100. service:
  101. daemon_reload: yes
  102. when: "not matrix_maubot_enabled|bool and matrix_maubot_service_stat.stat.exists"
  103. - name: Ensure maubot Docker image doesn't exist
  104. docker_image:
  105. name: "{{ matrix_maubot_docker_image }}"
  106. state: absent
  107. when: "not matrix_maubot_enabled|bool"