84 lines
2.6 KiB
YAML
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 }}
|