diff options
| author | Egor Tensin <egor@tensin.name> | 2025-11-15 18:27:30 +0100 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2025-11-15 18:40:27 +0100 |
| commit | c9da27133c68154a21af03f078955da8fe25119e (patch) | |
| tree | 626d6a25d37277fadb6292e3f85c1e4ba2e376ad /roles | |
| parent | use the builtin quote filter everywhere (diff) | |
| download | infra-ansible-c9da27133c68154a21af03f078955da8fe25119e.tar.gz infra-ansible-c9da27133c68154a21af03f078955da8fe25119e.zip | |
docker: factor out pruning tasks
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/docker/tasks/main.yml | 20 | ||||
| -rw-r--r-- | roles/docker/tasks/prune.yml | 29 |
2 files changed, 32 insertions, 17 deletions
diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 84e3064..ac23d2f 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -26,12 +26,9 @@ name: "{{ docker_package_names }}" state: present -# Dependencies of the community.docker.docker_prune Ansible module: -- name: Install module dependencies - become: true - ansible.builtin.package: - name: "{{ docker_prune_module_deps }}" - state: present +# The docker system prune call should be before enabling/disabling the service +# and socket, otherwise the service could be woken up. +- ansible.builtin.import_tasks: prune.yml - name: Enable & start Docker service become: true @@ -46,14 +43,3 @@ name: docker.socket enabled: "{{ docker_enable_socket }}" state: "{{ docker_enable_socket | ternary('started', 'stopped') }}" - -- name: Clean up Docker data - become: true - community.docker.docker_prune: - builder_cache: true - containers: true - images: true - images_filters: - dangling: false - networks: true - volumes: true diff --git a/roles/docker/tasks/prune.yml b/roles/docker/tasks/prune.yml new file mode 100644 index 0000000..5170e74 --- /dev/null +++ b/roles/docker/tasks/prune.yml @@ -0,0 +1,29 @@ +- name: Collect service facts + community.general.systemd_info: + unitname: + - docker.service + - docker.socket + register: systemd_info + +- name: Clean up docker data + become: true + when: | + systemd_info.units['docker.service'].substate == 'running' + or systemd_info.units['docker.socket'].substate == 'listening' + or systemd_info.units['docker.socket'].substate == 'running' + block: + # Dependencies of the community.docker.docker_prune Ansible module: + - name: Install module dependencies + ansible.builtin.package: + name: "{{ docker_prune_module_deps }}" + state: present + + - name: Run docker system prune + community.docker.docker_prune: + builder_cache: true + containers: true + images: true + images_filters: + dangling: false + networks: true + volumes: true |
