Matrix Docker Ansible eploy
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

78 行
2.8 KiB

  1. # SPDX-FileCopyrightText: 2026 Slavi Pantaleev
  2. #
  3. # SPDX-License-Identifier: AGPL-3.0-or-later
  4. ---
  5. # Stands up a stand-in homeserver on a container network, for scenarios whose
  6. # component contacts a homeserver while starting up.
  7. #
  8. # Include from a scenario's prepare.yml:
  9. #
  10. # - name: Ensure the homeserver stub is running
  11. # ansible.builtin.include_tasks:
  12. # file: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/../../../molecule-shared/tasks/homeserver-stub.yml"
  13. # vars:
  14. # molecule_shared_stub_network: "{{ <role>_container_network }}"
  15. # molecule_shared_stub_joined_rooms: ["!some-room:molecule.local"]
  16. #
  17. # The component should then be pointed at http://matrix.molecule.local:8008.
  18. #
  19. # See molecule-shared/homeserver-stub.py for what it answers and, more
  20. # importantly, for what it is not.
  21. - name: Ensure the homeserver stub script is present
  22. ansible.builtin.copy:
  23. src: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/../../../molecule-shared/homeserver-stub.py"
  24. dest: /root/molecule-homeserver-stub.py
  25. mode: "0755"
  26. - name: Ensure a previous homeserver stub is gone
  27. ansible.builtin.command:
  28. argv:
  29. - docker
  30. - rm
  31. - --force
  32. - "{{ molecule_shared_stub_name | default('matrix-homeserver-stub') }}"
  33. register: molecule_shared_stub_removal
  34. changed_when: molecule_shared_stub_removal.rc == 0
  35. failed_when: false
  36. # The alias is what the component resolves, so its configuration can name a
  37. # hostname rather than a container name.
  38. - name: Ensure the homeserver stub is running
  39. ansible.builtin.command:
  40. argv:
  41. - docker
  42. - run
  43. - --detach
  44. - --name={{ molecule_shared_stub_name | default('matrix-homeserver-stub') }}
  45. - --network={{ molecule_shared_stub_network }}
  46. - --network-alias={{ molecule_shared_stub_hostname | default('matrix.molecule.local') }}
  47. - --env=STUB_SERVER_NAME={{ molecule_shared_stub_server_name | default('molecule.local') }}
  48. - --env=STUB_JOINED_ROOMS={{ (molecule_shared_stub_joined_rooms | default([])) | join(',') }}
  49. - --volume=/root/molecule-homeserver-stub.py:/stub.py:ro
  50. - "{{ molecule_shared_image_python }}"
  51. - python3
  52. - /stub.py
  53. register: molecule_shared_stub_start
  54. changed_when: molecule_shared_stub_start.rc == 0
  55. - name: Wait for the homeserver stub to answer
  56. ansible.builtin.command:
  57. argv:
  58. - docker
  59. - run
  60. - --rm
  61. - --network={{ molecule_shared_stub_network }}
  62. - "{{ molecule_shared_image_curl }}"
  63. - --silent
  64. - --fail
  65. - --max-time
  66. - "5"
  67. - "http://{{ molecule_shared_stub_hostname | default('matrix.molecule.local') }}:8008/_matrix/client/versions"
  68. register: molecule_shared_stub_ready
  69. changed_when: false
  70. until: molecule_shared_stub_ready.rc == 0
  71. retries: 12
  72. delay: 5