feat: refactor service management to use a unified services list and add cleanup tasks
This commit is contained in:
@ -23,11 +23,17 @@
|
|||||||
- name: Include services tasks
|
- name: Include services tasks
|
||||||
ansible.builtin.include_tasks: services/services.yml
|
ansible.builtin.include_tasks: services/services.yml
|
||||||
vars:
|
vars:
|
||||||
caddy_enabled: true
|
services:
|
||||||
hoarder_enabled: true
|
- name: caddy
|
||||||
golink_enabled: true
|
enabled: true
|
||||||
immich_enabled: true
|
- name: hoarder
|
||||||
gitea_enabled: true
|
enabled: true
|
||||||
|
- name: golink
|
||||||
|
enabled: true
|
||||||
|
- name: immich
|
||||||
|
enabled: true
|
||||||
|
- name: gitea
|
||||||
|
enabled: true
|
||||||
when:
|
when:
|
||||||
- ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server"
|
- ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server"
|
||||||
- datapool_check is defined
|
- datapool_check is defined
|
||||||
|
33
config/ansible/tasks/servers/services/service_cleanup.yml
Normal file
33
config/ansible/tasks/servers/services/service_cleanup.yml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
- name: Cleanup disabled services
|
||||||
|
block:
|
||||||
|
- name: Check service directories
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ ansible_env.HOME }}/services/{{ item.name }}"
|
||||||
|
register: service_dir_results
|
||||||
|
loop: "{{ services }}"
|
||||||
|
when: not item.enabled|bool
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.name }}"
|
||||||
|
|
||||||
|
- name: Prepare cleanup list
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
services_to_cleanup: "{{ services | selectattr('enabled', 'equalto', false) | list }}"
|
||||||
|
|
||||||
|
- name: Check running containers for disabled services
|
||||||
|
ansible.builtin.shell: docker ps --format '{% raw %}{{.Names}}{% endraw %}' | grep -q {{ item.name }}
|
||||||
|
register: container_check_results
|
||||||
|
loop: "{{ services_to_cleanup }}"
|
||||||
|
failed_when: false
|
||||||
|
changed_when: false
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.name }}"
|
||||||
|
|
||||||
|
- name: Stop disabled services if running
|
||||||
|
ansible.builtin.command: docker compose -f "{{ ansible_env.HOME }}/services/{{ item.0.name }}/docker-compose.yml" down --remove-orphans
|
||||||
|
loop: "{{ services_to_cleanup | zip(container_check_results.results) | list }}"
|
||||||
|
when:
|
||||||
|
- item.1.rc is defined
|
||||||
|
- item.1.rc == 0
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.0.name }}"
|
@ -1,16 +1,10 @@
|
|||||||
---
|
---
|
||||||
- name: Include caddy tasks
|
- name: Include service cleanup tasks
|
||||||
ansible.builtin.include_tasks: caddy/caddy.yml
|
ansible.builtin.include_tasks: service_cleanup.yml
|
||||||
when: caddy_enabled|bool
|
|
||||||
- name: Include golink tasks
|
- name: Include service tasks
|
||||||
ansible.builtin.include_tasks: golink/golink.yml
|
ansible.builtin.include_tasks: "{{ item.name }}/{{ item.name }}.yml"
|
||||||
when: golink_enabled|bool
|
loop: "{{ services }}"
|
||||||
- name: Include hoarder tasks
|
when: item.enabled|bool
|
||||||
ansible.builtin.include_tasks: hoarder/hoarder.yml
|
loop_control:
|
||||||
when: hoarder_enabled|bool
|
label: "{{ item.name }}"
|
||||||
- name: Include immich tasks
|
|
||||||
ansible.builtin.include_tasks: immich/immich.yml
|
|
||||||
when: immich_enabled|bool
|
|
||||||
- name: Include gitea tasks
|
|
||||||
ansible.builtin.include_tasks: gitea/gitea.yml
|
|
||||||
when: gitea_enabled|bool
|
|
||||||
|
Reference in New Issue
Block a user