docker(role): move automatic cleanup of unused Docker data here
All checks were successful
/ Ansible Lint (push) Successful in 2m20s
All checks were successful
/ Ansible Lint (push) Successful in 2m20s
Move the automatic cleanup of unused Docker data to the docker role from the docker_compose role, so that hosts, which only use Docker (like renovate) also have an automatic cleanup set up. Also use a systemd timer instead of cron.
This commit is contained in:
parent
0788fde69d
commit
2b5f261cd3
6 changed files with 53 additions and 8 deletions
8
roles/docker/files/docker-cleanup.service
Normal file
8
roles/docker/files/docker-cleanup.service
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
[Unit]
|
||||||
|
Description=cleanup unused docker data
|
||||||
|
After=network-online.target docker.service
|
||||||
|
Wants=network-online.target docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/docker system prune --all --force
|
||||||
9
roles/docker/files/docker-cleanup.timer
Normal file
9
roles/docker/files/docker-cleanup.timer
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=cleanup unused docker data every day
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=daily
|
||||||
|
RandomizedDelaySec=1h
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
4
roles/docker/handlers/main.yaml
Normal file
4
roles/docker/handlers/main.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
- name: systemd daemon reload
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
daemon_reload: true
|
||||||
|
become: true
|
||||||
|
|
@ -9,3 +9,7 @@
|
||||||
- name: Ensure Docker daemon configuration
|
- name: Ensure Docker daemon configuration
|
||||||
ansible.builtin.import_tasks:
|
ansible.builtin.import_tasks:
|
||||||
file: main/03_docker_config.yaml
|
file: main/03_docker_config.yaml
|
||||||
|
|
||||||
|
- name: Ensure automatic cleanup of unused Docker data is set up
|
||||||
|
ansible.builtin.import_tasks:
|
||||||
|
file: main/04_docker_auto_cleanup.yaml
|
||||||
|
|
|
||||||
28
roles/docker/tasks/main/04_docker_auto_cleanup.yaml
Normal file
28
roles/docker/tasks/main/04_docker_auto_cleanup.yaml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
- name: ensure systemd service exists
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: docker-cleanup.service
|
||||||
|
dest: /etc/systemd/system/docker-cleanup.service
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
become: true
|
||||||
|
notify:
|
||||||
|
- systemd daemon reload
|
||||||
|
|
||||||
|
- name: ensure systemd timer exists
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: docker-cleanup.timer
|
||||||
|
dest: /etc/systemd/system/docker-cleanup.timer
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
become: true
|
||||||
|
notify:
|
||||||
|
- systemd daemon reload
|
||||||
|
|
||||||
|
- name: ensure systemd timer is started and enabled
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
name: docker-cleanup.timer
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
become: true
|
||||||
|
|
@ -108,11 +108,3 @@
|
||||||
minute: "0"
|
minute: "0"
|
||||||
hour: "5"
|
hour: "5"
|
||||||
job: "cd /ansible_docker_compose; docker compose pull && docker compose up -d"
|
job: "cd /ansible_docker_compose; docker compose pull && docker compose up -d"
|
||||||
|
|
||||||
- name: ensure automatic cleanup cron job is present
|
|
||||||
become: true
|
|
||||||
ansible.builtin.cron:
|
|
||||||
name: 'ansible docker compose auto cleanup'
|
|
||||||
minute: "23"
|
|
||||||
hour: "4"
|
|
||||||
job: "docker system prune -a -f"
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue