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 }}'