2022-06-23 18:24:52 +00:00
---
- name : Ensure maubot paths exist
2022-07-20 06:48:26 +00:00
ansible.builtin.file :
2022-06-23 18:24:52 +00:00
path : "{{ item.path }}"
state : directory
2022-06-23 19:57:52 +00:00
mode : 0755
2022-06-23 18:24:52 +00:00
owner : "{{ matrix_user_username }}"
group : "{{ matrix_user_groupname }}"
with_items :
2022-06-23 19:57:52 +00:00
- {path : "{{ matrix_bot_maubot_base_path }}" , when : true }
2022-07-20 09:48:12 +00:00
- {path : "{{ matrix_bot_maubot_config_path }}" , when : true }
2022-06-24 09:50:52 +00:00
- {path : "{{ matrix_bot_maubot_data_path }}" , when : true }
2022-07-09 09:42:18 +00:00
- {path : "{{ matrix_bot_maubot_data_path }}/plugins" , when : true }
- {path : "{{ matrix_bot_maubot_data_path }}/dbs" , when : true }
- {path : "{{ matrix_bot_maubot_data_path }}/trash" , when : true }
2022-06-24 15:58:50 +00:00
- {path : "{{ matrix_bot_maubot_docker_src_files_path }}" , when : "{{ matrix_bot_maubot_container_image_self_build }}" }
2024-12-28 08:24:34 +00:00
- {path : "{{ matrix_bot_maubot_customized_docker_src_files_path }}" , when : "{{ matrix_bot_maubot_container_image_customizations_enabled }}" }
2022-06-23 18:24:52 +00:00
when : "item.when|bool"
- name : Ensure maubot configuration file created
2022-07-20 06:48:26 +00:00
ansible.builtin.template :
2022-06-23 18:24:52 +00:00
src : "{{ role_path }}/templates/config/config.yaml.j2"
2022-07-20 09:48:12 +00:00
dest : "{{ matrix_bot_maubot_config_path }}/config.yaml"
2022-06-23 18:24:52 +00:00
owner : "{{ matrix_user_username }}"
group : "{{ matrix_user_groupname }}"
2022-06-23 19:57:52 +00:00
mode : "u=rwx"
2022-06-23 18:24:52 +00:00
- name : Ensure maubot image is pulled
2022-10-28 11:20:17 +00:00
community.docker.docker_image :
2022-06-23 19:57:52 +00:00
name : "{{ matrix_bot_maubot_docker_image }}"
2022-06-23 18:24:52 +00:00
source : "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
2022-06-23 19:57:52 +00:00
force_source : "{{ matrix_bot_maubot_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
force : "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_maubot_docker_image_force_pull }}"
when : "not matrix_bot_maubot_container_image_self_build|bool"
2022-06-23 18:24:52 +00:00
register : result
2022-11-04 14:44:29 +00:00
retries : "{{ devture_playbook_help_container_retries_count }}"
delay : "{{ devture_playbook_help_container_retries_delay }}"
2022-06-23 18:24:52 +00:00
until : result is not failed
2024-12-28 08:24:34 +00:00
- when : matrix_bot_maubot_container_image_self_build | bool
block :
- name : Ensure maubot repository is present on self-build
ansible.builtin.git :
repo : "{{ matrix_bot_maubot_docker_repo }}"
version : "{{ matrix_bot_maubot_docker_repo_version }}"
dest : "{{ matrix_bot_maubot_docker_src_files_path }}"
force : "yes"
become : true
become_user : "{{ matrix_user_username }}"
register : matrix_bot_maubot_git_pull_results
2022-06-23 18:24:52 +00:00
2024-12-28 08:24:34 +00:00
- name : Ensure maubot image is built
community.docker.docker_image :
name : "{{ matrix_bot_maubot_docker_image }}"
source : build
force_source : "{{ matrix_bot_maubot_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
force : "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_maubot_git_pull_results.changed }}"
build :
dockerfile : Dockerfile
path : "{{ matrix_bot_maubot_docker_src_files_path }}"
pull : true
- when : "matrix_bot_maubot_container_image_customizations_enabled | bool"
block :
- name : Ensure customizations Dockerfile is created
ansible.builtin.template :
src : "{{ role_path }}/templates/customizations/Dockerfile.j2"
dest : "{{ matrix_bot_maubot_customized_docker_src_files_path }}/Dockerfile"
owner : "{{ matrix_user_username }}"
group : "{{ matrix_user_groupname }}"
mode : 0640
register : matrix_bot_maubot_container_image_customizations_dockerfile_result
- name : Ensure customized Docker image for maubot is built
community.docker.docker_image :
name : "{{ matrix_bot_maubot_docker_image_customized }}"
source : build
force_source : "{{ matrix_bot_maubot_container_image_customizations_dockerfile_result.changed or matrix_bot_maubot_docker_image_customized_force_source }}"
build :
dockerfile : Dockerfile
path : "{{ matrix_bot_maubot_customized_docker_src_files_path }}"
nocache : "{{ matrix_bot_maubot_docker_image_customized_build_nocache }}"
2022-06-23 18:24:52 +00:00
2024-01-07 08:16:42 +00:00
- name : Ensure maubot support files installed
ansible.builtin.template :
src : "{{ role_path }}/templates/{{ item }}.j2"
dest : "{{ matrix_bot_maubot_base_path }}/{{ item }}"
mode : 0640
owner : "{{ matrix_user_username }}"
group : "{{ matrix_user_groupname }}"
with_items :
- labels
- name : Ensure maubot container network is created
community.general.docker_network :
2024-03-24 17:15:43 +00:00
enable_ipv6 : "{{ devture_systemd_docker_base_ipv6_enabled }}"
2024-01-07 08:16:42 +00:00
name : "{{ matrix_bot_maubot_container_network }}"
driver : bridge
2024-09-18 13:20:27 +00:00
driver_options : "{{ devture_systemd_docker_base_container_networks_driver_options }}"
2024-01-07 08:16:42 +00:00
2022-06-24 15:54:57 +00:00
- name : Ensure matrix-bot-maubot.service installed
2022-07-20 06:48:26 +00:00
ansible.builtin.template :
2022-06-24 15:54:57 +00:00
src : "{{ role_path }}/templates/systemd/matrix-bot-maubot.service.j2"
2022-11-04 14:38:38 +00:00
dest : "{{ devture_systemd_docker_base_systemd_path }}/matrix-bot-maubot.service"
2022-06-23 18:24:52 +00:00
mode : 0644