diff --git a/roles/cadvisor/tasks/main.yml b/roles/cadvisor/tasks/main.yml index df43634..faf5379 100644 --- a/roles/cadvisor/tasks/main.yml +++ b/roles/cadvisor/tasks/main.yml @@ -69,7 +69,6 @@ var: cadvisor_logs.stdout when: cadvisor_logs is defined - when: - docker_check.rc == 0 - cadvisor_enabled | default(true) \ No newline at end of file diff --git a/roles/system_cleanup/tasks/main.yml b/roles/system_cleanup/tasks/main.yml index e63c2c7..6ef4685 100644 --- a/roles/system_cleanup/tasks/main.yml +++ b/roles/system_cleanup/tasks/main.yml @@ -1,4 +1,10 @@ --- +- 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 }}" @@ -17,22 +23,30 @@ - name: Prune unused Docker containers command: docker container prune -f - when: cleanup_docker and cleanup_docker_containers + 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 + 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 + 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 + when: + - cleanup_docker and cleanup_docker_networks + - docker_check.rc == 0 changed_when: true - name: Remove custom directories (use with caution!) @@ -44,51 +58,40 @@ - name: Remove cAdvisor (if cleanup_cadvisor is true) block: - - name: Check if Docker is installed - command: docker --version - register: docker_check - ignore_errors: yes - changed_when: false - - 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 - community.docker.docker_container: - name: cadvisor + - name: Stop and remove cAdvisor container using docker-compose + community.docker.docker_compose_v2: + project_src: "{{ cadvisor_base_dir | default('/opt/cadvisor') }}" state: absent - force_kill: yes become: yes when: - docker_check.rc == 0 - "'cadvisor' in cadvisor_check.stdout" - name: Remove cAdvisor Docker image - community.docker.docker_image: - name: gcr.io/cadvisor/cadvisor - state: absent - become: yes - ignore_errors: yes + 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: - - "/opt/cadvisor" - - "/opt/cadvisor/config" - become: yes + - "{{ 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)" - echo "Images: $(docker images | grep cadvisor | wc -l)" - echo "Directories: $(ls -d /opt/cadvisor* 2>/dev/null | wc -l)" + 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 @@ -98,4 +101,4 @@ msg: "cAdvisor removal status: {{ cadvisor_removal_check.stdout }}" when: cadvisor_removal_check is defined - when: cleanup_cadvisor | default(false) \ No newline at end of file + when: cleanup_cadvisor | default(false) and docker_check.rc == 0 \ No newline at end of file