syncoid: fix output und move to script (#113)
Reviewed-on: #113 Co-authored-by: Michael Grote <michael.grote@posteo.de> Co-committed-by: Michael Grote <michael.grote@posteo.de>
This commit is contained in:
parent
0bb0169b66
commit
3c29e32f7d
3 changed files with 25 additions and 11 deletions
|
@ -38,6 +38,17 @@
|
||||||
when:
|
when:
|
||||||
- sanoid_syncoid_destination_host
|
- sanoid_syncoid_destination_host
|
||||||
|
|
||||||
|
- name: template syncoid.sh
|
||||||
|
become: true
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: "syncoid.sh.j2"
|
||||||
|
dest: /usr/bin/syncoid.sh
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0755"
|
||||||
|
when:
|
||||||
|
- sanoid_syncoid_destination_host
|
||||||
|
|
||||||
- name: template syncoid_mail.service
|
- name: template syncoid_mail.service
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|
|
@ -6,14 +6,5 @@ OnFailure=syncoid_mail.service
|
||||||
OnSuccess=syncoid_mail.service
|
OnSuccess=syncoid_mail.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=simple
|
||||||
# check if dest-dataset is mounted (sed: entferne 1. Zeile; awk: zeige nur yes/no; grep: RC1 when != yes)
|
ExecStart=/usr/bin/syncoid.sh
|
||||||
{% for item in sanoid_syncoid_datasets_sync %}
|
|
||||||
# check if target dataset is mounted
|
|
||||||
ExecStart=/bin/sh -c '/usr/sbin/zfs get mounted -H {{ item.destination_mount_check }} | awk "{print $3}" | grep yes > /dev/null'
|
|
||||||
# check if source host is reachable
|
|
||||||
ExecStart=/bin/sh -c 'ping -c1 -W1 {{ item.source_host }} > /dev/null || {{ item.source_host }} not reachable!'
|
|
||||||
# syncoid
|
|
||||||
ExecStart=/bin/sh -c 'echo "sending {{ item.source_dataset }}..."'
|
|
||||||
ExecStart=/bin/sh -c 'export HOME=/root ; /usr/bin/syncoid --compress=zstd-fast --quiet --sshoption=StrictHostKeyChecking=no --delete-target-snapshots --use-hold --preserve-recordsize --sshkey "/etc/sanoid/.ssh/id_sanoid" --source-bwlimit {{ sanoid_syncoid_bwlimit }} {{ sanoid_user }}@{{ item.source_host }}:{{ item.source_dataset }} {{ item.destination_dataset }}'
|
|
||||||
{% endfor %}
|
|
||||||
|
|
12
roles/mgrote_zfs_sanoid/templates/syncoid.sh.j2
Normal file
12
roles/mgrote_zfs_sanoid/templates/syncoid.sh.j2
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
{{ file_header | default () }}
|
||||||
|
|
||||||
|
# check if dest-dataset is mounted (sed: entferne 1. Zeile; awk: zeige nur yes/no; grep: RC1 when != yes)
|
||||||
|
{% for item in sanoid_syncoid_datasets_sync %}
|
||||||
|
# check if target dataset is mounted
|
||||||
|
/usr/sbin/zfs get mounted -H {{ item.destination_mount_check }} | awk "{print $3}" | grep yes > /dev/null
|
||||||
|
# check if source host is reachable
|
||||||
|
ping -c1 -W1 {{ item.source_host }} > /dev/null || {{ item.source_host }} not reachable!
|
||||||
|
# syncoid
|
||||||
|
export HOME=/root ; /usr/bin/syncoid --compress=zstd-fast --sshoption=StrictHostKeyChecking=no --delete-target-snapshots --use-hold --preserve-recordsize --sshkey "/etc/sanoid/.ssh/id_sanoid" --source-bwlimit {{ sanoid_syncoid_bwlimit }} {{ sanoid_user }}@{{ item.source_host }}:{{ item.source_dataset }} {{ item.destination_dataset }}
|
||||||
|
{% endfor %}
|
Loading…
Reference in a new issue