Files
dotfiles/config/ansible/tasks/servers/services/service_cleanup.yml
Menno van Leeuwen 69158595ef
Some checks failed
Ansible Lint Check / check-ansible (push) Failing after 16s
Nix Format Check / check-format (push) Successful in 56s
Python Lint Check / check-python (push) Failing after 12s
fix: ensure pipeline failure detection in service cleanup task
2025-03-12 14:37:54 +01:00

34 lines
1.2 KiB
YAML

---
- 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: set -o pipefail && 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 }}"