feat: refactor service management to use a unified services list and add cleanup tasks
Some checks failed
Ansible Lint Check / check-ansible (push) Failing after 15s
Nix Format Check / check-format (push) Successful in 55s
Python Lint Check / check-python (push) Failing after 12s

This commit is contained in:
2025-03-12 14:31:25 +01:00
parent 451f2b202f
commit 8d2cbdacae
3 changed files with 53 additions and 20 deletions

View File

@ -23,11 +23,17 @@
- name: Include services tasks
ansible.builtin.include_tasks: services/services.yml
vars:
caddy_enabled: true
hoarder_enabled: true
golink_enabled: true
immich_enabled: true
gitea_enabled: true
services:
- name: caddy
enabled: true
- name: hoarder
enabled: true
- name: golink
enabled: true
- name: immich
enabled: true
- name: gitea
enabled: true
when:
- ansible_hostname == "mennos-server" or ansible_hostname == "dotfiles-test" or ansible_hostname == "mennos-cloud-server"
- datapool_check is defined

View 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 }}"

View File

@ -1,16 +1,10 @@
---
- name: Include caddy tasks
ansible.builtin.include_tasks: caddy/caddy.yml
when: caddy_enabled|bool
- name: Include golink tasks
ansible.builtin.include_tasks: golink/golink.yml
when: golink_enabled|bool
- name: Include hoarder tasks
ansible.builtin.include_tasks: hoarder/hoarder.yml
when: hoarder_enabled|bool
- 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
- name: Include service cleanup tasks
ansible.builtin.include_tasks: service_cleanup.yml
- name: Include service tasks
ansible.builtin.include_tasks: "{{ item.name }}/{{ item.name }}.yml"
loop: "{{ services }}"
when: item.enabled|bool
loop_control:
label: "{{ item.name }}"