X-Git-Url: https://iankelling.org/git/?p=automated-distro-installer;a=blobdiff_plain;f=faiserver-setup;h=0501baca8c6da90d5f31e9c9be9ae14d970debe1;hp=ccff89498b062b90d849fe916ca48da0c678ebac;hb=6ca069946c8ff88d79d1ae421e0eda60ae1c514c;hpb=dcc5f68f7fbe9aa86cb3c7402ba4429bd70b369d diff --git a/faiserver-setup b/faiserver-setup index ccff894..0501bac 100755 --- a/faiserver-setup +++ b/faiserver-setup @@ -31,7 +31,7 @@ as the tftp server. I vaguely remember that using a hostname does not work. Separate from running this, faiserver needs to be setup in dns to point to whatever host this is run on. -Default BASE_CODENAME is buster. Default ARCH is 64. The script expects corresponding +Default BASE_CODENAME is bullseye. Default ARCH is 64. The script expects corresponding $BASEFILE_DIR/${UPCASED_BASE_CODENAME}${ARCH}.tar.(gz|xz) to exist, and it must have been generated around the same time as the nfsroot, at least so it has the same kernel version. @@ -40,6 +40,13 @@ same kernel version. Note: there is a bug in 5.9.4, fixed by adding sleep 2 +Note: in t9, there is a bug in recent fai packages (eg 2021+), where + unshare uses a too new argument. I was able to fix it by + just going to the site of the error and changing unshare to + chroot like it used to be, but I'm not bothering to make + any persistent fix, since I'm now on t10. If it ever came + up again, using an old fai package would also work. + /usr/sbin/fai-make-nfsroot:503, before apt-get update @@ -54,7 +61,7 @@ esac e() { echo "+ $@"; "$@"; } -base=${1:-buster} +base=${1:-bullseye} arch=${2:-64} if [[ $base == [[:upper:]] ]]; then @@ -90,7 +97,7 @@ wget -O - https://fai-project.org/download/2BF8D9FE074BCDE4.asc | apt-key add - update=false case $base in - stretch|buster|bullseye) + stretch|bullseye|bullseye) if ! grep -qFx "deb https://fai-project.org/download $base koeln" /etc/apt/sources.list.d/fai.list; then update=true fi @@ -124,7 +131,8 @@ fi # kernel, or the ability to install it. # xorriso is for running fai-cd -a, not strictly need for fai-server # perl-tk is for fai-monitor-gui -pkgs=(fai-doc tftpd-hpa tar reprepro squashfs-tools binutils xorriso) +# mtools is for fai-cd +pkgs=(fai-doc tftpd-hpa tar reprepro squashfs-tools binutils xorriso perl-tk mtools) if modprobe nfsd &>/dev/null; then pkgs+=(nfs-kernel-server) else @@ -288,11 +296,22 @@ EOF fi rm -f /srv/fai/nfsroot/root/.ssh/known_hosts -key=$(ssh-keyscan localhost |& grep -o "ecdsa-sha2-nistp256.*") +if [[ $HOSTNAME == kd ]]; then + keyscan_arg="-p 8989" + fi +key=$(ssh-keyscan $keyscan_arg localhost |& grep -o "ecdsa-sha2-nistp256.*") for ip in faiserver $(ip addr show up| grep -w '^ *inet' | awk '{print $2}'| cut -d / -f 1 | grep -vF 127.0.0.1); do echo "$ip $key" >>/srv/fai/nfsroot/root/.ssh/known_hosts done +# make it the root because pxe-kexec only looks there. +# It wouldn't be too hard to change if we needed. +# We could also just dump things in /srv/tftp, but fai +# has some defaults, which I don't even use, which expect +# the other directory, so it's kind of a tossup, whatever. +sed -ri 's,^ *(TFTP_DIRECTORY=).*,\1"/srv/tftp/fai",' /etc/default/tftpd-hpa +systemctl restart tftpd-hpa + # serial console # mainly from