feat: refactor service management to use a unified services list and add cleanup tasks
This commit is contained in:
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 }}"
|
Reference in New Issue
Block a user