X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=pxe-server;h=e59854a85e466be75cbad22733ded83cae6c077e;hb=2f13039525488532756a089b8329ab6ee64a6c17;hp=d8cbeb819b03bc134245ba0ec484f03577cf3114;hpb=ec9227898fa68bd89de454c87bce8ea051a8d783;p=automated-distro-installer diff --git a/pxe-server b/pxe-server index d8cbeb8..e59854a 100755 --- a/pxe-server +++ b/pxe-server @@ -28,13 +28,23 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR usage() { cat < tftpboot + + +-r Don't redeploy fai config. For example, if there is a different host + that is mid-install. -a Wait for 2 dhcp acks, then disable the pxe server after a delay. First ack is for pxe boot, 2nd ack is for os boot. Sometimes on debian, there is a 3rd one shortly after the 2nd. I can't remember @@ -68,12 +78,16 @@ while true; do esac done -read type host <<<"$@" +read host type <<<"$@" -if [[ ! $type ]]; then - echo "$0: error: exptected 1 argument of type" - usage 1 -fi +case $# in + 0|2);; + *) + echo "$0: error: expected 0 or 2 arguments" + echo + usage 1 + ;; +esac if [[ $host ]]; then host_tag="tag:$host," @@ -127,19 +141,20 @@ ack-wait() { } set-pxe() { - ${1:-$type} | ssh wrt "cedit pxe-server /etc/dnsmasq.conf || /etc/init.d/dnsmasq restart -if [[ $type == arch ]]; then arch-pxe-mount; fi" + ${type:-:}|ssh wrt "cedit pxe /etc/dnsmasq.conf || /etc/init.d/dnsmasq restart +$([[ $type == arch ]] && echo arch-pxe-mount)" } if $set; then set-pxe - if [[ $type == fai ]]; then + e myfai-chboot $host if $redep; then - fai-redep + e fai-redep fi - faiserver-enable + else + e myfai-chboot fi fi @@ -150,7 +165,8 @@ if $wait; then # bleh. echo "waiting for $acks dhcp acks then disabling pxe" ack-wait $acks - set-pxe : + type= + set-pxe # previously tried waiting for one more ack then disabling faiserver, # since it can contain sensitive info, so turn it off when not in use,