Matrix Docker Ansible eploy
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

126 Zeilen
5.4 KiB

  1. # SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors
  2. # SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev
  3. # SPDX-FileCopyrightText: 2020 Chris van Dijk
  4. # SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis
  5. # SPDX-FileCopyrightText: 2022 Jim Myhrberg
  6. # SPDX-FileCopyrightText: 2022 Marko Weltzer
  7. # SPDX-FileCopyrightText: 2022 Nikita Chernyi
  8. # SPDX-FileCopyrightText: 2022 Sebastian Gumprich
  9. # SPDX-FileCopyrightText: 2024 David Mehren
  10. #
  11. # SPDX-License-Identifier: AGPL-3.0-or-later
  12. ---
  13. - name: Ensure AppService Slack paths exist
  14. ansible.builtin.file:
  15. path: "{{ item.path }}"
  16. state: directory
  17. mode: 0750
  18. owner: "{{ matrix_user_name }}"
  19. group: "{{ matrix_user_groupname }}"
  20. with_items:
  21. - {path: "{{ matrix_appservice_slack_base_path }}", when: true}
  22. - {path: "{{ matrix_appservice_slack_config_path }}", when: true}
  23. - {path: "{{ matrix_appservice_slack_data_path }}", when: true}
  24. - {path: "{{ matrix_appservice_slack_docker_src_files_path }}", when: "{{ matrix_appservice_slack_container_image_self_build }}"}
  25. when: item.when | bool
  26. - ansible.builtin.set_fact:
  27. matrix_appservice_slack_requires_restart: false
  28. - when: "matrix_appservice_slack_database_engine == 'postgres'"
  29. block:
  30. - name: Check if a nedb database already exists
  31. ansible.builtin.stat:
  32. path: "{{ matrix_appservice_slack_data_path }}/teams.db"
  33. register: matrix_appservice_slack_nedb_database_path_local_stat_result
  34. - when: "matrix_appservice_slack_nedb_database_path_local_stat_result.stat.exists | bool"
  35. block:
  36. - ansible.builtin.include_tasks: "{{ role_path }}/tasks/migrate_nedb_to_postgres.yml"
  37. - ansible.builtin.set_fact:
  38. matrix_appservice_slack_requires_restart: true
  39. - name: Ensure Appservice Slack image is pulled
  40. community.docker.docker_image:
  41. name: "{{ matrix_appservice_slack_docker_image }}"
  42. source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
  43. force_source: "{{ matrix_appservice_slack_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  44. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_appservice_slack_docker_image_force_pull }}"
  45. when: "not matrix_appservice_slack_container_image_self_build | bool"
  46. register: result
  47. retries: "{{ devture_playbook_help_container_retries_count }}"
  48. delay: "{{ devture_playbook_help_container_retries_delay }}"
  49. until: result is not failed
  50. - name: Ensure matrix-appservice-slack repository is present when self-building
  51. ansible.builtin.git:
  52. repo: "{{ matrix_appservice_slack_docker_repo }}"
  53. version: "{{ matrix_appservice_slack_docker_repo_version }}"
  54. dest: "{{ matrix_appservice_slack_docker_src_files_path }}"
  55. force: "yes"
  56. become: true
  57. become_user: "{{ matrix_user_name }}"
  58. register: matrix_appservice_slack_git_pull_results
  59. when: "matrix_appservice_slack_container_image_self_build | bool"
  60. - name: Ensure matrix-appservice-slack Docker image is built
  61. community.docker.docker_image:
  62. name: "{{ matrix_appservice_slack_docker_image }}"
  63. source: build
  64. force_source: "{{ matrix_appservice_slack_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
  65. force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_appservice_slack_git_pull_results.changed }}"
  66. build:
  67. dockerfile: Dockerfile
  68. path: "{{ matrix_appservice_slack_docker_src_files_path }}"
  69. pull: true
  70. when: "matrix_appservice_slack_container_image_self_build | bool and matrix_appservice_slack_git_pull_results.changed"
  71. - name: Ensure Matrix Appservice Slack config installed
  72. ansible.builtin.copy:
  73. content: "{{ matrix_appservice_slack_configuration | to_nice_yaml(indent=2, width=999999) }}"
  74. dest: "{{ matrix_appservice_slack_config_path }}/config.yaml"
  75. mode: 0644
  76. owner: "{{ matrix_user_name }}"
  77. group: "{{ matrix_user_groupname }}"
  78. - name: Ensure appservice-slack registration.yaml installed
  79. ansible.builtin.copy:
  80. content: "{{ matrix_appservice_slack_registration | to_nice_yaml(indent=2, width=999999) }}"
  81. dest: "{{ matrix_appservice_slack_config_path }}/slack-registration.yaml"
  82. mode: 0644
  83. owner: "{{ matrix_user_name }}"
  84. group: "{{ matrix_user_groupname }}"
  85. - name: Ensure matrix-appservice-slack container network is created
  86. community.general.docker_network:
  87. enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
  88. name: "{{ matrix_appservice_slack_container_network }}"
  89. driver: bridge
  90. driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
  91. - name: Ensure matrix-appservice-slack support files installed
  92. ansible.builtin.template:
  93. src: "{{ role_path }}/templates/{{ item }}.j2"
  94. dest: "{{ matrix_appservice_slack_base_path }}/{{ item }}"
  95. mode: 0640
  96. owner: "{{ matrix_user_name }}"
  97. group: "{{ matrix_user_groupname }}"
  98. with_items:
  99. - labels
  100. - name: Ensure matrix-appservice-slack.service installed
  101. ansible.builtin.template:
  102. src: "{{ role_path }}/templates/systemd/matrix-appservice-slack.service.j2"
  103. dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-slack.service"
  104. mode: 0644
  105. - name: Ensure matrix-appservice-slack.service restarted, if necessary
  106. ansible.builtin.service:
  107. name: "matrix-appservice-slack.service"
  108. state: restarted
  109. daemon_reload: true
  110. when: "matrix_appservice_slack_requires_restart | bool"