more aramo/jammy updates
[automated-distro-installer] / myfai-chboot
index 32addc589e4f2a2b9455ec4d48b47ff39c5dc40c..308b1c70a04e317cb47e1aeacdefbc831d2c4426 100755 (executable)
@@ -3,22 +3,44 @@
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
+x=$(readlink -f "$BASH_SOURCE"); cd ${x%/*}
 
 usage() {
-    cat <<'EOF'
-usage $0 [hostname|ip|default]...
+  cat <<EOF
+usage: ${0##*/} [OPTIONS] [HOSTNAME|IP|default]
+
+Sets up tftp pxe config and nfs server on host "faiserver".
+
+If our kernel has no nfs support, uses apache intead of nfs, and depends
+on another repo of Ian Kelling, basic-https-conf, where the file is at
+/a/exe/web-conf.
+
+Usng this, you can boot into fai with pxe-kexec without changing
+the dhcp server.
+
+Argument sets the host to enable it for.  No argument disables pxe
+config for all hosts, but leaves nfs server alone. Use faiserver-disable
+to disable the nfs server.
+
+-S          sets FAI_ACTION=sysinfo, and remove fai flag reboot.
+            Usefull for doing a system recovery. It reboots automatically anyways :(
+-k          Add serial port output for kgped16
+-i          sets FAI_ACTION=inventory and remove fai flag reboot.
+            I'm not sure what this is usefull for.
+-h|--help   Print help and exit.
 
-Sets up tftp pxe config. No argument disables for all hosts.
 EOF
-    exit $1
+  exit $1
 }
+case $1 in
+  -h|--help) usage ;;
+esac
 
-cd "${BASH_SOURCE%/*}" # directory of the script
 
-host=$(chost faiserver)
-ssh root@$host bash -s "$@" <myfai-chboot-local
-if [[ $1 ]]; then
-    ./faiserver-enable
+faiserver_addr=$(host faiserver | sed -rn 's/^\S+ has address //p;T;q' ||:)
+host=$(./chost faiserver)
+if ip a | grep "^ *inet.\? $faiserver_addr" &>/dev/null; then
+  ./myfai-chboot-local "$@"
 else
-    ./faiserver-disable
+  ssh root@$host bash -s -- "$@" <myfai-chboot-local
 fi