+++ /dev/null
-# these variables are only used by make-fai-nfsroot(8)
-# here you can use also variables defined in fai.conf
-
-# directory on the install server where the nfsroot for FAI is
-# created, approx size: 250MB, also defined in bootptab or dhcp.conf
-NFSROOT=/srv/fai/nfsroot
-
-# TFTP root directory
-TFTPROOT=/srv/tftp/fai
-
-# Add a line for mirrorhost and installserver when DNS is not available
-# on the clients. This line(s) will be added to $nfsroot/etc/hosts.
-#NFSROOT_ETC_HOSTS="192.168.1.250 yourinstallserver"
-
-# debootstrap commandline
-FAI_DEBOOTSTRAP="squeeze http://cdn.debian.net/debian"
-
-# which options do you want to use for debootstrap?
-FAI_DEBOOTSTRAP_OPTS="--exclude=info,tasksel,tasksel-data"
-
-# the encrypted (with md5 or crypt) root password on all install clients during
-# installation process; used when log in via ssh; default pw is: fai
-FAI_ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
-
-# location of a identity.pub file; this user can log to the install
-# clients in as root without a password; only useful with FAI_FLAGS="sshd"
-#SSH_IDENTITY=/home/admin/.ssh/identity.pub
-
-# directory of hooks to be sourced at the end of make-fai-nfsroot,
-# i.e they have to be shell scripts.
-#NFSROOT_HOOKS=/etc/fai/nfsroot-hooks/
[ -n "${CHROOT_OUTPUT}" -a -d "${CHROOT_OUTPUT}" ] && rm -r "${CHROOT_OUTPUT}"
eend 0
fi
+
+ # get rid of automatically generated conffiles
+ rm -f ${GRML_FAI_CONFIG}/nfsroot.conf
+ rm -f ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf
+
if [ -n "$CHOWN_USER" ]; then
log "Setting ownership"
einfo "Setting ownership"
[ -n "$GRML_NAME" ] || GRML_NAME='grml'
[ -n "$HOSTNAME" ] || HOSTNAME='grml'
[ -n "$HYBRID_METHOD" ] || HYBRID_METHOD='isohybrid'
-[ -n "$NFSROOT_CONF" ] || NFSROOT_CONF="${GRML_FAI_CONFIG}/make-fai-nfsroot.conf"
[ -n "$RELEASENAME" ] || RELEASENAME='grml-live rocks'
[ -n "$SQUASHFS_EXCLUDES_FILE" ] || SQUASHFS_EXCLUDES_FILE="${GRML_FAI_CONFIG}/config/grml/squashfs-excludes"
[ -n "$SUITE" ] || SUITE='testing'
# }}}
# on-the-fly configuration {{{
-if [ -n "$FAI_DEBOOTSTRAP" ] ; then
- sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
-fi
# does this suck? YES!
# /usr/share/debootstrap/scripts/unstable does not exist, instead use 'sid':
esac
export SUITE # make sure it's available in FAI scripts
-for file in "$LIVE_CONF" "$LOCAL_CONFIG" "$NFSROOT_CONF" ; do
- if [ -n "$file" ] ; then
- sed "s|^FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$file" | sponge "$file"
- fi
-done
-
# validate whether the specified architecture class matches the
# architecture (option), otherwise installation of kernel will fail
if echo $CLASSES | grep -qi i386 ; then
fi
fi
-if grep -q -- 'FAI_DEBOOTSTRAP_OPTS.*--arch' "$NFSROOT_CONF" ; then
- sed "s/--arch [a-z0-9]* /--arch $ARCH /" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
-else
- sed "s|^FAI_DEBOOTSTRAP_OPTS=\"\(.*\)|FAI_DEBOOTSTRAP_OPTS=\"--arch $ARCH \1|" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF"
+# generate nfsroot configuration for FAI on the fly
+if [ -z "$FAI_DEBOOTSTRAP" ] ; then
+ FAI_DEBOOTSTRAP="$SUITE http://cdn.debian.net/debian"
fi
+
+if [ -z "$FAI_DEBOOTSTRAP_OPTS" ] ; then
+ FAI_DEBOOTSTRAP_OPTS="--exclude=info,tasksel,tasksel-data --arch $ARCH"
+fi
+
+# create backup of old (not yet automatically generated) config file
+if [ -f "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" ] ; then
+ if ! grep -q 'This is an automatically generated file by grml-live' "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" ; then
+ ewarn "Found old ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf - moving to ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf.outdated"
+ mv "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf.outdated"
+ eend $?
+ fi
+fi
+
+echo "# This is an automatically generated file by grml-live.
+# Do NOT edit this file, your changes will be lost.
+FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"
+FAI_DEBOOTSTRAP_OPTS=\"$FAI_DEBOOTSTRAP_OPTS\"
+# EOF " > "${GRML_FAI_CONFIG}/nfsroot.conf"
+# support FAI <=3.4.8, versions >=4.0 use nfsroot.conf
+( cd ${GRML_FAI_CONFIG} && ln -sf nfsroot.conf make-fai-nfsroot.conf )
# }}}
# CHROOT_OUTPUT - execute FAI {{{
mkdir -p "$LOG_OUTPUT"/fai/
cp -r "$CHROOT_OUTPUT"/var/log/fai/"$HOSTNAME"/last/* "$LOG_OUTPUT"/fai/
rm -rf "$CHROOT_OUTPUT"/var/log/fai
+
+ # store copy of autogenerated configuration file
+ cp ${GRML_FAI_CONFIG}/nfsroot.conf "$LOG_OUTPUT"/fai/
+
# copy fai package list
cp "$CHROOT_OUTPUT"/var/log/install_packages.list "$LOG_OUTPUT"/fai/
# fixup owners