-cleanup() { :; }
-set -eE -o pipefail
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-script_dir=$(dirname $(readlink -f "$BASH_SOURCE"))
+x="$(readlink -f "$BASH_SOURCE")"
+script_dir="${x%/*}"
+source "${script_dir}/bash-trace"
e() { echo "$*"; "$@"; }
Note, sometimes shutting down the existing demohost vm
fails. Just run again if that happens.
--r Do not reboot.
--n Create new qcow2(s) for vm
+-d Don't do dhcp setup for when we aren't on Ian's home network.
+-r Do not boot after install is complete
+-n Create new qcow2(s) for vm. Good for testing partitioning
+ script, to ensure a blank disk.
-h|--help Print help and exit.
Note: Uses GNU getopt options parsing style
exit $1
}
-
-# not sure why I wanted to have this option before. oh well.
-redeploy=true
-
-reboot=true
-temp=$(getopt -l opt o "$@") || usage 1
+orig_args=("$@")
+new_disk=false
+temp=$(getopt -l help dnrh "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
+ -d) dhcp_arg=-d; shift ;;
-n) new_disk=true; shift ;;
- -r) reboot=false; shift ;;
+ -r) reboot_arg=--noreboot; shift ;;
-h|--help) usage ;;
--) shift; break ;;
*) echo "$0: Internal error!" ; exit 1 ;;
done
-if [[ $1 == -r ]]; then
- redeploy=false
-fi
-
# change this to test different disk counts. 1 and > 1 should be the only
# important things to test.
disk_count=1
# Copy our script elsewhere so we can develop it
# and save it at the same time it's running
rm -rf /tmp/faifreeze
- mkdir -p /a/tmp
cp -ar /a/bin/fai /tmp/faifreeze
- exec /tmp/faifreeze/${BASH_SOURCE##*/} "$@"
+ exec /tmp/faifreeze/${BASH_SOURCE##*/} "${orig_args[@]}"
fi
cd $script_dir
[[ ${0##*/} == arch-revm ]]
}
-cleanup() { ./pxe-server :; }
+cleanup() {
+ echo "doing cleanup"
+ e ./pxe-server $dhcp_arg
+ ./faiserver-disable
+}
+_errcatch_cleanup=cleanup
+
if is_arch_revm; then
- ./pxe-server arch
+ e ./pxe-server $dhcp_arg demohost arch
sleep 2
# via osinfo-query os. guessing arch is closest to latest fedora.
variant=fedora22
else
- ./pxe-server fai
+ e ./pxe-server $dhcp_arg demohost fai
sleep 2
- if $redeploy; then
- ./fai-redep
- fi
- variant=ubuntu16.04
+ # I don't think these variants actually make a diff for us, but I
+ # use the appropriate one when trying a new distro just in case.
+ variant=ubuntu14.04
+ #variant=ubuntu16.04
#variant=debian8
fi
disk_arg+=("--disk path=$f")
if $new_disk || [[ ! -e $f ]]; then
s rm -f $f
- e s qemu-img create -o preallocation=metadata -f qcow2 $f 20G
+ e s qemu-img create -o preallocation=metadata -f qcow2 $f 50G
fi
done
#
# uniq is to stop gtk-warning spam
e s virt-install --os-variant $variant -n $name --pxe -r 2048 --vcpus 1 \
- ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad \
+ ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad $reboot_arg \
--graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
if [[ $SSH_CLIENT ]]; then
fi
sleep 30
-while ! timeout -s 9 10 ssh root@$name /bin/true; do
+while ! timeout -s 9 10 ssh -oBatchMode=yes root@$name /bin/true; do
e sleep 5
done
-cleanup() { :; }
-e pxe-server :
+unset _errcatch_cleanup
+e pxe-server
if is_arch_revm; then
./arch-init-remote $name
fi