30 lines
815 B
Bash
30 lines
815 B
Bash
#!/bin/bash
|
|
# GENERATED BY CHEF
|
|
# DO NOT EDIT
|
|
|
|
REPOSITORY=$BORG_REPO
|
|
|
|
echo "Starting backup of VM: $1"
|
|
|
|
echo "Dumping domain XML to /root/backups/vm_meta/$1.xml"
|
|
virsh dumpxml --migratable $1 > /root/backups/vm_meta/$1.xml
|
|
|
|
virsh snapshot-create-as --domain $1 \
|
|
--name hotswap.qcow2 \
|
|
--no-metadata \
|
|
--atomic \
|
|
--quiesce \
|
|
--disk-only \
|
|
--diskspec vda,snapshot=external
|
|
|
|
# TODO report failures
|
|
borg create -v $REPOSITORY::$1_$(date +%F_%H-%M) \
|
|
/var/lib/libvirt/images/$1.qcow2 \
|
|
/root/backups/vm_meta/$1.xml
|
|
|
|
echo "Pivoting base image back to original"
|
|
virsh blockcommit $1 vda --pivot --base=/var/lib/libvirt/images/$1.qcow2
|
|
|
|
echo "Removing snapshot image"
|
|
rm /var/lib/libvirt/images/$1.hotswap.qcow2
|