Matrix Docker Ansible eploy
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 

127 righe
4.7 KiB

  1. ---
  2. - name: Create Config Dir
  3. file:
  4. path: "{{ matrix_bot_maubot_host_data_dir }}"
  5. state: directory
  6. mode: 0755
  7. owner: "{{ matrix_user_username }}"
  8. when: matrix_bot_maubot_enabled|bool
  9. - name: Create User Config Dir
  10. file:
  11. path: "{{ matrix_bot_maubot_host_config_dir }}"
  12. state: directory
  13. mode: 0755
  14. owner: "{{ matrix_user_username }}"
  15. when: matrix_bot_maubot_enabled|bool and matrix_bot_maubot_host_config_dir|bool
  16. - name: Create Config File
  17. template:
  18. src: "{{ role_path }}/templates/maubot_config.yaml.j2"
  19. dest: "{{ matrix_bot_maubot_config_path }}"
  20. owner: "{{ matrix_user_username }}"
  21. mode: "u=rwx"
  22. when: matrix_bot_maubot_enabled|bool
  23. - name: Ensure Maubot image is pulled
  24. docker_image:
  25. name: "{{ matrix_bot_maubot_docker_image }}"
  26. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  27. force_source: "{{ matrix_bot_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_bot_maubot_docker_image_force_pull }}"
  29. when: matrix_bot_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_bot_maubot_systemd_service_result
  36. when: matrix_bot_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_bot_maubot_enabled|bool
  47. - name: Generate Maubot proxying configuration for matrix-nginx-proxy
  48. set_fact:
  49. matrix_bot_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_bot_maubot_management_port }}";
  55. proxy_pass http://$backend;
  56. proxy_set_header Upgrade $http_upgrade;
  57. proxy_set_header Connection "upgrade";
  58. {% else %}
  59. {# Generic configuration for use outside of our container setup #}
  60. proxy_pass http://127.0.0.1:{{ matrix_bot_maubot_management_port }};
  61. proxy_set_header Upgrade $http_upgrade;
  62. proxy_set_header Connection "upgrade";
  63. {% endif %}
  64. }
  65. when: matrix_bot_maubot_enabled|bool
  66. - name: Register Maubot's proxying configuration with matrix-nginx-proxy
  67. set_fact:
  68. matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks: |
  69. {{
  70. matrix_nginx_proxy_proxy_matrix_additional_server_configuration_blocks|default([])
  71. +
  72. [matrix_bot_maubot_matrix_nginx_proxy_configuration]
  73. }}
  74. when: matrix_bot_maubot_enabled|bool
  75. - name: Warn about reverse-proxying if matrix-nginx-proxy not used
  76. debug:
  77. msg: >-
  78. NOTE: You've enabled Maubot but are not using the matrix-nginx-proxy
  79. reverse proxy.
  80. Please make sure that you're proxying the `/_matrix/maubot`
  81. URL endpoint to the matrix-maubot container.
  82. when: "matrix_bot_maubot_enabled|bool and matrix_nginx_proxy_enabled is not defined"
  83. #
  84. # Tasks related to getting rid of the maubot (if it was previously enabled)
  85. #
  86. - name: Check existence of matrix-maubot service
  87. stat:
  88. path: "/etc/systemd/system/matrix-maubot.service"
  89. register: matrix_bot_maubot_service_stat
  90. when: "not matrix_bot_maubot_enabled|bool"
  91. - name: Ensure matrix-maubot is stopped
  92. service:
  93. name: matrix-maubot
  94. state: stopped
  95. daemon_reload: yes
  96. register: stopping_result
  97. when: "not matrix_bot_maubot_enabled|bool and matrix_bot_maubot_service_stat.stat.exists"
  98. - name: Ensure matrix-maubot.service doesn't exist
  99. file:
  100. path: "/etc/systemd/system/matrix-maubot.service"
  101. state: absent
  102. when: "not matrix_bot_maubot_enabled|bool and matrix_bot_maubot_service_stat.stat.exists"
  103. - name: Ensure systemd reloaded after matrix-maubot.service removal
  104. service:
  105. daemon_reload: yes
  106. when: "not matrix_bot_maubot_enabled|bool and matrix_bot_maubot_service_stat.stat.exists"
  107. - name: Ensure maubot Docker image doesn't exist
  108. docker_image:
  109. name: "{{ matrix_bot_maubot_docker_image }}"
  110. state: absent
  111. when: "not matrix_bot_maubot_enabled|bool"