Files
playbooks/docker-compose-update.yaml
T

84 lines
2.6 KiB
YAML

- name: Manage Docker Compose services
hosts: paperless, mongodb, gitea, newt, jenkins, jellyfin, n8n, vaultwarden, ora-ubuntu-01
become: true
vars:
host_compose_configs:
paperless:
project_dir: "/home/admin"
compose_files:
- docker-compose.yaml
mongodb:
project_dir: "/home/admin/mongodb"
compose_files:
- docker-compose.yaml
gitea:
project_dir: "/home/admin/gitea"
compose_files:
- docker-compose.yaml
newt:
project_dir: "/home/admin/newt"
compose_files:
- docker-compose.yaml
jenkins:
project_dir: "/home/admin/jenkins"
compose_files:
- docker-compose.yaml
jellyfin:
project_dir: "/home/admin"
compose_files:
- docker-compose.yaml
n8n:
project_dir: "/home/admin/n8n"
compose_files:
- docker-compose.yaml
vaultwarden:
project_dir: "/home/admin/vaultwarden"
compose_files:
- docker-compose.yaml
ora-ubuntu-01:
project_dir: "/home/ubuntu/pangolin"
compose_files:
- docker-compose-monitoring.yaml
- docker-compose.yaml
force_pull: false
force_recreate: false
tasks:
- name: Stop and remove containers
community.docker.docker_compose_v2:
project_src: "{{ host_compose_configs[inventory_hostname].project_dir }}"
files: "{{ host_compose_configs[inventory_hostname].compose_files }}"
state: absent
register: compose_down
- name: Pull latest images
community.docker.docker_compose_v2:
project_src: "{{ host_compose_configs[inventory_hostname].project_dir }}"
files: "{{ host_compose_configs[inventory_hostname].compose_files }}"
pull: always
when: compose_down.changed or force_pull
register: compose_pull
- name: Start services
community.docker.docker_compose_v2:
project_src: "{{ host_compose_configs[inventory_hostname].project_dir }}"
files: "{{ host_compose_configs[inventory_hostname].compose_files }}"
state: present
recreate: "{{ 'always' if force_recreate else 'auto' }}"
register: compose_up
- name: Docker prune
community.docker.docker_prune:
containers: true
images: true
register: prune_result
- name: Display operation results
debug:
msg: |
Host: {{ inventory_hostname }}
Services down: {{ compose_down.changed }}
Images pulled: {{ compose_pull.changed if compose_pull is defined else 'skipped' }}
Services up: {{ compose_up.changed }}