X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=dsfull;h=1fea3bce6a7b4cf49464a9715d8a73d1b0d39e1f;hb=c4337bdfa287cb3160b294d58c64b51f870117ea;hp=c6f18759b4e711ebb33cf7c28eac1a8282962e46;hpb=da12892acf1eda37539938f2dd726f815b377e7a;p=automated-distro-installer diff --git a/dsfull b/dsfull index c6f1875..1fea3bc 100755 --- a/dsfull +++ b/dsfull @@ -1,11 +1,11 @@ #!/bin/bash -l # Copyright (C) 2016 Ian Kelling -# This program is under GPL v. 3 or later, see -# distro setup full. (assuming we already synced data files to the host) +# distro setup full using fai. (assuming we already synced data files to the host) set -eE -o pipefail -trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +cleanup() { :; } +trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR reboot=true if [[ $1 == -r ]]; then @@ -23,11 +23,23 @@ fi set -x if $reboot; then # untested, this caused hang using here doc. - ssh $host sudo bash -c "touch /tmp/keyscript-off; reboot" ||: + ssh $host "touch /tmp/keyscript-off; sudo reboot" ||: fi -pxe-server fai $host -while ! ssh $host :; do +cleanup() { pxe-server :; } +pxe-server -a fai $host +cleanup() { :; } + +timedout=true +for ((i=0; i<240; i++)); do + if timeout -s 9 10 ssh $host :; then + timedout=false + break + fi sleep 5 done +if $timeout; then + echo "$0: error: timeout" + exit 1 +fi dsremote $host