iankelling.org
/
git
/
automated-distro-installer
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor fixes
[automated-distro-installer]
/
fai-revm
diff --git
a/fai-revm
b/fai-revm
index 547689d462ae2f550eae0b07b1d839ebb62ab5cf..bd9a9d633b70ff1ed650a4e00a986b7705e1282c 100755
(executable)
--- a/
fai-revm
+++ b/
fai-revm
@@
-17,10
+17,9
@@
-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 "$*"; "$@"; }
e() { echo "$*"; "$@"; }
@@
-34,8
+33,10
@@
then start a virtual machine to test the config
Note, sometimes shutting down the existing demohost vm
fails. Just run again if that happens.
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
-h|--help Print help and exit.
Note: Uses GNU getopt options parsing style
@@
-43,17
+44,15
@@
EOF
exit $1
}
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
eval set -- "$temp"
while true; do
case $1 in
+ -d) dhcp_arg=-d; shift ;;
-n) new_disk=true; 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 ;;
-h|--help) usage ;;
--) shift; break ;;
*) echo "$0: Internal error!" ; exit 1 ;;
@@
-61,10
+60,6
@@
while true; do
done
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
# change this to test different disk counts. 1 and > 1 should be the only
# important things to test.
disk_count=1
@@
-74,9
+69,8
@@
if [[ $script_dir == /a/bin/* ]]; then
# Copy our script elsewhere so we can develop it
# and save it at the same time it's running
rm -rf /tmp/faifreeze
# 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
cp -ar /a/bin/fai /tmp/faifreeze
- exec /tmp/faifreeze/${BASH_SOURCE##*/} "$
@
"
+ exec /tmp/faifreeze/${BASH_SOURCE##*/} "$
{orig_args[@]}
"
fi
cd $script_dir
fi
cd $script_dir
@@
-85,19
+79,25
@@
is_arch_revm() {
[[ ${0##*/} == arch-revm ]]
}
[[ ${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
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
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
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
#variant=debian8
fi
@@
-112,7
+112,7
@@
for ((i=1; i <= disk_count; i++)); do
disk_arg+=("--disk path=$f")
if $new_disk || [[ ! -e $f ]]; then
s rm -f $f
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
2
0G
+ e s qemu-img create -o preallocation=metadata -f qcow2 $f
5
0G
fi
done
fi
done
@@
-120,13
+120,16
@@
if [[ $SSH_CLIENT ]]; then
console_arg=--noautoconsole
fi
console_arg=--noautoconsole
fi
+# docker makes forward default to drop, which blocks the vm pxe on flidas. easiest solution:
+s iptables -P FORWARD ACCEPT
+
# --cpu host: this causes mkfs.btrfs to fail with a stack trace which began
# something like:
# init_module+0x108/0x1000 [raid6_pq]
#
# uniq is to stop gtk-warning spam
e s virt-install --os-variant $variant -n $name --pxe -r 2048 --vcpus 1 \
# --cpu host: this causes mkfs.btrfs to fail with a stack trace which began
# something like:
# init_module+0x108/0x1000 [raid6_pq]
#
# 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
--graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
if [[ $SSH_CLIENT ]]; then
@@
-134,11
+137,11
@@
if [[ $SSH_CLIENT ]]; then
fi
sleep 30
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
e sleep 5
done
-cleanup() { :; }
-e pxe-server
:
+unset _errcatch_cleanup
+e pxe-server
if is_arch_revm; then
./arch-init-remote $name
fi
if is_arch_revm; then
./arch-init-remote $name
fi