diff options
| author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2019-10-03 09:01:06 +0200 |
|---|---|---|
| committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2019-10-03 09:06:33 +0200 |
| commit | f48ca1502266b0a36b90e216de14b77cdd11703a (patch) | |
| tree | 92f5a5fcb06e1ddd4c41af14af15bda33470bcdc | |
| parent | 8525a665fad5aeb020306dd49809ca16c4044f22 (diff) | |
| download | debian-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
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 |
