Matrix Docker Ansible eploy
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

156 wiersze
7.9 KiB

  1. # SPDX-FileCopyrightText: 2026 Slavi Pantaleev
  2. #
  3. # SPDX-License-Identifier: AGPL-3.0-or-later
  4. ---
  5. dependency:
  6. name: galaxy
  7. options:
  8. requirements-file: requirements.yml
  9. force: true
  10. driver:
  11. name: docker
  12. platforms:
  13. - name: matrix-bot-meowlnir-${MOLECULE_DISTRO:-ubuntu2604}-default
  14. image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2604}-ansible:latest"
  15. command: ${MOLECULE_DOCKER_COMMAND:-""}
  16. volumes:
  17. - /sys/fs/cgroup:/sys/fs/cgroup:rw
  18. cgroupns_mode: host
  19. privileged: true
  20. pre_build_image: true
  21. provisioner:
  22. name: ansible
  23. config_options:
  24. defaults:
  25. callback_result_format: yaml
  26. inventory:
  27. group_vars:
  28. all:
  29. matrix_bot_meowlnir_container_network: matrix-bot-meowlnir-molecule
  30. # verify.yml is a separate play where role defaults are out of scope. Pin only
  31. # paths it reads; the component version comes from the role's defaults directly.
  32. matrix_bot_meowlnir_base_path: /matrix/meowlnir
  33. matrix_bot_meowlnir_config_path: /matrix/meowlnir/config
  34. matrix_bot_meowlnir_data_path: /matrix/meowlnir/data
  35. # A local stub is available for bounded Matrix API calls. The empty-roster
  36. # startup used here currently makes no outbound homeserver request, so the
  37. # weight-bearing appservice gate is the authenticated inbound transaction in
  38. # verify.yml. No real Matrix or third-party account is involved.
  39. matrix_bot_meowlnir_config_homeserver_address: http://matrix.molecule.local:8008
  40. matrix_bot_meowlnir_config_homeserver_domain: molecule.local
  41. matrix_bot_meowlnir_appservice_id: molecule-meowlnir
  42. matrix_bot_meowlnir_appservice_sender_localpart: molecule_meowlnir_as
  43. matrix_bot_meowlnir_user_prefix: molecule_meowlnir_bot_
  44. matrix_bot_meowlnir_appservice_token: molecule_as_token_2cf519
  45. matrix_bot_meowlnir_homeserver_token: molecule_hs_token_c20dc3
  46. # Real Postgres is the normal playbook path. The non-default credentials make its
  47. # migrated schema evidence that Meowlnir consumed the URI assembled by the role.
  48. matrix_bot_meowlnir_database_engine: postgres
  49. matrix_bot_meowlnir_database_hostname: matrix-postgres-molecule
  50. matrix_bot_meowlnir_database_name: molecule_meowlnir
  51. matrix_bot_meowlnir_database_username: molecule_meowlnir
  52. matrix_bot_meowlnir_database_password: molecule_pg_password_da31bc
  53. matrix_bot_meowlnir_database_sslmode: disable
  54. matrix_bot_meowlnir_config_database_max_open_conns: 13
  55. matrix_bot_meowlnir_config_database_max_idle_conns: 3
  56. matrix_bot_meowlnir_config_database_max_conn_idle_time: 47s
  57. matrix_bot_meowlnir_config_database_max_conn_lifetime: 11m
  58. # These differ from both role and upstream defaults. The authenticated management
  59. # API below proves that the running process accepted the listener and secret.
  60. matrix_bot_meowlnir_config_meowlnir_port: 29439
  61. matrix_bot_meowlnir_appservice_url: http://matrix-bot-meowlnir:29439
  62. matrix_bot_meowlnir_config_meowlnir_management_secret: molecule_management_secret_a64528
  63. matrix_bot_meowlnir_config_meowlnir_data_secret: molecule_data_secret_e8c7b4
  64. matrix_bot_meowlnir_config_meowlnir_federation_auth: true
  65. matrix_bot_meowlnir_config_meowlnir_dry_run: true
  66. matrix_bot_meowlnir_config_meowlnir_untrusted: true
  67. matrix_bot_meowlnir_config_meowlnir_report_room: "!molecule-reports:molecule.local"
  68. matrix_bot_meowlnir_config_meowlnir_room_ban_room: "!molecule-bans:molecule.local"
  69. matrix_bot_meowlnir_config_meowlnir_hacky_rule_filter_custom:
  70. - '@trusted:molecule.local'
  71. - trusted.invalid
  72. matrix_bot_meowlnir_config_meowlnir_hacky_redact_patterns_custom:
  73. - molecule-abuse-*
  74. matrix_bot_meowlnir_config_meowlnir_admin_tokens:
  75. '@molecule-admin:molecule.local': molecule_admin_token_7e6ce0
  76. matrix_bot_meowlnir_config_meowlnir4all_admin_room: "!molecule-provisioning:molecule.local"
  77. matrix_bot_meowlnir_config_meowlnir4all_displayname: Molecule Provisioned Meowlnir
  78. matrix_bot_meowlnir_config_meowlnir4all_avatar_url: mxc://molecule.local/meowlnir-avatar
  79. matrix_bot_meowlnir_config_meowlnir4all_room_name: Molecule Meowlnir Control
  80. matrix_bot_meowlnir_config_meowlnir4all_default_watched_lists_custom:
  81. - name: Molecule policy list
  82. room_id: "!molecule-policy:molecule.local"
  83. shortcode: molecule
  84. auto_unban: false
  85. matrix_bot_meowlnir_config_antispam_secret: molecule_antispam_secret_59d553
  86. matrix_bot_meowlnir_config_antispam_filter_local_invites: true
  87. matrix_bot_meowlnir_config_antispam_auto_reject_invites_token: molecule_reject_token_a9812f
  88. matrix_bot_meowlnir_config_antispam_notify_management_room: true
  89. matrix_bot_meowlnir_config_antispam_block_invites_to_custom:
  90. - '@blocked:molecule.local'
  91. # Both integrations render public routing labels. Their real handlers are not the
  92. # readiness gate; the management API and database provide stronger process evidence.
  93. matrix_bot_meowlnir_policy_server_enabled: true
  94. matrix_bot_meowlnir_config_policy_server_always_redact: false
  95. matrix_bot_meowlnir_config_policy_server_signing_key: >-
  96. ed25519 policy_server MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY
  97. matrix_bot_meowlnir_config_reporting_enabled: true
  98. matrix_bot_meowlnir_config_encryption_enable: false
  99. matrix_bot_meowlnir_config_encryption_pickle_key: molecule_pickle_key_6f370e
  100. matrix_bot_meowlnir_config_logging_min_level: debug
  101. matrix_bot_meowlnir_config_logging_writers:
  102. - type: stdout
  103. format: json
  104. # No bot is declared: this avoids accepting provisioning behavior which is green only
  105. # because a deliberately permissive homeserver stub papered over it.
  106. matrix_bot_meowlnir_bots_custom: []
  107. matrix_bot_meowlnir_bots_pruning_enabled: false
  108. # Traefik is not deployed. Distinct non-default routes still prove the role's label
  109. # contract both on disk and in Docker's accepted container labels.
  110. matrix_bot_meowlnir_container_labels_traefik_enabled: true
  111. matrix_bot_meowlnir_container_labels_traefik_docker_network: matrix-bot-meowlnir-molecule
  112. matrix_bot_meowlnir_container_labels_reporting_traefik_hostname: reports.molecule.local
  113. matrix_bot_meowlnir_container_labels_reporting_traefik_path_regexp: ^/molecule-report/(rooms|users)/[^/]+$$
  114. matrix_bot_meowlnir_container_labels_reporting_traefik_priority: 731
  115. matrix_bot_meowlnir_container_labels_reporting_traefik_entrypoints: web
  116. matrix_bot_meowlnir_container_labels_reporting_traefik_tls: false
  117. matrix_bot_meowlnir_container_labels_policy_server_traefik_hostname: federation.molecule.local
  118. matrix_bot_meowlnir_container_labels_policy_server_traefik_path_prefix: /molecule-policy
  119. matrix_bot_meowlnir_container_labels_policy_server_traefik_priority: 733
  120. matrix_bot_meowlnir_container_labels_policy_server_traefik_entrypoints: web
  121. matrix_bot_meowlnir_container_labels_policy_server_traefik_tls: false
  122. matrix_bot_meowlnir_container_labels_traefik_labels_additional_labels: |
  123. molecule.meowlnir.coverage=enabled
  124. # Preserve the production-like no-host-port path; probes join its Docker network.
  125. matrix_bot_meowlnir_container_http_host_bind_port: ''
  126. env:
  127. # Workaround for https://github.com/ansible/molecule/issues/4391
  128. ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../..:/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:${ANSIBLE_HOME:-~/.ansible}/roles
  129. scenario:
  130. test_sequence:
  131. - dependency
  132. - cleanup
  133. - destroy
  134. - syntax
  135. - create
  136. - prepare
  137. - converge
  138. - idempotence
  139. - verify
  140. - cleanup
  141. - destroy
  142. verifier:
  143. name: ansible