Add lab-build snippets and executing them in 'create'. Refactor create/destroy/pristine; also, only virsh destroy VMs if they are 'running'
This commit is contained in:
27
create
27
create
@ -24,18 +24,17 @@ 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
|
||||
VMS=$(ls -1 build/${BUILD}/${HVN}/)
|
||||
|
||||
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 -aIcgv 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"
|
||||
for VM in $VMS; do
|
||||
echo "[$VM] Cloning base"
|
||||
ssh root@$HVN "mkdir -p $STAGING/$VM; zfs clone $BASE ssd-vol0/$VM"
|
||||
echo "[$VM] Mounting in staging"
|
||||
ssh root@$HVN "mount /dev/zvol/ssd-vol0/$VM-part1 $STAGING/$VM"
|
||||
echo "[$VM] Rsyncing build"
|
||||
rsync -aIcg build/$BUILD/$HVN/$VM/ root@${HVN}:$STAGING/$VM/
|
||||
echo "[$VM] Running lab-build snippets"
|
||||
ssh root@$HVN "cd $STAGING/$VM; for s in root/lab-build/*; do chroot $STAGING/$VM /bin/bash /\$s; done"
|
||||
echo "[$VM] Unmounting and snapshotting pristine state"
|
||||
ssh root@$HVN "umount $STAGING/$VM; zfs snapshot ssd-vol0/${VM}@pristine"
|
||||
done
|
||||
|
Reference in New Issue
Block a user