From 33fdb1084cb8a8c305916790b76229ebdb36e738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amedee=20Van=20Gasse=20=E2=9C=A8=F0=9F=8C=88=F0=9F=A6=84?= Date: Tue, 24 Sep 2024 01:38:42 +0200 Subject: [PATCH] Use debops.cron role to configure cron jobs Less dumb file copying, more intelligent configuring --- roles/common/files/etc/cron.monthly/hadori | 3 --- roles/common/meta/main.yml | 6 ++++++ roles/common/tasks/main.yml | 17 +++++++++-------- .../files/etc/cron.daily/doveadm-expunge | 6 ------ .../bin/extract_image_attachments.sh} | 0 roles/mailinabox/meta/main.yml | 19 +++++++++++++++++++ roles/mailinabox/tasks/main.yml | 16 ++++++++-------- 7 files changed, 42 insertions(+), 25 deletions(-) delete mode 100644 roles/common/files/etc/cron.monthly/hadori delete mode 100755 roles/mailinabox/files/etc/cron.daily/doveadm-expunge rename roles/mailinabox/files/{etc/cron.daily/extract_image_attachments => root/bin/extract_image_attachments.sh} (100%) diff --git a/roles/common/files/etc/cron.monthly/hadori b/roles/common/files/etc/cron.monthly/hadori deleted file mode 100644 index b54a124..0000000 --- a/roles/common/files/etc/cron.monthly/hadori +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# Hardlink specified directories using hadori -/usr/bin/hadori --verbose /bin /sbin /lib /lib64 /usr /opt diff --git a/roles/common/meta/main.yml b/roles/common/meta/main.yml index ca53a32..fe1bf3f 100644 --- a/roles/common/meta/main.yml +++ b/roles/common/meta/main.yml @@ -3,3 +3,9 @@ dependencies: - role: geerlingguy.swap swap_file_size_mb: '4096' - role: debops.debops.unattended_upgrades + - role: debops.debops.cron + cron__jobs: + hadori: + name: 'Hardlink with hadori' + special_time: 'monthly' + job: '/usr/bin/hadori --verbose /bin /sbin /lib /lib64 /usr /opt' diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml index 4dbe2a4..80f6c3f 100644 --- a/roles/common/tasks/main.yml +++ b/roles/common/tasks/main.yml @@ -48,17 +48,18 @@ mode: u=rw,go=r notify: Restart munin-node + - name: Copy munin plugin config files + ansible.builtin.copy: + src: etc/munin/plugin-conf.d/ + dest: /etc/munin/plugin-conf.d/ + owner: root + mode: u=rw,go=r + directory_mode: u=rwx,go=rx + notify: Restart munin-node + - name: Allow access to port 4949 community.general.ufw: rule: allow port: 4949 src: 142.93.227.16 notify: Restart munin-node - -- name: Copy etc files - ansible.builtin.copy: - src: etc/ - dest: /etc/ - owner: root - mode: u=rwx,go=rX - directory_mode: u=rwx,go=rx diff --git a/roles/mailinabox/files/etc/cron.daily/doveadm-expunge b/roles/mailinabox/files/etc/cron.daily/doveadm-expunge deleted file mode 100755 index 8f3908c..0000000 --- a/roles/mailinabox/files/etc/cron.daily/doveadm-expunge +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# Expunge Trash and Spam -DOVEADM=$(which doveadm) - -$DOVEADM expunge -A mailbox Trash before 30d -$DOVEADM expunge -A mailbox Spam before 60d diff --git a/roles/mailinabox/files/etc/cron.daily/extract_image_attachments b/roles/mailinabox/files/root/bin/extract_image_attachments.sh similarity index 100% rename from roles/mailinabox/files/etc/cron.daily/extract_image_attachments rename to roles/mailinabox/files/root/bin/extract_image_attachments.sh diff --git a/roles/mailinabox/meta/main.yml b/roles/mailinabox/meta/main.yml index b3a8465..ddea511 100644 --- a/roles/mailinabox/meta/main.yml +++ b/roles/mailinabox/meta/main.yml @@ -8,3 +8,22 @@ dependencies: version: '3.0.1' priority: '99' - role: mailserver + - role: debops.debops.cron + cron__jobs: + doveadm_expunge: + jobs: + - name: 'Expunge Trash' + special_time: 'daily' + job: '/usr/bin/expunge -A mailbox Trash before 30d' + - name: 'Expunge Spam' + special_time: 'daily' + job: '/usr/bin/expunge -A mailbox Spam before 60d' + extract_image_attachments: + name: 'Extract image attachments' + special_time: 'daily' + job: '/root/bin/extract_image_attachments.sh' + custom_files: + - src: 'root/bin/extract_image_attachments.sh' + dest: '/root/bin/extract_image_attachments.sh' + owner: root + mode: u=rwx,go=rx diff --git a/roles/mailinabox/tasks/main.yml b/roles/mailinabox/tasks/main.yml index 07b7c09..452b6e5 100644 --- a/roles/mailinabox/tasks/main.yml +++ b/roles/mailinabox/tasks/main.yml @@ -14,6 +14,14 @@ - /home/user-data/backup - /home/user-data/dns +- name: Copy /etc/profile.d files + ansible.builtin.copy: + src: etc/profile.d/ + dest: /etc/profile.d/ + owner: root + mode: u=rwx,go=rx + directory_mode: u=rwx,go=rx + - name: Copy custom DNS settings ansible.builtin.copy: src: home/user-data/dns/custom.yaml @@ -32,11 +40,3 @@ - name: Configure Munin ansible.builtin.include_tasks: tasks/munin.yml - -- name: Copy /etc files - ansible.builtin.copy: - src: etc/ - dest: /etc/ - owner: root - mode: u=rwX,go=rX - directory_mode: u=rwx,go=rx