--- - name: Check if Docker is installed command: docker --version register: docker_check ignore_errors: yes changed_when: false - name: Remove unwanted system packages apt: name: "{{ cleanup_packages }}" state: absent autoremove: "{{ cleanup_autoremove }}" purge: true when: cleanup_packages | length > 0 - name: Remove specific SSH authorized keys (if any defined) authorized_key: user: root key: "{{ item }}" state: absent loop: "{{ cleanup_ssh_keys | default([]) }}" when: cleanup_ssh_keys | length > 0 - name: Prune unused Docker containers command: docker container prune -f when: - cleanup_docker and cleanup_docker_containers - docker_check.rc == 0 changed_when: true - name: Prune unused Docker images command: docker image prune -af when: - cleanup_docker and cleanup_docker_images - docker_check.rc == 0 changed_when: true - name: Prune unused Docker volumes command: docker volume prune -f when: - cleanup_docker and cleanup_docker_volumes - docker_check.rc == 0 changed_when: true - name: Prune unused Docker networks command: docker network prune -f when: - cleanup_docker and cleanup_docker_networks - docker_check.rc == 0 changed_when: true - name: Remove custom directories (use with caution!) file: path: "{{ item }}" state: absent loop: "{{ cleanup_directories | default([]) }}" when: cleanup_directories | length > 0 - name: Remove cAdvisor (if cleanup_cadvisor is true) block: - name: Check if cAdvisor container exists shell: docker ps -a --filter name=cadvisor --format "{{ '{{.Names}}' }}" register: cadvisor_check changed_when: false when: docker_check.rc == 0 - name: Stop and remove cAdvisor container using docker-compose community.docker.docker_compose_v2: project_src: "{{ cadvisor_base_dir | default('/opt/cadvisor') }}" state: absent become: yes when: - docker_check.rc == 0 - "'cadvisor' in cadvisor_check.stdout" - name: Remove cAdvisor Docker image command: docker rmi gcr.io/cadvisor/cadvisor || true when: docker_check.rc == 0 ignore_errors: yes - name: Remove cAdvisor directories file: path: "{{ item }}" state: absent loop: - "{{ cadvisor_base_dir | default('/opt/cadvisor') }}" - "{{ cadvisor_config_dir | default('/opt/cadvisor/config') }}" ignore_errors: yes - name: Verify cAdvisor removal shell: | echo "Containers: $(docker ps -a | grep cadvisor | wc -l 2>/dev/null || echo 0)" echo "Images: $(docker images | grep cadvisor | wc -l 2>/dev/null || echo 0)" echo "Directories: $(ls -d {{ cadvisor_base_dir | default('/opt/cadvisor') }}* 2>/dev/null | wc -l || echo 0)" register: cadvisor_removal_check changed_when: false when: docker_check.rc == 0 - name: Show cAdvisor removal status debug: msg: "cAdvisor removal status: {{ cadvisor_removal_check.stdout }}" when: cadvisor_removal_check is defined when: cleanup_cadvisor | default(false) and docker_check.rc == 0