Flesh out create/destroy/pristine a little bit
This commit is contained in:
34
create
Normal file → Executable file
34
create
Normal file → Executable file
@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
## Using SSH:
|
## Using SSH:
|
||||||
## * Log in to hypervisor, retrieve list of running VMs
|
## * Log in to hypervisor, retrieve list of running VMs
|
||||||
## * Log in to hypervisor, retrieve list of ZFS volumes
|
## * Log in to hypervisor, retrieve list of ZFS volumes
|
||||||
@ -12,3 +14,35 @@
|
|||||||
## * Rsync over our build/$(overlay)/$(hypervisor)/*
|
## * Rsync over our build/$(overlay)/$(hypervisor)/*
|
||||||
## * Unmount the staging directories
|
## * Unmount the staging directories
|
||||||
## * Start the VMs
|
## * Start the VMs
|
||||||
|
|
||||||
|
BASE=${BASE:=ssd-vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0@20221018-release}
|
||||||
|
BUILD=${BUILD:=default}
|
||||||
|
LAB=${LAB:=0}
|
||||||
|
|
||||||
|
## Do not touch below this line
|
||||||
|
LABDIR=/var/lab
|
||||||
|
STAGING=$LABDIR/staging
|
||||||
|
HVN="hvn${LAB}.lab.ipng.ch"
|
||||||
|
|
||||||
|
echo "* Cloning base"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; mkdir -p $STAGING/\$VM; zfs clone $BASE ssd-vol0/\$VM; done"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
echo "* Mounting in staging"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; mount /dev/zvol/ssd-vol0/\$VM-part1 $STAGING/\$VM; done"
|
||||||
|
|
||||||
|
echo "* Rsyncing build"
|
||||||
|
rsync -avugP build/$BUILD/$HVN/ root@hvn${LAB}.lab.ipng.ch:$STAGING
|
||||||
|
|
||||||
|
echo "* Setting permissions"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; chown -R root. $STAGING/\$VM/root; done"
|
||||||
|
|
||||||
|
echo "* Unmounting and snapshotting pristine state"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; umount $STAGING/\$VM; zfs snapshot ssd-vol0/\${VM}@pristine; done"
|
||||||
|
|
||||||
|
echo "* Starting VMs"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; virsh start \$VM; done"
|
||||||
|
|
||||||
|
echo "* Committing OVS config"
|
||||||
|
scp overlays/$BUILD/ovs-config.sh root@$HVN:$LABDIR
|
||||||
|
ssh root@$HVN "set -x; $LABDIR/ovs-config.sh"
|
||||||
|
14
destroy
Normal file → Executable file
14
destroy
Normal file → Executable file
@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
## Using SSH:
|
## Using SSH:
|
||||||
## * Log in to hypervisor, retrieve list of running VMs
|
## * Log in to hypervisor, retrieve list of running VMs
|
||||||
## * Log in to hypervisor, retrieve list of ZFS volumes
|
## * Log in to hypervisor, retrieve list of ZFS volumes
|
||||||
@ -6,3 +8,15 @@
|
|||||||
## * If --force is set:
|
## * If --force is set:
|
||||||
## * Destroy matching VMs
|
## * Destroy matching VMs
|
||||||
## * Recursively delete any matching ZFS datasets
|
## * Recursively delete any matching ZFS datasets
|
||||||
|
|
||||||
|
BASE=${BASE:=ssd-vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0@20221018-release}
|
||||||
|
LAB=${LAB:=0}
|
||||||
|
|
||||||
|
## Do not touch below this line
|
||||||
|
HVN="hvn${LAB}.lab.ipng.ch"
|
||||||
|
|
||||||
|
echo "* Destroying VMs"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; virsh destroy \$VM; done"
|
||||||
|
|
||||||
|
echo "* Destroying ZFS datasets"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; zfs destroy -r ssd-vol0/\$VM; done"
|
||||||
|
10
pristine
Executable file
10
pristine
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
LAB=${LAB:=0}
|
||||||
|
|
||||||
|
## Do not touch below this line
|
||||||
|
HVN="hvn${LAB}.lab.ipng.ch"
|
||||||
|
|
||||||
|
## Bring back into pristine state
|
||||||
|
echo "* Restarting VMs from pristine snapshot"
|
||||||
|
ssh root@$HVN "set -x; for node in 0 1 2 3; do VM=vpp${LAB}-\${node}; virsh destroy \$VM; zfs rollback ssd-vol0/\${VM}@pristine; virsh start \$VM; done"
|
Reference in New Issue
Block a user