diff --git a/roles/mailman3/files/systemd/hyperkitty-daily.service b/roles/mailman3/files/systemd/hyperkitty-daily.service new file mode 100644 index 0000000000..c67d62c331 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-daily.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty daily maintenance + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs daily diff --git a/roles/mailman3/files/systemd/hyperkitty-daily.timer b/roles/mailman3/files/systemd/hyperkitty-daily.timer new file mode 100644 index 0000000000..267a396cbf --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-daily.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Run hyperkitty daily maintenance every day +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=*-*-* 00:00:00 +RandomizedDelaySec=1h diff --git a/roles/mailman3/files/systemd/hyperkitty-hourly.service b/roles/mailman3/files/systemd/hyperkitty-hourly.service new file mode 100644 index 0000000000..1e9632d444 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-hourly.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty hourly maintenance + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs hourly diff --git a/roles/mailman3/files/systemd/hyperkitty-hourly.timer b/roles/mailman3/files/systemd/hyperkitty-hourly.timer new file mode 100644 index 0000000000..f7d1a573cc --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-hourly.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Run hyperkitty hourly maintenance every hour +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=*-*-* *:00:00 +RandomizedDelaySec=10m diff --git a/roles/mailman3/files/systemd/hyperkitty-minutely.service b/roles/mailman3/files/systemd/hyperkitty-minutely.service new file mode 100644 index 0000000000..585da78750 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-minutely.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty minutely maintenance + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs minutely diff --git a/roles/mailman3/files/systemd/hyperkitty-minutely.timer b/roles/mailman3/files/systemd/hyperkitty-minutely.timer new file mode 100644 index 0000000000..a6afafeaa1 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-minutely.timer @@ -0,0 +1,7 @@ +[Unit] +Description=Run hyperkitty minutely maintenance every minute +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=*-*-* *:*:00 diff --git a/roles/mailman3/files/systemd/hyperkitty-monthly.service b/roles/mailman3/files/systemd/hyperkitty-monthly.service new file mode 100644 index 0000000000..1f0e75e1e9 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-monthly.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty monthly maintenance + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs monthly diff --git a/roles/mailman3/files/systemd/hyperkitty-monthly.timer b/roles/mailman3/files/systemd/hyperkitty-monthly.timer new file mode 100644 index 0000000000..6e00eba673 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-monthly.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run hyperkitty monthly maintenance every month +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=*-*-01 00:00:00 +RandomizedDelaySec=6h +Persistent=true diff --git a/roles/mailman3/files/systemd/hyperkitty-quarter_hourly.service b/roles/mailman3/files/systemd/hyperkitty-quarter_hourly.service new file mode 100644 index 0000000000..bce47f03e4 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-quarter_hourly.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty maintenance every 15 minutes + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs quarter_hourly diff --git a/roles/mailman3/files/systemd/hyperkitty-quarter_hourly.timer b/roles/mailman3/files/systemd/hyperkitty-quarter_hourly.timer new file mode 100644 index 0000000000..6a7b9de6ab --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-quarter_hourly.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run hyperkitty maintenance every 15 minutes +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=*-*-* *:*/15:00 +Persistent=true +RandomizedDelaySec=5m diff --git a/roles/mailman3/files/systemd/hyperkitty-weekly.service b/roles/mailman3/files/systemd/hyperkitty-weekly.service new file mode 100644 index 0000000000..7a7135bd9d --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-weekly.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty weekly maintenance + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs weekly diff --git a/roles/mailman3/files/systemd/hyperkitty-weekly.timer b/roles/mailman3/files/systemd/hyperkitty-weekly.timer new file mode 100644 index 0000000000..475b497a99 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-weekly.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run hyperkitty weekly maintenance every week +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=Mon *-*-* 00:00:00 +RandomizedDelaySec=3h +Persistent=true diff --git a/roles/mailman3/files/systemd/hyperkitty-yearly.service b/roles/mailman3/files/systemd/hyperkitty-yearly.service new file mode 100644 index 0000000000..7aed4b6d35 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-yearly.service @@ -0,0 +1,7 @@ +[Unit] +Description=hyperkitty yearly maintenance + +[Service] +Type=oneshot +User=mailman +ExecStart=mailman-web runjobs yearly diff --git a/roles/mailman3/files/systemd/hyperkitty-yearly.timer b/roles/mailman3/files/systemd/hyperkitty-yearly.timer new file mode 100644 index 0000000000..1d9ca68f34 --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty-yearly.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run hyperkitty yearly maintenance every year +Requires=hyperkitty.target +PartOf=hyperkitty.target + +[Timer] +OnCalendar=*-01-01 00:00:00 +RandomizedDelaySec=12h +Persistent=true diff --git a/roles/mailman3/files/systemd/hyperkitty.target b/roles/mailman3/files/systemd/hyperkitty.target new file mode 100644 index 0000000000..b6fb8fd12c --- /dev/null +++ b/roles/mailman3/files/systemd/hyperkitty.target @@ -0,0 +1,13 @@ +[Unit] +Description=hyperkitty timed maintenance +After=mailman3.service +Wants=hyperkitty-minutely.timer +Wants=hyperkitty-quarter_hourly.timer +Wants=hyperkitty-hourly.timer +Wants=hyperkitty-daily.timer +Wants=hyperkitty-monthly.timer +Wants=hyperkitty-weekly.timer +Wants=hyperkitty-yearly.timer + +[Install] +WantedBy=timers.target diff --git a/roles/mailman3/tasks/main.yml b/roles/mailman3/tasks/main.yml index 69eb57882a..4ab1260b2b 100644 --- a/roles/mailman3/tasks/main.yml +++ b/roles/mailman3/tasks/main.yml @@ -450,6 +450,44 @@ - mailman - systemd +- name: Install the systemd cron services + ansible.builtin.file: + src: "systemd/{{ item }}.service" + dest: "/etc/systemd/system/{{ item }}.service" + with_items: + - hyperkitty-daily + - hyperkitty-hourly + - hyperkitty-minutely + - hyperkitty-monthly + - hyperkitty-quarter_hourly + - hyperkitty-weekly + - hyperkitty-yearly + notify: + - systemctl daemon-reload + tags: + - config + - mailman + - systemd + +- name: Install the systemd timers + ansible.builtin.file: + src: "systemd/{{ item }}.timer" + dest: "/etc/systemd/system/{{ item }}.timer" + with_items: + - hyperkitty-daily + - hyperkitty-hourly + - hyperkitty-minutely + - hyperkitty-monthly + - hyperkitty-quarter_hourly + - hyperkitty-weekly + - hyperkitty-yearly + notify: + - systemctl daemon-reload + tags: + - config + - mailman + - systemd + # Memcached - name: Set the memcached sysconfig file ansible.builtin.copy: