x="$(readlink -f "$BASH_SOURCE")"; source "${x%/*}/bash-trace"
-[[ $EUID == 0 ]] || exec sudo -i "${BASH_SOURCE}" "$@"
+[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
+
+LC_USEBASHRC=t; . ~/.bashrc
usage() {
cat <<EOF
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 stretch. Default ARCH is 64. The script expects corresponding
+Default BASE_CODENAME is buster. 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.
e() { echo "+ $@"; "$@"; }
-base=${1:-stretch}
+base=${1:-buster}
arch=${2:-64}
-basefile=($BASEFILE_DIR/${base^^}${arch^^}.tar.[gx]z)
+
+if [[ $base == [[:upper:]] ]]; then
+ echo $0: error: use lowercase base
+ exit 1
+fi
+
+basefile=($BASEFILE_DIR/${base^^}${arch^^}.tar.gz)
sed="sed -ri --follow-symlinks"
if [[ ! -e $basefile ]]; then
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|etiona)' /etc/os-release; then
+elif grep -iE 'VERSION=.*(stretch|flidas|xenail|buster|bullseye|etiona)' /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)
- cat >/etc/apt/sources.list.d/fai.list <<'EOF'
-deb https://fai-project.org/download stretch koeln
+ stretch|buster|bullseye)
+ cat >/etc/apt/sources.list.d/fai.list <<EOF
+deb https://fai-project.org/download $base koeln
EOF
;;
- buster)
- cat >/etc/apt/sources.list.d/fai.list <<'EOF'
-deb https://fai-project.org/download buster koeln
-EOF
+ *)
+ echo "$0: error: script needs updating for new base" >&2
+ exit 1
;;
esac
else
e apt-get install -y ${pkgs[@]}
# confnew since we edit /etc/fai/NFSROOT in an automated way
# fai-client is already a fai-server dependency, but make sure it gets upgraded
-e apt-get install --no-install-recommends -y -o Dpkg::Options::="--force-confnew" fai-server fai-client
+e apt-get install --no-install-recommends -y -o Dpkg::Options::=--no-force-confdef -o Dpkg::Options::=--force-confnew fai-server fai-client
r=http://http.us.debian.org/debian
# like default, but scrap httpredir, and nonfree.
# All my systems should be able to get along without nonfree
# for a base working system afaik.
+
cat >/etc/fai/apt/sources.list <<EOF
deb $r $base main contrib
-deb http://security.debian.org/debian-security $base/updates main contrib
EOF
-
-
case $base in
jessie|stretch|buster)
cat >>/etc/fai/apt/sources.list <<EOF
+deb http://security.debian.org/debian-security $base/updates main contrib
+EOF
+ ;;
+ *)
+ # new naming convention
+ cat >>/etc/fai/apt/sources.list <<EOF
+deb http://security.debian.org/debian-security $base-security main contrib
+EOF
+esac
+
+
+cat >>/etc/fai/apt/sources.list <<EOF
# use fai repo. it's commented in the defaults. it's got bug fixes.
# and may contain newer packages.
deb http://fai-project.org/download $base koeln
EOF
- ;;
-esac
if [[ $base == jessie ]]; then
cat >>/etc/fai/apt/sources.list <<'EOF'