From 1276415dd088f0b9ee7c7564c67783807fd7ba26 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 5 Jan 2021 18:17:04 +0100 Subject: [PATCH] Implemented systemd-email.service for native-pull-remote-backups --- README.md | 5 ++--- roles/native-pull-remote-backups/meta/main.yml | 1 + .../templates/pull-remote-backups.service | 1 + roles/native-systemd-email/readme.md | 6 ++++++ roles/native-systemd-email/tasks/main.yml | 11 +++++++++++ .../templates/msmtprc.conf.j2 | 15 +++++++++++++++ .../templates/systemd-email.service.j2 | 8 ++++++++ .../templates/systemd-email.sh.j2 | 11 +++++++++++ 8 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 roles/native-systemd-email/readme.md create mode 100644 roles/native-systemd-email/tasks/main.yml create mode 100644 roles/native-systemd-email/templates/msmtprc.conf.j2 create mode 100644 roles/native-systemd-email/templates/systemd-email.service.j2 create mode 100644 roles/native-systemd-email/templates/systemd-email.sh.j2 diff --git a/README.md b/README.md index de802649..e2ad6325 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,5 @@ ansible-playbook -i ~/your-inventories/inventorie/hosts site.yml docker stop $(docker ps -aq); docker rm $(docker ps -aq); docker volume rm $(docker volume ls -q); `` -## todo -- implement smtp -- implement administrator mail +## see +- https://wiki.archlinux.org/index.php/Ansible diff --git a/roles/native-pull-remote-backups/meta/main.yml b/roles/native-pull-remote-backups/meta/main.yml index c2902963..c64fb15b 100644 --- a/roles/native-pull-remote-backups/meta/main.yml +++ b/roles/native-pull-remote-backups/meta/main.yml @@ -1,2 +1,3 @@ dependencies: - native-git + - native-systemd-email diff --git a/roles/native-pull-remote-backups/templates/pull-remote-backups.service b/roles/native-pull-remote-backups/templates/pull-remote-backups.service index 32cbf58d..19a96c10 100644 --- a/roles/native-pull-remote-backups/templates/pull-remote-backups.service +++ b/roles/native-pull-remote-backups/templates/pull-remote-backups.service @@ -4,3 +4,4 @@ Description=pull remote backups [Service] Type=oneshot ExecStart=/usr/bin/bash /usr/local/bin/pull-remote-backups.sh +OnFailure=systemd-email@%n.service diff --git a/roles/native-systemd-email/readme.md b/roles/native-systemd-email/readme.md new file mode 100644 index 00000000..cf896b6c --- /dev/null +++ b/roles/native-systemd-email/readme.md @@ -0,0 +1,6 @@ +# native-systemd-mail + +# see +- https://wiki.archlinux.org/index.php/Systemd/Timers#MAILTO +- https://serverfault.com/questions/876233/how-to-send-an-email-if-a-systemd-service-is-restarted/876254 +- https://serverfault.com/questions/694818/get-notification-when-systemd-monitored-service-enters-failed-state diff --git a/roles/native-systemd-email/tasks/main.yml b/roles/native-systemd-email/tasks/main.yml new file mode 100644 index 00000000..41fdc426 --- /dev/null +++ b/roles/native-systemd-email/tasks/main.yml @@ -0,0 +1,11 @@ +- name: install smtp-forwarder + pacman: name=smtp-forwarder state=present + +- name: configure msmtprc.conf.j2 + template: src=msmtprc.conf.j2 dest=/root/.msmtprc + +- name: configure systemd-email.sh + template: src=systemd-email.sh.j2 dest=/usr/local/bin/systemd-email.sh + +- name: configure systemd-email.service + template: src=systemd-email.service.j2 dest=/etc/systemd/system/systemd-email.service diff --git a/roles/native-systemd-email/templates/msmtprc.conf.j2 b/roles/native-systemd-email/templates/msmtprc.conf.j2 new file mode 100644 index 00000000..5d2d7104 --- /dev/null +++ b/roles/native-systemd-email/templates/msmtprc.conf.j2 @@ -0,0 +1,15 @@ +# Set default values for all following accounts. +defaults +auth on +tls on +tls_trust_file /etc/ssl/certs/ca-certificates.crt +logfile ~/.msmtp.log + +account system_email +host {{system_email_host}} +port 587 +from {{system_email}} +user {{system_email_username}} +password {{system_email_password}} + +account default : system_email diff --git a/roles/native-systemd-email/templates/systemd-email.service.j2 b/roles/native-systemd-email/templates/systemd-email.service.j2 new file mode 100644 index 00000000..66c5c4a6 --- /dev/null +++ b/roles/native-systemd-email/templates/systemd-email.service.j2 @@ -0,0 +1,8 @@ +[Unit] +Description=status email for %i to user + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/systemd-email.sh %i +User=nobody +Group=systemd-journal diff --git a/roles/native-systemd-email/templates/systemd-email.sh.j2 b/roles/native-systemd-email/templates/systemd-email.sh.j2 new file mode 100644 index 00000000..aa45863f --- /dev/null +++ b/roles/native-systemd-email/templates/systemd-email.sh.j2 @@ -0,0 +1,11 @@ +#!/bin/bash + +/usr/bin/sendmail -t < +Subject: $1 +Content-Transfer-Encoding: 8bit +Content-Type: text/plain; charset=UTF-8 + +$(systemctl status --full "$1") +ERRMAIL