From c8c21ea2a09dd41a28652024ad0120111c187459 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 31 May 2022 21:10:11 +0700 Subject: [PATCH] add maintenance services for docker --- README.md | 2 + ansible-docker-ubuntu/playbook.yml | 1 + .../roles/services/files/dockerclean.service | 8 +++ .../roles/services/files/dockerclean.timer | 9 +++ .../roles/services/files/trashcli.service | 8 +++ .../roles/services/files/trashcli.timer | 9 +++ .../roles/services/tasks/main.yml | 69 +++++++++++++++++++ 7 files changed, 106 insertions(+) create mode 100644 ansible-docker-ubuntu/roles/services/files/dockerclean.service create mode 100644 ansible-docker-ubuntu/roles/services/files/dockerclean.timer create mode 100644 ansible-docker-ubuntu/roles/services/files/trashcli.service create mode 100644 ansible-docker-ubuntu/roles/services/files/trashcli.timer create mode 100644 ansible-docker-ubuntu/roles/services/tasks/main.yml diff --git a/README.md b/README.md index 9b38ac4..8876f15 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,8 @@ Ansible playbook to provision an standart Ubuntu LTS server VM. Expects the user - install `docker` - install `docker compose` - copy frequently used config files +- configure swap +- install maintenance services to clean trash and docker build cache ### Setup Copy or rename `vars.samle.yml` to `vars.yml` and set: diff --git a/ansible-docker-ubuntu/playbook.yml b/ansible-docker-ubuntu/playbook.yml index 0be9570..713d111 100644 --- a/ansible-docker-ubuntu/playbook.yml +++ b/ansible-docker-ubuntu/playbook.yml @@ -11,3 +11,4 @@ - docker-compose - userconf - swap + - services diff --git a/ansible-docker-ubuntu/roles/services/files/dockerclean.service b/ansible-docker-ubuntu/roles/services/files/dockerclean.service new file mode 100644 index 0000000..203711b --- /dev/null +++ b/ansible-docker-ubuntu/roles/services/files/dockerclean.service @@ -0,0 +1,8 @@ +[Unit] +Descrition=run docker clean up + +[Service] +User=regular_user +Group=regular_user +Type=oneshot +ExecStart=/usr/bin/docker system prune -af diff --git a/ansible-docker-ubuntu/roles/services/files/dockerclean.timer b/ansible-docker-ubuntu/roles/services/files/dockerclean.timer new file mode 100644 index 0000000..183b79e --- /dev/null +++ b/ansible-docker-ubuntu/roles/services/files/dockerclean.timer @@ -0,0 +1,9 @@ +[Unit] +Descrition=run docker clean up + +[Timer] +OnBootSec=11min +OnUnitActiveSec=7d + +[Install] +WantedBy=multi-user.target diff --git a/ansible-docker-ubuntu/roles/services/files/trashcli.service b/ansible-docker-ubuntu/roles/services/files/trashcli.service new file mode 100644 index 0000000..b67d744 --- /dev/null +++ b/ansible-docker-ubuntu/roles/services/files/trashcli.service @@ -0,0 +1,8 @@ +[Unit] +Description=empty trash daily older 3 + +[Service] +User=regular_user +Group=regular_user +Type=oneshot +ExecStart=/usr/bin/trash-empty 3 diff --git a/ansible-docker-ubuntu/roles/services/files/trashcli.timer b/ansible-docker-ubuntu/roles/services/files/trashcli.timer new file mode 100644 index 0000000..09452ef --- /dev/null +++ b/ansible-docker-ubuntu/roles/services/files/trashcli.timer @@ -0,0 +1,9 @@ +[Unit] +Descrition=run trashcli + +[Timer] +OnBootSec=10min +OnUnitActiveSec=1d + +[Install] +WantedBy=multi-user.target diff --git a/ansible-docker-ubuntu/roles/services/tasks/main.yml b/ansible-docker-ubuntu/roles/services/tasks/main.yml new file mode 100644 index 0000000..33b8fbb --- /dev/null +++ b/ansible-docker-ubuntu/roles/services/tasks/main.yml @@ -0,0 +1,69 @@ +--- + +- block: + - name: copy trashcli service + copy: + src: files/trashcli.service + dest: /etc/systemd/system/trashcli.service + owner: root + group: root + mode: "0644" + register: copy_trashcli_service + + - name: set user + replace: + path: /etc/systemd/system/trashcli.service + regexp: "=regular_user" + replace: "={{ regular_user }}" + when: copy_trashcli_service + + - name: copy trashcli timer + copy: + src: files/trashcli.timer + dest: /etc/systemd/system/trashcli.timer + owner: root + group: root + mode: "0644" + when: copy_trashcli_service + + - name: enable trashcli timer + systemd: + name: trashcli.timer + daemon_reload: yes + enabled: yes + state: started + + - name: copy dockerclean service + copy: + src: files/dockerclean.service + dest: /etc/systemd/system/dockerclean.service + owner: root + group: root + mode: "0644" + register: copy_dockerclean_service + + - name: set user + replace: + path: /etc/systemd/system/dockerclean.service + regexp: "=regular_user" + replace: "={{ regular_user }}" + when: copy_dockerclean_service + + - name: copy dockerclean timer + copy: + src: files/dockerclean.timer + dest: /etc/systemd/system/dockerclean.timer + owner: root + group: root + mode: "0644" + when: copy_dockerclean_service + + - name: enable dockerclean timer + systemd: + name: dockerclean.timer + daemon_reload: yes + enabled: yes + state: started + + become: true + become_user: root