30 lines
		
	
	
		
			799 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			799 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| # GENERATED BY CHEF
 | |
| # DO NOT EDIT
 | |
| set -e
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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
 |