olimp/roles/system_cleanup/tasks/main.yml
Administrator ee2179f948 Update 2 files
- /roles/system_cleanup/tasks/main.yml
- /roles/cadvisor/tasks/main.yml
2025-11-27 11:05:25 +00:00

104 lines
3.2 KiB
YAML

---
- 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