From e054b724d4cc8ab15768c79d346a9151bd95034d Mon Sep 17 00:00:00 2001 From: Michael Grote Date: Fri, 1 Apr 2022 17:57:20 +0200 Subject: [PATCH] clone --- roles/mgrote.zfs_sanoid/handlers/main.yml | 26 +++++++++++++++++++ .../templates/cv4pve.service.j2 | 9 +++++++ .../templates/cv4pve.timer.j2 | 11 ++++++++ .../templates/cv4pve_mail.service.j2 | 8 ++++++ 4 files changed, 54 insertions(+) create mode 100644 roles/mgrote.zfs_sanoid/handlers/main.yml create mode 100644 roles/mgrote.zfs_sanoid/templates/cv4pve.service.j2 create mode 100644 roles/mgrote.zfs_sanoid/templates/cv4pve.timer.j2 create mode 100644 roles/mgrote.zfs_sanoid/templates/cv4pve_mail.service.j2 diff --git a/roles/mgrote.zfs_sanoid/handlers/main.yml b/roles/mgrote.zfs_sanoid/handlers/main.yml new file mode 100644 index 00000000..510b17fe --- /dev/null +++ b/roles/mgrote.zfs_sanoid/handlers/main.yml @@ -0,0 +1,26 @@ +--- + - name: systemctl daemon-reload + become: yes + ansible.builtin.systemd: + daemon_reload: yes + + - name: systemctl enable units + become: yes + ansible.builtin.systemd: + name: "{{ item }}" + enabled: yes + masked: no + with_items: + - cv4pve.service + - cv4pve_mail.service + - cv4pve.timer + + - name: systemctl start units + become: yes + ansible.builtin.systemd: + name: "{{ item }}" + state: restarted + enabled: yes + with_items: + - cv4pve.timer + notify: systemctl daemon-reload diff --git a/roles/mgrote.zfs_sanoid/templates/cv4pve.service.j2 b/roles/mgrote.zfs_sanoid/templates/cv4pve.service.j2 new file mode 100644 index 00000000..d6eee5ab --- /dev/null +++ b/roles/mgrote.zfs_sanoid/templates/cv4pve.service.j2 @@ -0,0 +1,9 @@ +{{ file_header | default () }} +[Unit] +Description=Trigger VM-Snapshots in PVE with cv4pve. +After=multi-user.target +OnFailure=cv4pve_mail.service + +[Service] +Type=simple +ExecStart=/usr/local/bin/cv4pve/cv4pve-autosnap --host=127.0.0.1 --api-token {{ cv4pve_api_user }}={{ cv4pve_api_token }} --vmid="{{ cv4pve_vmid }}" snap --label='daily' --keep="{{ cv4pve_keep_snapshots }}" --state diff --git a/roles/mgrote.zfs_sanoid/templates/cv4pve.timer.j2 b/roles/mgrote.zfs_sanoid/templates/cv4pve.timer.j2 new file mode 100644 index 00000000..ed002a77 --- /dev/null +++ b/roles/mgrote.zfs_sanoid/templates/cv4pve.timer.j2 @@ -0,0 +1,11 @@ +{{ file_header | default () }} +[Unit] +Description=Timer: Trigger VM-Snapshots in PVE with cv4pve. + +[Timer] +OnCalendar=*-*-* {{ cv4pve_cron_hour }}:{{ cv4pve_cron_minute }}:00 +RandomizedDelaySec=10 min + + +[Install] +WantedBy=timers.target multi-user.target diff --git a/roles/mgrote.zfs_sanoid/templates/cv4pve_mail.service.j2 b/roles/mgrote.zfs_sanoid/templates/cv4pve_mail.service.j2 new file mode 100644 index 00000000..af2a5c24 --- /dev/null +++ b/roles/mgrote.zfs_sanoid/templates/cv4pve_mail.service.j2 @@ -0,0 +1,8 @@ +{{ file_header | default () }} + +[Unit] +Description=Send a Mail in case of an error in cv4pve.service. + +[Service] +Type=oneshot +ExecStart=/bin/bash -c '/bin/systemctl status cv4pve.service | mail -s "[ERROR] cv4pve - %H" {{ empfaenger_mail }}'