aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2019-10-03 09:01:06 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2019-10-03 09:06:33 +0200
commitf48ca1502266b0a36b90e216de14b77cdd11703a (patch)
tree92f5a5fcb06e1ddd4c41af14af15bda33470bcdc
parent8525a665fad5aeb020306dd49809ca16c4044f22 (diff)
downloaddebian-edu-fai+itzks-f48ca1502266b0a36b90e216de14b77cdd11703a.tar.gz
debian-edu-fai+itzks-f48ca1502266b0a36b90e216de14b77cdd11703a.tar.bz2
debian-edu-fai+itzks-f48ca1502266b0a36b90e216de14b77cdd11703a.zip
FAI config: well-tested Debian Edu 10 minimal + MATE workstation installation
-rwxr-xr-xfai/config/class/50-host-classes6
-rwxr-xr-xfai/config/class/70-itzks3
-rw-r--r--fai/config/class/DEBIAN.var2
-rw-r--r--fai/config/class/FAIBASE.var7
-rw-r--r--fai/config/class/debian-edu.profile19
-rw-r--r--fai/config/debconf/DEBIAN2
-rw-r--r--fai/config/debconf/EDU3
-rw-r--r--fai/config/debconf/GERMAN2
-rw-r--r--fai/config/disk_config/FAIBASE9
-rw-r--r--fai/config/disk_config/LVM_EDU10
-rw-r--r--fai/config/files/etc/apt/sources.list.d/debian-contrib.list/NONFREE7
-rw-r--r--fai/config/files/etc/apt/sources.list.d/debian-nonfree.list/NONFREE7
-rw-r--r--fai/config/files/etc/apt/sources.list/DEBIAN8
-rwxr-xr-xfai/config/hooks/instsoft.EDU15
-rwxr-xr-xfai/config/hooks/setup.DEFAULT.sh12
-rwxr-xr-xfai/config/hooks/updatebase.DEBIAN6
-rw-r--r--fai/config/package_config/DEBIAN1
-rwxr-xr-xfai/config/scripts/DEBIAN/10-rootpw9
-rwxr-xr-xfai/config/scripts/DEBIAN/20-capabilities15
-rwxr-xr-xfai/config/scripts/DEBIAN/30-interface171
-rwxr-xr-xfai/config/scripts/DEBIAN/40-misc20
-rwxr-xr-xfai/config/scripts/EDU/10-update-debian-edu-config5
-rwxr-xr-xfai/config/scripts/EDU/40-cfengine-debian-edu-postinstall (renamed from fai/config/scripts/EDU/40-cfengine-install-workstation)20
-rwxr-xr-xfai/config/scripts/EDU/98-drop-fai-aptproxy6
-rwxr-xr-xfai/config/scripts/EDU/99-proxy-from-wpad6
-rwxr-xr-xfai/config/scripts/GERMAN/10-update-debian-edu-config1
-rwxr-xr-xfai/config/scripts/GRUB_PC/10-setup2
-rwxr-xr-xfai/config/scripts/WORKSTATION/10-update-debian-edu-config9
28 files changed, 226 insertions, 157 deletions
diff --git a/fai/config/class/50-host-classes b/fai/config/class/50-host-classes
index 3c3765d..9ac245b 100755
--- a/fai/config/class/50-host-classes
+++ b/fai/config/class/50-host-classes
@@ -7,7 +7,7 @@
# use a list of classes for our demo machine
case $HOSTNAME in
- *)
-# echo "FAIBASE DEBIAN EDU WORKSTATION XORG MATE LVM" ;;
- echo "FAIBASE DEBIAN EDU LVM" ;;
+ *)
+ echo "FAIBASE DEBIAN EDU WORKSTATION XORG MATE LVM LVM_EDU NONFREE" ;;
+# echo "FAIBASE DEBIAN EDU LVM LVM_EDU" ;;
esac
diff --git a/fai/config/class/70-itzks b/fai/config/class/70-itzks
deleted file mode 100755
index 9c0caa7..0000000
--- a/fai/config/class/70-itzks
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/bash
-
-echo ITZKS GERMAN
diff --git a/fai/config/class/DEBIAN.var b/fai/config/class/DEBIAN.var
index eea3103..3b0d7b4 100644
--- a/fai/config/class/DEBIAN.var
+++ b/fai/config/class/DEBIAN.var
@@ -16,4 +16,4 @@ MODULESLIST="usbhid psmouse"
#FAI_RAMDISKS="$target/var/lib/dpkg $target/var/cache"
# if you want to use the faiserver as APT proxy
-APTPROXY=http://faiserver:3142
+APTPROXY=http://faiserver:8000
diff --git a/fai/config/class/FAIBASE.var b/fai/config/class/FAIBASE.var
index 3112039..6d35a8e 100644
--- a/fai/config/class/FAIBASE.var
+++ b/fai/config/class/FAIBASE.var
@@ -9,7 +9,8 @@ TIMEZONE=Europe/Berlin
# the hash of the root password for the new installed linux system
# pw is "fai"
-ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
+#ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
+ROOTPW='$1$C3yKcmvl$SKluYo7f7GmPtebTTWAQ4.'
# errors in tasks greater than this value will cause the installation to stop
STOP_ON_ERROR=700
@@ -18,5 +19,5 @@ STOP_ON_ERROR=700
MAXPACKAGES=800
# a user account will be created
-username=demo
-USERPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
+#username=demo
+#USERPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
diff --git a/fai/config/class/debian-edu.profile b/fai/config/class/debian-edu.profile
index 0e11891..cdad6af 100644
--- a/fai/config/class/debian-edu.profile
+++ b/fai/config/class/debian-edu.profile
@@ -1,30 +1,30 @@
-Default: Edu/MATE
+#Default: Edu/MATE
Name: Edu/Minimal
Description: Minimal Debian Edu installation via FAI
-Short: Installs a Debian Edu client system, text console only
+Short: Installs a Debian Edu client system, text console only
Long: Installs a Debian Edu client system, text console only.
-Use this installation profile for server-like systems that don't
+Use this installation profile for server-like systems that do not
need a graphical login.
-Classes: INSTALL FAIBASE DEBIAN EDU
+Classes: INSTALL FAIBASE DEBIAN EDU LVM LVM_EDU NONFREE
Name: Edu/MATE
-Description: Debian Edu workstation, powered by Mate Desktop
+Description: Debian Edu workstation, powered by Mate Desktop
Short: Debian Edu workstation with Mate desktop will be installed
Long: Debian Edu workstation with Mate desktop will be installed.
-Classes: INSTALL FAIBASE DEBIAN EDU WORKSTATION XORG MATE LVM
+Classes: INSTALL FAIBASE DEBIAN EDU WORKSTATION XORG MATE LVM LVM_EDU NONFREE
Name: Edu/GNOME
Description: Debian Edu workstation, powered by Gnome Desktop
Short: Debian Edu workstation with Gnome desktop will be installed
Long: Debian Edu workstation with Gnome desktop will be installed.
-Classes: INSTALL FAIBASE DEBIAN EDU WORKSTATION XORG GNOME LVM
+Classes: INSTALL FAIBASE DEBIAN EDU WORKSTATION XORG GNOME LVM LVM_EDU NONFREE
-Name: Edu/GNOME
+Name: Edu/XFCE
Description: Debian Edu workstation, powered by Xfce Desktop
Short: Debian Edu workstation with Xfce desktop will be installed
Long: Debian Edu workstation with Xfce desktop will be installed.
-Classes: INSTALL FAIBASE DEBIAN EDU WORKSTATION XORG XFCE LVM
+Classes: INSTALL FAIBASE DEBIAN EDU WORKSTATION XORG XFCE LVM LVM_EDU NONFREE
Name: Inventory
Description: Show hardware info
@@ -37,4 +37,3 @@ Description: Show detailed system information
Short: Show detailed hardware and system information
Long: Execute a lot of commands for collecting system information
Classes: SYSINFO
-
diff --git a/fai/config/debconf/DEBIAN b/fai/config/debconf/DEBIAN
index cd4d08c..2fde6ed 100644
--- a/fai/config/debconf/DEBIAN
+++ b/fai/config/debconf/DEBIAN
@@ -15,7 +15,7 @@ exim4-config exim4/dc_postmaster string root
d-i grub-installer/only_debian boolean true
# Keep old style (aka unpredictable) network interfaces names.
-grub-pc grub2/linux_cmdline_default string net.ifnames=0 quiet
+grub-pc grub2/linux_cmdline_default string net.ifnames=0 quiet splash
# Pick a random workgroup setting to avoid question during installation
samba-common samba-common/workgroup string skolelinux
diff --git a/fai/config/debconf/EDU b/fai/config/debconf/EDU
index 933be9b..274c3bf 100644
--- a/fai/config/debconf/EDU
+++ b/fai/config/debconf/EDU
@@ -47,3 +47,6 @@ exim4-config exim4/dc_other_hostnames string intern
# Prefer lightdm, sddm doesn't provide a language chooser
lightdm shared/default-x-display-manager select lightdm
sddm shared/default-x-display-manager select lightdm
+
+# trigger first-boot logics of debian-edu-install
+debian-edu-install debian-edu-install/run-firstboot boolean true
diff --git a/fai/config/debconf/GERMAN b/fai/config/debconf/GERMAN
index cca0416..ce22884 100644
--- a/fai/config/debconf/GERMAN
+++ b/fai/config/debconf/GERMAN
@@ -5,4 +5,4 @@ keyboard-configuration keyboard-configuration/xkb-keymap select de
keyboard-configuration keyboard-configuration/variant select Germany
keyboard-configuration keyboard-configuration/model select Generic 105-key (Intl) PC
keyboard-configuration keyboard-configuration/layoutcode string de
-keyboard-configuration keyboard-configuration/optionscode string ctrl:nocaps,terminate:ctrl_alt_bksp
+keyboard-configuration keyboard-configuration/optionscode string ctrl:nocaps,terminate:ctrl_alt_bksp,compose:rctrl
diff --git a/fai/config/disk_config/FAIBASE b/fai/config/disk_config/FAIBASE
deleted file mode 100644
index 0c66cbc..0000000
--- a/fai/config/disk_config/FAIBASE
+++ /dev/null
@@ -1,9 +0,0 @@
-# example of new config file for setup-storage
-#
-# <type> <mountpoint> <size> <fs type> <mount options> <misc options>
-
-disk_config disk1 disklabel:msdos bootable:1 fstabkey:uuid
-
-primary / 2G-50G ext4 rw,noatime,errors=remount-ro
-logical swap 200-10G swap sw
-logical /home 100- ext4 rw,noatime,nosuid,nodev createopts="-L home -m 1" tuneopts="-c 0 -i 0"
diff --git a/fai/config/disk_config/LVM_EDU b/fai/config/disk_config/LVM_EDU
new file mode 100644
index 0000000..a70ac03
--- /dev/null
+++ b/fai/config/disk_config/LVM_EDU
@@ -0,0 +1,10 @@
+disk_config disk1 fstabkey:uuid
+primary /boot 2048-2560 ext4 rw
+logical - 0- - -
+
+disk_config lvm
+vg vg_system disk1.5
+vg_system-root / 2G-4G ext4 errors=remount-ro
+vg_system-swap_1 swap RAM:150% swap sw
+vg_system-usr /usr 24G-30G ext4 defaults
+vg_system-var /var 8G-70% ext4 defaults
diff --git a/fai/config/files/etc/apt/sources.list.d/debian-contrib.list/NONFREE b/fai/config/files/etc/apt/sources.list.d/debian-contrib.list/NONFREE
new file mode 100644
index 0000000..87ec531
--- /dev/null
+++ b/fai/config/files/etc/apt/sources.list.d/debian-contrib.list/NONFREE
@@ -0,0 +1,7 @@
+deb http://ftp.de.debian.org/debian {%release%} contrib
+deb http://ftp.de.debian.org/debian {%release%}-updates contrib
+
+deb {%security_cdn%}/debian-security {%release%}/updates contrib
+
+#deb {%apt_cdn%}/debian {%release%} contrib
+#deb {%apt_cdn%}/debian {%release%}-updates contrib
diff --git a/fai/config/files/etc/apt/sources.list.d/debian-nonfree.list/NONFREE b/fai/config/files/etc/apt/sources.list.d/debian-nonfree.list/NONFREE
new file mode 100644
index 0000000..c476baf
--- /dev/null
+++ b/fai/config/files/etc/apt/sources.list.d/debian-nonfree.list/NONFREE
@@ -0,0 +1,7 @@
+deb http://ftp.de.debian.org/debian {%release%} non-free
+deb http://ftp.de.debian.org/debian {%release%}-updates non-free
+
+deb {%security_cdn%}/debian-security {%release%}/updates non-free
+
+#deb {%apt_cdn%}/debian {%release%} non-free
+#deb {%apt_cdn%}/debian {%release%}-updates non-free
diff --git a/fai/config/files/etc/apt/sources.list/DEBIAN b/fai/config/files/etc/apt/sources.list/DEBIAN
index f016a99..1352ebc 100644
--- a/fai/config/files/etc/apt/sources.list/DEBIAN
+++ b/fai/config/files/etc/apt/sources.list/DEBIAN
@@ -1,3 +1,7 @@
-deb {%apt_cdn%}/debian {%release%} main
+deb http://ftp.de.debian.org/debian {%release%} main
+deb http://ftp.de.debian.org/debian {%release%}-updates main
+
deb {%security_cdn%}/debian-security {%release%}/updates main
-deb {%apt_cdn%}/debian {%release%}-updates main
+
+#deb {%apt_cdn%}/debian {%release%} main
+#deb {%apt_cdn%}/debian {%release%}-updates main
diff --git a/fai/config/hooks/instsoft.EDU b/fai/config/hooks/instsoft.EDU
index d92c602..fad46a3 100755
--- a/fai/config/hooks/instsoft.EDU
+++ b/fai/config/hooks/instsoft.EDU
@@ -19,3 +19,18 @@ LANGCODE="en"
LOCALE="en_US.UTF-8"
EOF
+# we need to tweak /etc/wgetrc further down, so let's make sure we have the package
+if [ X$verbose = X1 ]; then
+ $ROOTCMD apt-get -y install wget
+else
+ $ROOTCMD apt-get -y install wget > /dev/null
+fi
+
+# make sure, wget uses the FAI server's http proxy during installation
+# important for downloads triggered by some non-free packages (e.g.
+# ttf-mscorefonts-installier)
+sed -i $target/etc/wgetrc \
+ -e "s@^#http_proxy.*=.*@http_proxy = http://faiserver:3128@" \
+ -e "s@^#https_proxy.*=.*@https_proxy = http://faiserver:3128@" \
+ -e "s@^#ftp_proxy.*=.*@ftp_proxy = http://faiserver:3128@" \
+ ${NULL}
diff --git a/fai/config/hooks/setup.DEFAULT.sh b/fai/config/hooks/setup.DEFAULT.sh
index 00a1df2..d7a9981 100755
--- a/fai/config/hooks/setup.DEFAULT.sh
+++ b/fai/config/hooks/setup.DEFAULT.sh
@@ -1,7 +1,11 @@
#! /bin/bash
+### Disabling the below FAI default, as we want hostnames
+### with domain suffixed during installation of Debian Edu
+### systems.
+
# use short hostname instead of FQDN
-export HOSTNAME=${HOSTNAME%%.*}
-if [ $do_init_tasks -eq 1 ]; then
- echo $HOSTNAME > /proc/sys/kernel/hostname
-fi
+#export HOSTNAME=${HOSTNAME%%.*}
+#if [ $do_init_tasks -eq 1 ]; then
+# echo $HOSTNAME > /proc/sys/kernel/hostname
+#fi
diff --git a/fai/config/hooks/updatebase.DEBIAN b/fai/config/hooks/updatebase.DEBIAN
index e828eef..9e35ece 100755
--- a/fai/config/hooks/updatebase.DEBIAN
+++ b/fai/config/hooks/updatebase.DEBIAN
@@ -9,6 +9,6 @@ fi
echo force-unsafe-io > $target/etc/dpkg/dpkg.cfg.d/unsafe-io
# you may want to add i386 arch to amd64 hosts
-# if ifclass AMD64; then
-# $ROOTCMD dpkg --add-architecture i386
-# fi
+if ifclass AMD64; then
+ $ROOTCMD dpkg --add-architecture i386
+fi
diff --git a/fai/config/package_config/DEBIAN b/fai/config/package_config/DEBIAN
index 38160a7..bd3d3c1 100644
--- a/fai/config/package_config/DEBIAN
+++ b/fai/config/package_config/DEBIAN
@@ -18,6 +18,7 @@ unattended-upgrades
PACKAGES install NONFREE
# you may want these non-free kernel drivers
firmware-bnx2 firmware-bnx2x firmware-realtek
+firmware-iwlwifi
firmware-linux-nonfree
PACKAGES install I386
diff --git a/fai/config/scripts/DEBIAN/10-rootpw b/fai/config/scripts/DEBIAN/10-rootpw
index 8fdf4c8..2e96bd1 100755
--- a/fai/config/scripts/DEBIAN/10-rootpw
+++ b/fai/config/scripts/DEBIAN/10-rootpw
@@ -4,12 +4,11 @@ error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
# set root password
if [ -n "$ROOTPW" ]; then
- $ROOTCMD usermod -p "$ROOTPW" root
+ $ROOTCMD usermod -p "$ROOTPW" root
else
- $ROOTCMD usermod -L root
- # enable sudo for user
- ainsl /etc/sudoers "$username ALL = ALL"
+ $ROOTCMD usermod -L root
+ # enable sudo for user
+ ainsl /etc/sudoers "$username ALL = ALL"
fi
exit $error
-
diff --git a/fai/config/scripts/DEBIAN/20-capabilities b/fai/config/scripts/DEBIAN/20-capabilities
index ea650fa..a53ad22 100755
--- a/fai/config/scripts/DEBIAN/20-capabilities
+++ b/fai/config/scripts/DEBIAN/20-capabilities
@@ -7,16 +7,17 @@
set -e
if [ ! -x $target/sbin/setcap ] ; then
- exit 0
+ exit 0
fi
for FILE in /bin/ping /bin/ping6 /usr/bin/fping /usr/bin/fping6; do
- if [ -x $target/$FILE -a ! -h $target/$FILE ] ; then
- if $ROOTCMD /sbin/setcap cap_net_raw+ep $FILE; then
- echo "Setcap worked! $FILE is not suid!"
- fi
- fi
+ if [ -x $target/$FILE -a ! -h $target/$FILE ] ; then
+ if $ROOTCMD /sbin/setcap cap_net_raw+ep $FILE; then
+ echo "Setcap worked! $FILE is not suid!"
+ fi
+ fi
done
+
if [ -x $target/usr/bin/systemd-detect-virt ] ; then
- $ROOTCMD /sbin/setcap cap_dac_override,cap_sys_ptrace+ep /usr/bin/systemd-detect-virt
+ $ROOTCMD /sbin/setcap cap_dac_override,cap_sys_ptrace+ep /usr/bin/systemd-detect-virt
fi
diff --git a/fai/config/scripts/DEBIAN/30-interface b/fai/config/scripts/DEBIAN/30-interface
index 34c98e8..2cbb186 100755
--- a/fai/config/scripts/DEBIAN/30-interface
+++ b/fai/config/scripts/DEBIAN/30-interface
@@ -1,113 +1,114 @@
#! /bin/bash
netplan_yaml() {
- # network configuration using ubuntu's netplan.io
- local IFNAME="$1"
- local METHOD="$2"
- echo "Generating netplan configuration for $IFNAME ($METHOD)" >&2
- echo "# generated by FAI"
- echo "network:"
- echo " version: 2"
- echo " renderer: $RENDERER"
- case "$RENDERER" in
- networkd)
- echo " ethernets:"
- echo " $IFNAME:"
- case "$METHOD" in
- dhcp)
- echo " dhcp4: true"
- ;;
- static)
- echo " addresses: [$CIDR]"
- echo " gateway4: $GATEWAYS_1"
- echo " nameservers:"
- echo " search: [$DOMAIN]"
- echo " addresses: [${DNSSRVS// /, }]"
- ;;
- esac
- esac
+ # network configuration using ubuntu's netplan.io
+ local IFNAME="$1"
+ local METHOD="$2"
+ echo "Generating netplan configuration for $IFNAME ($METHOD)" >&2
+ echo "# generated by FAI"
+ echo "network:"
+ echo " version: 2"
+ echo " renderer: $RENDERER"
+ case "$RENDERER" in
+ networkd)
+ echo " ethernets:"
+ echo " $IFNAME:"
+ case "$METHOD" in
+ dhcp)
+ echo " dhcp4: true"
+ ;;
+ static)
+ echo " addresses: [$CIDR]"
+ echo " gateway4: $GATEWAYS_1"
+ echo " nameservers:"
+ echo " search: [$DOMAIN]"
+ echo " addresses: [${DNSSRVS// /, }]"
+ ;;
+ esac
+ ;;
+ esac
}
iface_stanza() {
- # classic network configuration using /etc/network/interfaces
- local IFNAME="$1"
- local METHOD="$2"
- echo "Generating interface configuration for $IFNAME ($METHOD)" >&2
- echo "# generated by FAI"
- echo "auto $IFNAME"
- echo "iface $IFNAME inet $METHOD"
- case "$METHOD" in
- static)
- echo " address $IPADDR"
- echo " netmask $NETMASK"
- echo " broadcast $BROADCAST"
- echo " gateway $GATEWAYS"
- ;;
- esac
+ # classic network configuration using /etc/network/interfaces
+ local IFNAME="$1"
+ local METHOD="$2"
+ echo "Generating interface configuration for $IFNAME ($METHOD)" >&2
+ echo "# generated by FAI"
+ echo "auto $IFNAME"
+ echo "iface $IFNAME inet $METHOD"
+ case "$METHOD" in
+ static)
+ echo " address $IPADDR"
+ echo " netmask $NETMASK"
+ echo " broadcast $BROADCAST"
+ echo " gateway $GATEWAYS"
+ ;;
+ esac
}
newnicnames() {
- # determine predictable network names only for stretch and above
+ # determine predictable network names only for stretch and above
- [ $do_init_tasks -eq 0 ] && return
- [ -z "$NIC1" ] && return
- ver=$($ROOTCMD dpkg-query --showformat='${Version}' --show udev)
- if dpkg --compare-versions $ver lt 220-7; then
- return
- fi
+ [ $do_init_tasks -eq 0 ] && return
+ [ -z "$NIC1" ] && return
+ ver=$($ROOTCMD dpkg-query --showformat='${Version}' --show udev)
+ if dpkg --compare-versions $ver lt 220-7; then
+ return
+ fi
- fields="ID_NET_NAME_FROM_DATABASE ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH"
- for field in $fields; do
- name=$(udevadm info /sys/class/net/$NIC1 | sed -rn "s/^E: $field=(.+)/\1/p")
- if [[ $name ]]; then
- NIC1=$name
- break
+ fields="ID_NET_NAME_FROM_DATABASE ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH"
+ for field in $fields; do
+ name=$(udevadm info /sys/class/net/$NIC1 | sed -rn "s/^E: $field=(.+)/\1/p")
+ if [[ $name ]]; then
+ NIC1=$name
+ break
+ fi
+ done
+ if [[ ! $name ]]; then
+ echo "$0: error: could not find systemd predictable network name. Using $NIC1."
fi
- done
- if [[ ! $name ]]; then
- echo "$0: error: could not find systemd predictable network name. Using $NIC1."
- fi
}
if [ -z "$NIC1" ]; then
- echo "WARNING: \$NIC1 is not defined. Cannot add ethernet to /etc/network/interfaces."
+ echo "WARNING: \$NIC1 is not defined. Cannot add ethernet to /etc/network/interfaces."
fi
CIDR=$(ip -o -f inet addr show $NIC1 | awk '{print $4}')
newnicnames
case "$FAI_ACTION" in
- install|dirinstall)
- ifclass DHCPC && METHOD=dhcp || METHOD=static
- ifclass XORG && RENDERER=NetworkManager || RENDERER=networkd
+ install|dirinstall)
+ ifclass DHCPC && METHOD=dhcp || METHOD=static
+ ifclass XORG && RENDERER=NetworkManager || RENDERER=networkd
- if [ -d $target/etc/netplan ]; then
- # Ubuntu >= 17.10 with netplan.io
- if [ -n "$NIC1" ]; then
- netplan_yaml $NIC1 $METHOD > $target/etc/netplan/01-${NIC1}.yaml
- fi
- elif [ -d $target/etc/network/interfaces.d ]; then
- # ifupdown >= 0.7.41 (Debian >= 8, Ubuntu >= 14.04)
- iface_stanza lo loopback > $target/etc/network/interfaces.d/lo
+ if [ -d $target/etc/netplan ]; then
+ # Ubuntu >= 17.10 with netplan.io
+ if [ -n "$NIC1" ]; then
+ netplan_yaml $NIC1 $METHOD > $target/etc/netplan/01-${NIC1}.yaml
+ fi
+ elif [ -d $target/etc/network/interfaces.d ]; then
+ # ifupdown >= 0.7.41 (Debian >= 8, Ubuntu >= 14.04)
+ iface_stanza lo loopback > $target/etc/network/interfaces.d/lo
- if [ -n "$NIC1" -a ! -f $target/etc/NetworkManager/NetworkManager.conf ]; then
- iface_stanza $NIC1 $METHOD > $target/etc/network/interfaces.d/$NIC1
- fi
- else
- (
- iface_stanza lo loopback
- iface_stanza $NIC1 $METHOD
- ) > $target/etc/network/interfaces
- fi
+ if [ -n "$NIC1" -a ! -f $target/etc/NetworkManager/NetworkManager.conf ]; then
+ iface_stanza $NIC1 $METHOD > $target/etc/network/interfaces.d/$NIC1
+ fi
+ else
+ (
+ iface_stanza lo loopback
+ iface_stanza $NIC1 $METHOD
+ ) > $target/etc/network/interfaces
+ fi
- if ! ifclass DHCPC ; then
- [ -n "$NETWORK" ] && echo "localnet $NETWORK" > $target/etc/networks
- if [ ! -L $target/etc/resolv.conf -a -e /etc/resolv.conf ]; then
- cp -p /etc/resolv.conf $target/etc
- fi
- fi
- ;;
+ if ! ifclass DHCPC ; then
+ [ -n "$NETWORK" ] && echo "localnet $NETWORK" > $target/etc/networks
+ if [ ! -L $target/etc/resolv.conf -a -e /etc/resolv.conf ]; then
+ cp -p /etc/resolv.conf $target/etc
+ fi
+ fi
+ ;;
esac
# here fcopy is mostly used, when installing a client for running in a
diff --git a/fai/config/scripts/DEBIAN/40-misc b/fai/config/scripts/DEBIAN/40-misc
index 4376ab4..ea68373 100755
--- a/fai/config/scripts/DEBIAN/40-misc
+++ b/fai/config/scripts/DEBIAN/40-misc
@@ -7,34 +7,34 @@ error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
# a list of modules which are loaded at boot time
for module in $MODULESLIST; do
- ainsl -a /etc/modules "^$module$"
+ ainsl -a /etc/modules "^$module$"
done
fcopy -Mv /etc/hostname || echo $HOSTNAME > $target/etc/hostname
ainsl -a /etc/mailname ${HOSTNAME}
if [ ! -e $target/etc/adjtime ]; then
- printf "0.0 0 0.0\n0\nUTC\n" > $target/etc/adjtime
+ printf "0.0 0 0.0\n0\nUTC\n" > $target/etc/adjtime
fi
if [ "$UTC" = "yes" ]; then
- sed -i -e 's:^LOCAL$:UTC:' $target/etc/adjtime
+ sed -i -e 's:^LOCAL$:UTC:' $target/etc/adjtime
else
- sed -i -e 's:^UTC$:LOCAL:' $target/etc/adjtime
+ sed -i -e 's:^UTC$:LOCAL:' $target/etc/adjtime
fi
# enable linuxlogo
if [ -f $target/etc/inittab ]; then
- sed -i -e 's#/sbin/getty 38400#/sbin/getty -f /etc/issue.linuxlogo 38400#' ${target}/etc/inittab
+ sed -i -e 's#/sbin/getty 38400#/sbin/getty -f /etc/issue.linuxlogo 38400#' ${target}/etc/inittab
elif [ -f $target/lib/systemd/system/getty@.service ]; then
- sed -i -e 's#sbin/agetty --noclear#sbin/agetty -f /etc/issue.linuxlogo --noclear#' $target/lib/systemd/system/getty@.service
+ sed -i -e 's#sbin/agetty --noclear#sbin/agetty -f /etc/issue.linuxlogo --noclear#' $target/lib/systemd/system/getty@.service
fi
# make sure a machine-id exists
if [ ! -f $target/etc/machine-id ]; then
- > $target/etc/machine-id
+ > $target/etc/machine-id
fi
# recreate machine-id if the file is empty
if [ X"$(stat -c '%s' $target/etc/machine-id 2>/dev/null)" = X0 -a -f /bin/systemd-machine-id-setup ]; then
- $ROOTCMD systemd-machine-id-setup
+ $ROOTCMD systemd-machine-id-setup
fi
ln -fs /proc/mounts $target/etc/mtab
@@ -42,8 +42,8 @@ ln -fs /proc/mounts $target/etc/mtab
rm -f $target/etc/dpkg/dpkg.cfg.d/fai $target/etc/dpkg/dpkg.cfg.d/unsafe-io
if [ -d /etc/fai ]; then
- ainsl -a /etc/fai/fai.conf "FAI_CONFIG_SRC=$FAI_CONFIG_SRC"
- fcopy -Miv /etc/fai/fai.conf
+ ainsl -a /etc/fai/fai.conf "FAI_CONFIG_SRC=$FAI_CONFIG_SRC"
+ fcopy -Miv /etc/fai/fai.conf
fi
fcopy -iv /etc/rc.local
diff --git a/fai/config/scripts/EDU/10-update-debian-edu-config b/fai/config/scripts/EDU/10-update-debian-edu-config
index 4cf18d7..ce05a89 100755
--- a/fai/config/scripts/EDU/10-update-debian-edu-config
+++ b/fai/config/scripts/EDU/10-update-debian-edu-config
@@ -1,6 +1,5 @@
#!/bin/bash
-if [ -f /etc/debian-edu/config ] && [ -x /usr/share/doc/debian-edu-install ]; then
- sed -i /etc/debian-edu/config -e "s/^VERSION=.*$/VERSION=\"$(/usr/lib/debian-edu-install/version)\"/"
+if [ -f $target/etc/debian-edu/config ] && [ -x $target/usr/share/doc/debian-edu-install ]; then
+ sed -i $target/etc/debian-edu/config -e "s/^VERSION=.*$/VERSION=\"$(head -n1 $target/usr/lib/debian-edu-install/version)\"/"
fi
-
diff --git a/fai/config/scripts/EDU/40-cfengine-install-workstation b/fai/config/scripts/EDU/40-cfengine-debian-edu-postinstall
index 9a1ff13..90ae237 100755
--- a/fai/config/scripts/EDU/40-cfengine-install-workstation
+++ b/fai/config/scripts/EDU/40-cfengine-debian-edu-postinstall
@@ -1,7 +1,5 @@
#! /bin/bash
-set -x
-
# Let's make sure that we have correct http proxy settings.
if [ -x $target/usr/share/debian-edu-config/tools/update-proxy-from-wpad ]; then
chroot $target /usr/share/debian-edu-config/tools/update-proxy-from-wpad
@@ -21,7 +19,21 @@ echo http_proxy=$http_proxy
echo https_proxy=$https_proxy
echo ftp_proxy=$ftp_proxy
+# d-e-c/cf.finalize expects this directory to exist for prep'ing desktop-profiles
+# (FIXME: file d-e-c-bug)
+mkdir -p $target/etc/xdg/menus
+
+# d-e-c/cf.workarounds expects /etc/xdg/xfce4/panel/ to exist (FIXME: file d-e-c bug)
+mkdir -p $target/etc/xdg/xfce4/panel/
+
# Do the conversion of the vanilla Debian system to a Debian Edu system
-chroot $target strace -f /usr/sbin/cf-agent -I -D installation
+chroot $target /usr/sbin/cf-agent -I -D installation
+
+# fetch LDAP certs
+chroot $target /etc/init.d/fetch-ldap-cert start
-set +x
+sed -i $target/etc/wgetrc \
+ -e "s@^http_proxy\s*=.*@http_proxy = $http_proxy@" \
+ -e "s@^https_proxy\s*=.*@https_proxy = $https_proxy@" \
+ -e "s@^ftp_proxy\s*=.*@ftp_proxy = $ftp_proxy@" \
+ ${NULL}
diff --git a/fai/config/scripts/EDU/98-drop-fai-aptproxy b/fai/config/scripts/EDU/98-drop-fai-aptproxy
new file mode 100755
index 0000000..b7b5c77
--- /dev/null
+++ b/fai/config/scripts/EDU/98-drop-fai-aptproxy
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# drop the APT http proxy configuration put
+# here by FAI. We will use Debian Edu APT
+# http proxy configuration...
+rm $target/etc/apt/apt.conf.d/02proxy
diff --git a/fai/config/scripts/EDU/99-proxy-from-wpad b/fai/config/scripts/EDU/99-proxy-from-wpad
new file mode 100755
index 0000000..258ca2b
--- /dev/null
+++ b/fai/config/scripts/EDU/99-proxy-from-wpad
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# Let's make really sure that we have correct http proxy settings.
+if [ -x $target/usr/share/debian-edu-config/tools/update-proxy-from-wpad ]; then
+ chroot $target /usr/share/debian-edu-config/tools/update-proxy-from-wpad
+fi
diff --git a/fai/config/scripts/GERMAN/10-update-debian-edu-config b/fai/config/scripts/GERMAN/10-update-debian-edu-config
index d896799..eb70497 100755
--- a/fai/config/scripts/GERMAN/10-update-debian-edu-config
+++ b/fai/config/scripts/GERMAN/10-update-debian-edu-config
@@ -4,4 +4,3 @@ if [ -f $target/etc/debian-edu/config ]; then
sed -i $target/etc/debian-edu/config -e "s/^LANGCODE=.*$/LANGCODE=\"de\"/"
sed -i $target/etc/debian-edu/config -e "s/^LOCALE=.*$/LOCALE=\"de_DE.UTF-8\"/"
fi
-
diff --git a/fai/config/scripts/GRUB_PC/10-setup b/fai/config/scripts/GRUB_PC/10-setup
index 5563275..34876f3 100755
--- a/fai/config/scripts/GRUB_PC/10-setup
+++ b/fai/config/scripts/GRUB_PC/10-setup
@@ -3,6 +3,7 @@
error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
+set -x
set -a
# do not set up grub during dirinstall
@@ -49,4 +50,5 @@ else
fi
$ROOTCMD update-grub
+set +x
exit $error
diff --git a/fai/config/scripts/WORKSTATION/10-update-debian-edu-config b/fai/config/scripts/WORKSTATION/10-update-debian-edu-config
index 45062b9..341c343 100755
--- a/fai/config/scripts/WORKSTATION/10-update-debian-edu-config
+++ b/fai/config/scripts/WORKSTATION/10-update-debian-edu-config
@@ -1,6 +1,11 @@
#!/bin/bash
# tag Debian Edu machine as a workstation
-if [ -f /etc/debian-edu/config ]; then
- sed -i /etc/debian-edu/config -e "s/^PROFILE=.*$/PROFILE=\"Workstation\"/"
+if [ -f $target/etc/debian-edu/config ]; then
+ sed -i $target/etc/debian-edu/config -e "s/^PROFILE=.*$/PROFILE=\"Workstation\"/"
+
+ # reconfigure debian-edu-install to get desktop profiles right
+ export DEBIAN_FRONTEND=noninteractive
+ chroot $target dpkg-reconfigure debian-edu-install
+ unset DEBIAN_FRONTEND
fi