From aceb111f86fc9258ecd356a412cea77b042fac82 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Mon, 7 Apr 2025 15:25:30 +0200 Subject: [PATCH] Added role cleanup-docker-anonymous-volumes --- .../README.md | 20 +++++++++++++ .../meta/main.yml | 28 +++++++++++++++++++ .../tasks/main.yml | 14 ++++++++++ 3 files changed, 62 insertions(+) create mode 100644 roles/cleanup-docker-anonymous-volumes/README.md create mode 100644 roles/cleanup-docker-anonymous-volumes/meta/main.yml create mode 100644 roles/cleanup-docker-anonymous-volumes/tasks/main.yml diff --git a/roles/cleanup-docker-anonymous-volumes/README.md b/roles/cleanup-docker-anonymous-volumes/README.md new file mode 100644 index 00000000..94dc8727 --- /dev/null +++ b/roles/cleanup-docker-anonymous-volumes/README.md @@ -0,0 +1,20 @@ +# Cleanup Docker Anonymous Volumes + +## Description + +This Ansible role installs and executes [`dockreap`](https://github.com/kevinveenbirkenbach/docker-volume-cleaner), a tool designed to clean up unused anonymous Docker volumes (including symlinks and their targets) to maintain a tidy Docker environment. + +## Overview + +The role installs the tool via [`pkgmgr`](https://github.com/kevinveenbirkenbach/package-manager) using the `dockreap` alias and runs it with the `--no-confirmation` flag to ensure automatic, non-interactive cleanup. + +## Purpose + +This role is intended to automate the removal of orphaned Docker volumes that consume unnecessary disk space. It is especially useful in backup, CI/CD, or maintenance routines. + +## Features + +- **Automated Cleanup:** Runs `dockreap --no-confirmation` to clean up unused anonymous volumes. +- **pkgmgr Integration:** Installs the tool via Kevin’s package manager (`pkgmgr`). +- **Idempotent Execution:** Ensures the tool is installed and run only once per playbook run. +- **Symlink-Aware:** Safely handles symlinked `_data` directories and their targets. \ No newline at end of file diff --git a/roles/cleanup-docker-anonymous-volumes/meta/main.yml b/roles/cleanup-docker-anonymous-volumes/meta/main.yml new file mode 100644 index 00000000..daa65dbf --- /dev/null +++ b/roles/cleanup-docker-anonymous-volumes/meta/main.yml @@ -0,0 +1,28 @@ +--- +galaxy_info: + author: "Kevin Veen-Birkenbach" + description: "Install and run dockreap to clean up unused anonymous Docker volumes" + license: "CyMaIS NonCommercial License (CNCL)" + license_url: "https://s.veen.world/cncl" + company: | + Kevin Veen-Birkenbach + Consulting & Coaching Solutions + https://www.veen.world + min_ansible_version: "2.9" + platforms: + - name: Linux + versions: + - all + galaxy_tags: + - docker + - cleanup + - automation + - maintenance + - volumes + - pkgmgr + repository: "https://github.com/kevinveenbirkenbach/docker-volume-cleaner" + issue_tracker_url: "https://github.com/kevinveenbirkenbach/docker-volume-cleaner/issues" + documentation: "https://github.com/kevinveenbirkenbach/docker-volume-cleaner#readme" + +dependencies: + - package-manager diff --git a/roles/cleanup-docker-anonymous-volumes/tasks/main.yml b/roles/cleanup-docker-anonymous-volumes/tasks/main.yml new file mode 100644 index 00000000..737ff1c2 --- /dev/null +++ b/roles/cleanup-docker-anonymous-volumes/tasks/main.yml @@ -0,0 +1,14 @@ +- name: install dockreap + command: + cmd: "pkgmgr install dockreap" + when: run_once_cleanup_docker_anonymous_volumes is not defined + +- name: run dockreap with --no-confirmation + command: + cmd: "dockreap --no-confirmation" + when: run_once_cleanup_docker_anonymous_volumes is not defined + +- name: mark dockreap as run + set_fact: + run_once_cleanup_docker_anonymous_volumes: true + when: run_once_cleanup_docker_anonymous_volumes is not defined