7d3adc4512
We do use some `:latest` images by default for the following services: - matrix-dimension - Goofys (in the matrix-synapse role) - matrix-bridge-appservice-irc - matrix-bridge-appservice-discord - matrix-bridge-mautrix-facebook - matrix-bridge-mautrix-whatsapp It's terribly unfortunate that those software projects don't release anything other than `:latest`, but that's how it is for now. Updating that software requires that users manually do `docker pull` on the server. The playbook didn't force-repull images that it already had. With this patch, it starts doing so. Any image tagged `:latest` will be force re-pulled by the playbook every time it's executed. It should be noted that even though we ask the `docker_image` module to force-pull, it only reports "changed" when it actually pulls something new. This is nice, because it lets people know exactly when something gets updated, as opposed to giving the indication that it's always updating the images (even though it isn't).
99 lines
3.4 KiB
YAML
99 lines
3.4 KiB
YAML
---
|
|
|
|
#
|
|
# Tasks related to setting up riot-web
|
|
#
|
|
|
|
- name: Ensure Matrix riot-web path exists
|
|
file:
|
|
path: "{{ matrix_riot_web_data_path }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_username }}"
|
|
when: matrix_riot_web_enabled|bool
|
|
|
|
- name: Ensure riot-web Docker image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_riot_web_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_riot_web_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_riot_web_docker_image_force_pull }}"
|
|
when: matrix_riot_web_enabled|bool
|
|
|
|
- name: Ensure Matrix riot-web config files installed
|
|
template:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ matrix_riot_web_data_path }}/{{ item.name }}"
|
|
mode: 0644
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_username }}"
|
|
with_items:
|
|
- {src: "{{ role_path }}/templates/config.json.j2", name: "config.json"}
|
|
- {src: "{{ role_path }}/templates/nginx.conf.j2", name: "nginx.conf"}
|
|
- {src: "{{ role_path }}/templates/welcome.html.j2", name: "welcome.html"}
|
|
- {src: "{{ matrix_riot_web_embedded_pages_home_path }}", name: "home.html"}
|
|
when: "matrix_riot_web_enabled|bool and item.src is not none"
|
|
|
|
- name: Ensure Matrix riot-web config files removed
|
|
file:
|
|
path: "{{ matrix_riot_web_data_path }}/{{ item.name }}"
|
|
state: absent
|
|
with_items:
|
|
- {src: "{{ matrix_riot_web_embedded_pages_home_path }}", name: "home.html"}
|
|
when: "matrix_riot_web_enabled|bool and item.src is none"
|
|
|
|
- name: Ensure matrix-riot-web.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-riot-web.service.j2"
|
|
dest: "/etc/systemd/system/matrix-riot-web.service"
|
|
mode: 0644
|
|
register: matrix_riot_web_systemd_service_result
|
|
when: matrix_riot_web_enabled|bool
|
|
|
|
- name: Ensure systemd reloaded after matrix-riot-web.service installation
|
|
service:
|
|
daemon_reload: yes
|
|
when: "matrix_riot_web_enabled and matrix_riot_web_systemd_service_result.changed"
|
|
|
|
#
|
|
# Tasks related to getting rid of riot-web (if it was previously enabled)
|
|
#
|
|
|
|
- name: Check existence of matrix-riot-web service
|
|
stat:
|
|
path: "/etc/systemd/system/matrix-riot-web.service"
|
|
register: matrix_riot_web_service_stat
|
|
when: "not matrix_riot_web_enabled|bool"
|
|
|
|
- name: Ensure matrix-riot-web is stopped
|
|
service:
|
|
name: matrix-riot-web
|
|
state: stopped
|
|
daemon_reload: yes
|
|
register: stopping_result
|
|
when: "not matrix_riot_web_enabled|bool and matrix_riot_web_service_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-riot-web.service doesn't exist
|
|
file:
|
|
path: "/etc/systemd/system/matrix-riot-web.service"
|
|
state: absent
|
|
when: "not matrix_riot_web_enabled|bool and matrix_riot_web_service_stat.stat.exists"
|
|
|
|
- name: Ensure systemd reloaded after matrix-riot-web.service removal
|
|
service:
|
|
daemon_reload: yes
|
|
when: "not matrix_riot_web_enabled|bool and matrix_riot_web_service_stat.stat.exists"
|
|
|
|
- name: Ensure Matrix riot-web paths doesn't exist
|
|
file:
|
|
path: "{{ matrix_riot_web_data_path }}"
|
|
state: absent
|
|
when: "not matrix_riot_web_enabled|bool"
|
|
|
|
- name: Ensure riot-web Docker image doesn't exist
|
|
docker_image:
|
|
name: "{{ matrix_riot_web_docker_image }}"
|
|
state: absent
|
|
when: "not matrix_riot_web_enabled|bool"
|