5eed874199
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/716 This patch makes us use more fully-qualified container image names (either prefixed with docker.io/ or with localhost/). The latter happens when self-building is enabled. We've recently had issues where if an image was removed manually and the service was restarted (making `docker run` fetch it from Docker Hub, etc.), we'd end up with a pulled image, even though we're aiming for a self-built one. Re-running the playbook would then not do a rebuild, because: - the image with that name already exists (even though it's something else) - we sometimes had conditional logic where we'd build only if the git repo changed By explicitly changing the name of the images (prefixing with localhost/), we avoid such confusion and the possibility that we'd automatically pul something which is not what we expect. Also, I've removed that condition where building would happen on git changes only. We now always build (unless an image with that name already exists). We just force-build when the git repo changes.
96 lines
4.0 KiB
YAML
96 lines
4.0 KiB
YAML
---
|
|
|
|
# If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist.
|
|
# We don't want to fail in such cases.
|
|
- name: Fail if matrix-synapse role already executed
|
|
fail:
|
|
msg: >-
|
|
The matrix-bridge-mx-puppet-slack role needs to execute before the matrix-synapse role.
|
|
when: "matrix_synapse_role_executed|default(False)"
|
|
|
|
- name: Ensure MX Puppet Slack image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_mx_puppet_slack_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_mx_puppet_slack_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_mx_puppet_slack_docker_image_force_pull }}"
|
|
when: matrix_mx_puppet_slack_enabled|bool and not matrix_mx_puppet_slack_container_image_self_build
|
|
|
|
- name: Ensure MX Puppet Slack paths exist
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
with_items:
|
|
- { path: "{{ matrix_mx_puppet_slack_base_path }}", when: true }
|
|
- { path: "{{ matrix_mx_puppet_slack_config_path }}", when: true }
|
|
- { path: "{{ matrix_mx_puppet_slack_data_path }}", when: true }
|
|
- { path: "{{ matrix_mx_puppet_slack_docker_src_files_path }}", when: "{{ matrix_mx_puppet_slack_container_image_self_build }}" }
|
|
when: matrix_mx_puppet_slack_enabled|bool and item.when|bool
|
|
|
|
- name: Ensure MX Puppet Slack repository is present on self build
|
|
git:
|
|
repo: https://github.com/Sorunome/mx-puppet-slack.git
|
|
dest: "{{ matrix_mx_puppet_slack_docker_src_files_path }}"
|
|
force: "yes"
|
|
register: matrix_mx_puppet_slack_git_pull_results
|
|
when: "matrix_mx_puppet_slack_enabled|bool and matrix_mx_puppet_slack_container_image_self_build"
|
|
|
|
- name: Ensure MX Puppet Slack Docker image is built
|
|
docker_image:
|
|
name: "{{ matrix_mx_puppet_slack_docker_image }}"
|
|
source: build
|
|
force_source: "{{ matrix_mx_puppet_slack_git_pull_results.changed }}"
|
|
build:
|
|
dockerfile: Dockerfile
|
|
path: "{{ matrix_mx_puppet_slack_docker_src_files_path }}"
|
|
pull: yes
|
|
when: "matrix_mx_puppet_slack_enabled|bool and matrix_mx_puppet_slack_container_image_self_build"
|
|
|
|
- name: Check if an old database file already exists
|
|
stat:
|
|
path: "{{ matrix_mx_puppet_slack_base_path }}/database.db"
|
|
register: matrix_mx_puppet_slack_stat_database
|
|
|
|
- name: (Data relocation) Ensure matrix-mx-puppet-slack.service is stopped
|
|
service:
|
|
name: matrix-mx-puppet-slack
|
|
state: stopped
|
|
daemon_reload: yes
|
|
failed_when: false
|
|
when: "matrix_mx_puppet_slack_stat_database.stat.exists"
|
|
|
|
- name: (Data relocation) Move mx-puppet-slack database file to ./data directory
|
|
command: "mv {{ matrix_mx_puppet_slack_base_path }}/database.db {{ matrix_mx_puppet_slack_data_path }}/database.db"
|
|
when: "matrix_mx_puppet_slack_stat_database.stat.exists"
|
|
|
|
- name: Ensure mx-puppet-slack config.yaml installed
|
|
copy:
|
|
content: "{{ matrix_mx_puppet_slack_configuration|to_nice_yaml }}"
|
|
dest: "{{ matrix_mx_puppet_slack_config_path }}/config.yaml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Ensure mx-puppet-slack slack-registration.yaml installed
|
|
copy:
|
|
content: "{{ matrix_mx_puppet_slack_registration|to_nice_yaml }}"
|
|
dest: "{{ matrix_mx_puppet_slack_config_path }}/registration.yaml"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
|
|
- name: Ensure matrix-mx-puppet-slack.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-mx-puppet-slack.service.j2"
|
|
dest: "/etc/systemd/system/matrix-mx-puppet-slack.service"
|
|
mode: 0644
|
|
register: matrix_mx_puppet_slack_systemd_service_result
|
|
|
|
- name: Ensure systemd reloaded after matrix-mx-puppet-slack.service installation
|
|
service:
|
|
daemon_reload: yes
|
|
when: "matrix_mx_puppet_slack_systemd_service_result.changed"
|