e() { echo "$@"; "$@"; }
-# When stretch becomes stable, change this to stretch.
-# I\'ve tested this with stretch, it works, but notably,
# the automatic basefile getting will be for stretch
# instead of jessie, so if you install jessie, you need
# to setup the basefile and it\'s corresponding class.
-base=jessie
+base=stretch
sed="sed -ri --follow-symlinks"
if ! type -p wget &>/dev/null; then
[[ $(dpkg --print-architecture) == armhf ]]
}
-if grep -xFq 'VERSION="9 (stretch)"' /etc/os-release; then
- # if we use stretch, no need for fai-project repo.
- # this will need to be updated when there is a codename
- # for stretch+1
- rm -f /etc/apt/sources.list.d/fai.list
-elif armhf; then
+if armhf; then
if apt-cache policy | grep o=Debian,a=testing,n=stretch &>/dev/null; then
cat >/etc/apt/sources.list.d/testing.list <<'EOF'
deb http://http.us.debian.org/debian testing main contrib non-free
Pin-Priority: -10
EOF
fi
-else
- wget -O - http://fai-project.org/download/074BCDE4.asc | apt-key add -
- cat >/etc/apt/sources.list.d/fai.list <<'EOF'
+elif 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 http://fai-project.org/download jessie koeln
EOF
+elif grep -xFq 'VERSION="9 (stretch)"' /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 http://fai-project.org/download stretch koeln
+EOF
+else
+ rm -f /etc/apt/sources.list.d/fai.list
fi
# for ubuntu:
deb http://security.debian.org/debian-security $base/updates main contrib
EOF
+
+case $base in
+ jessie|stretch)
+ 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'
-# uncommenting this from the defaults. it's got bug fixes.
-# repository that may contain newer fai packages for jessie
-deb http://fai-project.org/download jessie koeln
# 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
# tried out a stretch base, doesn't work yet.
#
$sed -f - /etc/fai/nfsroot.conf <<EOF
+$ a FAI_ROOTPW='$(</q/root/shadow/standard)'
+/^\s*FAI_ROOTPW/d
+$ a SSH_IDENTITY=/root/.ssh/home.pub
+/^\s*SSH_IDENTITY/d
s,^( *FAI_DEBOOTSTRAP=).*,\1"$base $r",
# add --arch amd64. this is needed on arm system which is
# used to install amd64 clients. On amd64 servers, it's redundant.
# disabled for now, since creating fai nfsroot on my arm machine
# is not working
#/--arch amd64/!s/^(\s*FAI_DEBOOTSTRAP_OPTS=")/\1--arch amd64 /
-/^\s*FAI_ROOTPW/d
-$ a FAI_ROOTPW="$(</q/root/shadow/standard)"
EOF
$sed 's/#LOGUSER/LOGUSER/' /etc/fai/fai.conf
if armhf; then
cd /srv/fai
rm -rf nfsroot
- tar Jxf /a/bin/fai-basefiles/base.tar.xz
+ tar Jxf /a/bin/fai-basefiles/basefiles/STRETCH64.tar.xz
# background: Can't build the nfsroot on my arm system now. First,
# fai-make-nfsroot won't work out of the box. One idea to make it work
# is by installing qemu-user-static, then copying qemu-x86_64-static
diff -u <(type setup_tftp) <(cat <(sed -n '/^setup_tftp(){/,/^}/p' $(which fai-make-nfsroot) ) - <<'EOF' |bash
type setup_tftp
EOF
-)
+ )
setup_tftp
# -g causes skipping set_root_pw() in fai-make-nfsroot, -ag
# seem contradictory, but it works.
fai-setup -evag
-else
- e fai-setup -e -vf
+else # not armhf
+ # note, this copies the -B arg to
+ # /srv/fai/nfsroot/var/tmp/base.tar.xz
+ e fai-setup -evf -B /a/bin/fai-basefiles/basefiles/STRETCH64.tar.xz
# make the faiserver also the apt proxy server
apt-get -y install apt-cacher-ng
fi