fixes and remove some jessie stuff
[automated-distro-installer] / faiserver-setup
index bce13d272662e6bd11e410eaf32c519afcfd0325..ccff89498b062b90d849fe916ca48da0c678ebac 100755 (executable)
@@ -36,6 +36,13 @@ $BASEFILE_DIR/${UPCASED_BASE_CODENAME}${ARCH}.tar.(gz|xz) to exist, and it must
 generated around the same time as the nfsroot, at least so it has the
 same kernel version.
 
 generated around the same time as the nfsroot, at least so it has the
 same kernel version.
 
+
+Note: there is a bug in 5.9.4, fixed by adding
+    sleep 2
+
+/usr/sbin/fai-make-nfsroot:503, before apt-get update
+
+
 EOF
   exit $1
 }
 EOF
   exit $1
 }
@@ -77,32 +84,39 @@ armhf() {
   [[ $(dpkg --print-architecture) == armhf ]]
 }
 
   [[ $(dpkg --print-architecture) == armhf ]]
 }
 
-if grep -xFq 'VERSION="8 (jessie)"' /etc/os-release; then
-  gpg -a --recv-keys 2BF8D9FE074BCDE4; gpg -a --export 2BF8D9FE074BCDE4 | apt-key add -
-  cat >/etc/apt/sources.list.d/fai.list <<'EOF'
-deb https://fai-project.org/download jessie koeln
-EOF
-elif grep -iE 'VERSION=.*(stretch|flidas|xenail|buster|bullseye|etiona|nabia)' /etc/os-release; then
-  # fai on ubuntu only has official support using the universe repo, but newer
-  # tends to have less bugs.
-  wget -O - https://fai-project.org/download/2BF8D9FE074BCDE4.asc | apt-key add -
-
-  case $base in
-    stretch|buster|bullseye)
-      cat >/etc/apt/sources.list.d/fai.list <<EOF
+# fai on ubuntu only has official support using the universe repo, but newer
+# tends to have less bugs.
+wget -O - https://fai-project.org/download/2BF8D9FE074BCDE4.asc | apt-key add -
+
+update=false
+case $base in
+  stretch|buster|bullseye)
+    if ! grep -qFx "deb https://fai-project.org/download $base koeln" /etc/apt/sources.list.d/fai.list; then
+      update=true
+    fi
+    cat >/etc/apt/sources.list.d/fai.list <<EOF
 deb https://fai-project.org/download $base koeln
 EOF
 deb https://fai-project.org/download $base koeln
 EOF
-      ;;
-    *)
-      echo "$0: error: script needs updating for new base" >&2
-      exit 1
-      ;;
-  esac
-else
-  rm -f /etc/apt/sources.list.d/fai.list
+    ;;
+  *)
+    echo "$0: error: script needs updating for new base" >&2
+    exit 1
+    ;;
+esac
+
+f=/var/cache/apt/pkgcache.bin;
+if [[ -r $f ]]; then
+  cachetime=$(stat -c %Y $f );
+  now=$(date +%s)
+  limittime=$(( now - 60*60*2 ))
+  if (( cachtime > limittime )); then
+    update=true
+  fi
 fi
 
 fi
 
-apt-get update
+if $update; then
+  apt-get update
+fi
 
 # Relevant packages from fai-quickstart depends and fai-server recommends.
 # I especially do not wait isc-dhcp-server or an inetd. Also excludes
 
 # Relevant packages from fai-quickstart depends and fai-server recommends.
 # I especially do not wait isc-dhcp-server or an inetd. Also excludes
@@ -131,8 +145,10 @@ r=http://http.us.debian.org/debian
 cat >/etc/fai/apt/sources.list <<EOF
 deb $r $base main contrib
 EOF
 cat >/etc/fai/apt/sources.list <<EOF
 deb $r $base main contrib
 EOF
+
+### begin setup security repo ###
 case $base in
 case $base in
-  jessie|stretch|buster)
+  stretch|buster)
     cat >>/etc/fai/apt/sources.list <<EOF
 deb http://security.debian.org/debian-security $base/updates main contrib
 EOF
     cat >>/etc/fai/apt/sources.list <<EOF
 deb http://security.debian.org/debian-security $base/updates main contrib
 EOF
@@ -143,6 +159,7 @@ EOF
 deb http://security.debian.org/debian-security $base-security main contrib
 EOF
 esac
 deb http://security.debian.org/debian-security $base-security main contrib
 EOF
 esac
+### end setup security repo ###
 
 
 cat >>/etc/fai/apt/sources.list <<EOF
 
 
 cat >>/etc/fai/apt/sources.list <<EOF
@@ -151,18 +168,18 @@ cat >>/etc/fai/apt/sources.list <<EOF
 deb http://fai-project.org/download $base koeln
 EOF
 
 deb http://fai-project.org/download $base koeln
 EOF
 
-if [[ $base == jessie ]]; then
-  cat >>/etc/fai/apt/sources.list <<'EOF'
-# fix tar https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819978
-deb http://ftp.debian.org/debian jessie-backports main
-EOF
-  # note, fai doesn\'t look at /etc/fai/apt/preferences.d
-  cat >/etc/fai/apt/preferences <<'EOF'
-Package: tar
-Pin: release a=jessie-backports
-Pin-Priority: 500
-EOF
-fi
+## Get latest kernel and btrfs for dealing with btrfs issues.
+# if [[ $base == buster ]]; then
+#   cat >>/etc/fai/apt/sources.list <<'EOF'
+# deb http://ftp.debian.org/debian buster-backports main
+EOF
+  # note, fai doesn\'t look at /etc/fai/apt/preferences.d
+  cat >/etc/fai/apt/preferences <<'EOF'
+# Package: linux-* firmware-linux-free btrfs-progs
+# Pin: release a=buster-backports
+Pin-Priority: 500
+EOF
+fi
 
 
 $sed -f - /etc/fai/nfsroot.conf <<EOF
 
 
 $sed -f - /etc/fai/nfsroot.conf <<EOF
@@ -225,13 +242,8 @@ if armhf; then
     # tftp environment
     local pxebin
 
     # tftp environment
     local pxebin
 
-    # wheezy path
-    if [ -f $NFSROOT/usr/lib/PXELINUX/pxelinux.0 ]; then
-      pxebin=$NFSROOT/usr/lib/PXELINUX/pxelinux.0
-    else
-      # jessie+ path
-      pxebin=$NFSROOT/usr/lib/syslinux/pxelinux.0
-    fi
+    # jessie+ path
+    pxebin=$NFSROOT/usr/lib/syslinux/pxelinux.0
 
     rm -f $NFSROOT/boot/*.bak
     mkdir -p $TFTPROOT/pxelinux.cfg
 
     rm -f $NFSROOT/boot/*.bak
     mkdir -p $TFTPROOT/pxelinux.cfg