X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;ds=sidebyside;f=myfai-chboot;h=7d775ea66cd1e13663ed38df4098e6b49f518a9b;hb=HEAD;hp=e216aa077e0e9afe19b0fc572e173c4e55afa43e;hpb=d6df8985152a6c17523cedc3fee62694544eeaf2;p=automated-distro-installer diff --git a/myfai-chboot b/myfai-chboot index e216aa0..aa3c088 100755 --- a/myfai-chboot +++ b/myfai-chboot @@ -1,18 +1,72 @@ #!/bin/bash +# This file is part of Ian Kelling's automated-distro-installer +# Copyright (C) 2024 Ian Kelling + +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +this_file="$(readlink -f -- "${BASH_SOURCE[0]}")" +readonly this_file this_dir="${this_file%/*}" +cd "$this_dir" usage() { - cat <<'EOF' -usage $0 [hostname|ip|default]... + cat <<'EOF' +usage: myfai-chboot [OPTIONS] [HOSTNAME|IP|default] + +Sets up tftp pxe config and nfs server on host "faiserver.b8.nz". + +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. + +Using this, you can boot into fai with pxe-kexec without changing the +dhcp server. Note, if you are booting using fai-cd, the pxe config does +nothing, and only flags affecting FAI_ACTION will have any affect. You +can change the fai flags in the grub config, for example in +./grub.cfg.autodiscover, or at runtime by editing a grub menu option. +We could probably also set FAI_FLAGS the same way we set FAI_ACTION, +but I haven't tried it. + +HOSTNAME|IP|default 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. +-b Setup bonded ethernet. +--no-r Tell fai-chboot not to reboot when its done. This is implied by -i and -S. +-h|--help Print help and exit. -Sets up tftp pxe config. No argument disables for all hosts. EOF - exit $1 + exit 0 } +case $1 in + -h|--help) usage ;; +esac -cd "${BASH_SOURCE%/*}" # directory of the script -ssh root@faiserver bash -s "$@" /dev/null; then + ./myfai-chboot-local "$@" +else + ssh root@$host bash -s -- "$@"