[debian-edu-commits] [Git][debian-edu/debian-edu-config][personal/sunweaver/tjener-non-fqdn-hostname] 3 commits: share/debian-edu-config/d-i/pre-pkgsel: white-space cleanup

Mike Gabriel (@sunweaver) gitlab at salsa.debian.org
Wed Aug 19 20:23:21 BST 2026



Mike Gabriel pushed to branch personal/sunweaver/tjener-non-fqdn-hostname at Debian Edu / debian-edu-config


Commits:
ef7d92e9 by Mike Gabriel at 2026-08-19T21:21:53+02:00
share/debian-edu-config/d-i/pre-pkgsel: white-space cleanup

- - - - -
89585f25 by Mike Gabriel at 2026-08-19T21:21:53+02:00
share/debian-edu-config/d-i/pre-pkgsel: Use 'tjener' in /etc/hostname and derive FQDN from /etc/hosts. (Closes: #893394).

- - - - -
0b1aab81 by Mike Gabriel at 2026-08-19T21:21:53+02:00
testsuite/hostname: Test that /etc/hostname on installation profile Main-Server is set correctly

- - - - -


2 changed files:

- share/debian-edu-config/d-i/pre-pkgsel
- + testsuite/hostname


Changes:

=====================================
share/debian-edu-config/d-i/pre-pkgsel
=====================================
@@ -21,7 +21,7 @@ error() {
 configure_network() {
 # Write a functional /target/etc/network/interfaces
     if [ -z "$PROFILE" ]; then
-	PROFILE=Workstation
+        PROFILE=Workstation
     fi
 
     # Default hostname is 'localhost'
@@ -44,21 +44,21 @@ configure_network() {
     # Hm, what if both server and workstation is choosen?  Choose the
     # server config for eth0.
     for value in `echo $PROFILE |sed 's/ /-/g' | sed 's/,-/ /g'`; do
-	case $value in
-	    Roaming-Workstation)
-		# Configure network-manager to connect to eth0 by
-		# default, to be able to look up user information in
-		# LDAP.
-		eth0=none
-		autoeth0=""
-		eth1=none
-		autoeth1=""
-		DNSDOMAIN=
-		MAILNAME=
-		MY_HOSTNAME=
-		eth0uuid=$(chroot /target uuid)
-		mkdir -p /target/etc/NetworkManager/system-connections
-		cat > /target/etc/NetworkManager/system-connections/eth0 <<EOF
+        case $value in
+           Roaming-Workstation)
+                # Configure network-manager to connect to eth0 by
+                # default, to be able to look up user information in
+                # LDAP.
+                eth0=none
+                autoeth0=""
+                eth1=none
+                autoeth1=""
+                DNSDOMAIN=
+                MAILNAME=
+                MY_HOSTNAME=
+                eth0uuid=$(chroot /target uuid)
+                mkdir -p /target/etc/NetworkManager/system-connections
+                cat > /target/etc/NetworkManager/system-connections/eth0 <<EOF
 [connection]
 id=eth0
 uuid=$eth0uuid
@@ -70,46 +70,46 @@ method=auto
 [ipv4]
 method=auto
 EOF
-		;;
-	    Standalone)
- 	        # Leave network configuration to network-manager on
- 	        # Standalone
-		eth0=none
-		autoeth0=""
-		eth1=none
-		autoeth1=""
-		DNSDOMAIN=
-		MAILNAME=
-		MY_HOSTNAME=
-		;;
-	    Workstation)
-   	        # Use this unless Server also was choosen.
-		if [ -z "$eth0" ] ; then
-		    eth0=none
-		    autoeth0=""
-		    eth1=none
-		    autoeth1=""
-		fi
-		;;
-	    Main-Server)
- 	        # Override for workstations combining as servers
-		eth0=10.0.2.2:255.0.0.0:10.255.255.255:10.0.0.1
-		MY_HOSTNAME=tjener.intern
-		NAMESERVER=127.0.0.1
-		autoeth0="auto eth0"
-		;;
-	    LTSP-Server)
- 	        # Use this unless Server also was choosen.
-		if [ -z "$eth0" ] ; then
-		    eth0=none
-		    autoeth0=""
-		fi
-		eth1=192.168.0.254:255.255.255.0:192.168.0.255:none
-		autoeth1="auto eth1"
-		;;
-	esac
+                ;;
+            Standalone)
+                # Leave network configuration to network-manager on
+                # Standalone
+                eth0=none
+                autoeth0=""
+                eth1=none
+                autoeth1=""
+                DNSDOMAIN=
+                MAILNAME=
+                MY_HOSTNAME=
+                ;;
+            Workstation)
+                # Use this unless Server also was choosen.
+                if [ -z "$eth0" ] ; then
+                    eth0=none
+                    autoeth0=""
+                    eth1=none
+                    autoeth1=""
+                fi
+                ;;
+            Main-Server)
+                # Override for workstations combining as servers
+                eth0=10.0.2.2:255.0.0.0:10.255.255.255:10.0.0.1
+                MY_HOSTNAME=tjener
+                NAMESERVER=127.0.0.1
+                autoeth0="auto eth0"
+                ;;
+            LTSP-Server)
+                # Use this unless Server also was choosen.
+                if [ -z "$eth0" ] ; then
+                    eth0=none
+                    autoeth0=""
+                fi
+                eth1=192.168.0.254:255.255.255.0:192.168.0.255:none
+                autoeth1="auto eth1"
+                ;;
+        esac
     done
-  
+
     # Every host need the loopback interface
     cat > $interfaces <<EOF
 # Created by debian-edu-profile during the Debian installation.
@@ -123,24 +123,24 @@ iface lo inet loopback
 EOF
 
     for interface in eth0 eth1 ; do
-	eval "ifinfo=\$$interface"
-	eval "ifauto=\$auto$interface"
-	log "setting up network interface $interface using $ifinfo"
-	case $ifinfo in
-	    dhcp)
-		cat >> $interfaces <<EOF
+        eval "ifinfo=\$$interface"
+        eval "ifauto=\$auto$interface"
+        log "setting up network interface $interface using $ifinfo"
+        case $ifinfo in
+            dhcp)
+                cat >> $interfaces <<EOF
 
 $ifauto
 iface $interface inet dhcp
 EOF
 
-		;;
-	    [0-9]*)
-	        address=`echo $ifinfo | cut -d: -f1`
-		netmask=`echo $ifinfo | cut -d: -f2`
-		broadcast=`echo $ifinfo | cut -d: -f3`
-		gateway=`echo $ifinfo | cut -d: -f4`
-		cat >> $interfaces <<EOF
+                ;;
+            [0-9]*)
+                address=`echo $ifinfo | cut -d: -f1`
+                netmask=`echo $ifinfo | cut -d: -f2`
+                broadcast=`echo $ifinfo | cut -d: -f3`
+                gateway=`echo $ifinfo | cut -d: -f4`
+                cat >> $interfaces <<EOF
 
 auto $interface
 iface $interface inet static
@@ -148,35 +148,35 @@ iface $interface inet static
     netmask $netmask
     broadcast $broadcast
 EOF
-		if [ none != "$gateway" ] ; then
-		    cat >> $interfaces <<EOF
+                if [ none != "$gateway" ] ; then
+                    cat >> $interfaces <<EOF
     gateway $gateway
 EOF
-		fi
-	    if [ "$DNSDOMAIN" ] && [ "$NAMESERVER" = "127.0.0.1" ] ; then
-			cat >> $interfaces <<EOF
+                fi
+                if [ "$DNSDOMAIN" ] && [ "$NAMESERVER" = "127.0.0.1" ] ; then
+                    cat >> $interfaces <<EOF
     dns-search $DNSDOMAIN
     dns-nameservers $NAMESERVER
 EOF
-	    fi
-		cat >> $interfaces <<EOF
+                fi
+                cat >> $interfaces <<EOF
 # The commented lines below is to be used if a DHCP server is in use
 #iface $interface inet dhcp
 EOF
-		;;
-	    *)
-	        # Nothing to do?
-	        ;;
-	esac
+                ;;
+            *)
+                # Nothing to do?
+                ;;
+        esac
     done
     (
-	echo "127.0.0.1       localhost.localdomain localhost" 
-	echo "::1             localhost       ip6-localhost ip6-loopback"
-	echo "fe00::0         ip6-localnet"
-	echo "ff00::0         ip6-mcastprefix"
-	echo "ff02::1         ip6-allnodes"
-	echo "ff02::2         ip6-allrouters"
-	echo "ff02::3         ip6-allhosts"
+        echo "127.0.0.1       localhost.localdomain localhost"
+        echo "::1             localhost       ip6-localhost ip6-loopback"
+        echo "fe00::0         ip6-localnet"
+        echo "ff00::0         ip6-mcastprefix"
+        echo "ff02::1         ip6-allnodes"
+        echo "ff02::2         ip6-allrouters"
+        echo "ff02::3         ip6-allhosts"
     ) > /target/etc/hosts
 
     if [ ! -z "$MY_HOSTNAME" ] ; then
@@ -187,37 +187,37 @@ EOF
     # Update hostname based on reverse DNS entry of current IP or
     # generate from MAC address, unless installing main-server.
     if echo $PROFILE | grep -q Main-Server ; then
-	:
+        :
     elif [ -x /target/usr/sbin/update-hostname-from-ip ] ; then
-	in-target /usr/sbin/update-hostname-from-ip -m || true
+        in-target /usr/sbin/update-hostname-from-ip -m || true
     fi
 
     # Avoid hardcoding entries on the clients, to make sure IP address
     # range can be changed on the clients by changing DHCP
     # configuration on the server.
-    if [ "tjener.intern" = "$MY_HOSTNAME" ] ; then
-	(
-	    echo
-	    echo "10.0.2.2        tjener.intern tjener" 
-	) >> /target/etc/hosts
+    if [ "tjener" = "$MY_HOSTNAME" ] ; then
+        (
+            echo
+            echo "10.0.2.2        ${MY_HOSTNAME}.${DNSDOMAIN} ${MY_HOSTNAME}"
+        ) >> /target/etc/hosts
     fi
 
     # Set /etc/mailname if it is missing
     if [ "$MAILNAME" ] && [ ! -f /target/etc/mailname ] ; then
-	echo "$MAILNAME" > /target/etc/mailname
+        echo "$MAILNAME" > /target/etc/mailname
     fi
 
     # Make sure that the interfaces are there for the cfengine run if
     # network isn't already configured
     if route | grep -q default ; then
-	log "Not restarting network, as it seem to be up already."
+        log "Not restarting network, as it seem to be up already."
     else
-	log "Restarting network to prepare for cfengine run."
-	# Redirecting fd 3 as a workaround for skolelinux bug #1229.
-	# make sure the redirecting happen inside the chroot, as
-	# in-target need to talk to debconf.
-	in-target /bin/sh -c "/etc/init.d/networking start 3> /dev/null" || true
-	touch /tmp/debian-edu-nonetwork
+        log "Restarting network to prepare for cfengine run."
+        # Redirecting fd 3 as a workaround for skolelinux bug #1229.
+        # make sure the redirecting happen inside the chroot, as
+        # in-target need to talk to debconf.
+        in-target /bin/sh -c "/etc/init.d/networking start 3> /dev/null" || true
+        touch /tmp/debian-edu-nonetwork
     fi
 }
 
@@ -225,32 +225,32 @@ EOF
 # finish-install hook.
 set_kerberos_ldap_passwords() {
     if db_get passwd/root-password-crypted && [ "$RET" ] ; then
-	log "No clear text root password, unable to pass it on to Kerberos/LDAP."
+        log "No clear text root password, unable to pass it on to Kerberos/LDAP."
     else
-	log "Fetching password for Kerberos KDC and LDAP." 1>&2
-	db_get passwd/root-password
-	ROOTPWD="$RET"
-
-	log "Fetching info for first user." 1>&2
-	
-	if db_get passwd/username && [ "$RET" ] ; then
-	    FIRSTUSERNAME="$RET"
-	else
-	    FIRSTUSERNAME="localadmin"
-	fi
-	if db_get passwd/user-fullname && [ "$RET" ] ; then
-	    FIRSTUSERGECOS="$RET"
-	else
-	    FIRSTUSERGECOS="LDAP initial admin user"
-	fi
-	if db_get passwd/user-password && [ "$RET" ] ; then
-	    FIRSTUSERPWD="$RET"
-	else
-	    FIRSTUSERPWD="$ROOTPWD"
-	fi
-
-	file=/tmp/passwords-preseed
-	cat > $file <<EOF
+        log "Fetching password for Kerberos KDC and LDAP." 1>&2
+        db_get passwd/root-password
+        ROOTPWD="$RET"
+
+        log "Fetching info for first user." 1>&2
+
+        if db_get passwd/username && [ "$RET" ] ; then
+            FIRSTUSERNAME="$RET"
+        else
+            FIRSTUSERNAME="localadmin"
+        fi
+        if db_get passwd/user-fullname && [ "$RET" ] ; then
+            FIRSTUSERGECOS="$RET"
+        else
+            FIRSTUSERGECOS="LDAP initial admin user"
+        fi
+        if db_get passwd/user-password && [ "$RET" ] ; then
+            FIRSTUSERPWD="$RET"
+        else
+            FIRSTUSERPWD="$ROOTPWD"
+        fi
+
+        file=/tmp/passwords-preseed
+        cat > $file <<EOF
 debian-edu-config debian-edu-config/kdc-password password $ROOTPWD
 debian-edu-config debian-edu-config/kdc-password-again password $ROOTPWD
 debian-edu-config debian-edu-config/ldap-password password $ROOTPWD
@@ -259,10 +259,10 @@ debian-edu-config debian-edu-config/first-user-name string $FIRSTUSERNAME
 debian-edu-config debian-edu-config/first-user-fullname string $FIRSTUSERGECOS
 debian-edu-config debian-edu-config/first-user-password password $FIRSTUSERPWD
 EOF
-	# Pass user and password information into the target
-	cat $file | LANG=C chroot /target debconf-set-selections || \
-	    error "Failed to load preseed values from $file."
-	rm $file
+        # Pass user and password information into the target
+        cat $file | LANG=C chroot /target debconf-set-selections || \
+            error "Failed to load preseed values from $file."
+        rm $file
     fi
 }
 
@@ -275,25 +275,25 @@ create_initial_localadmin_user() {
     LOCAL_USER_INGROUPS="$LOCAL_USER_INGROUPS adm sudo"
 
     if db_get passwd/root-password-crypted && [ "$RET" ] ; then
-	log "No clear text root password, unable to use it for creating the initial local user"
+        log "No clear text root password, unable to use it for creating the initial local user"
     else
-	# retrieve root password
-	db_get passwd/root-password
-	LOCAL_USER_PASSWD=$RET
-	# create initial local user
-	in-target /usr/sbin/addgroup --gid $LOCAL_USER_PRIMGIDNUMBER $LOCAL_USER_ID 1>&2 || true
-	in-target /usr/sbin/adduser --gid $LOCAL_USER_PRIMGIDNUMBER \
-		--firstuid $LOCAL_USER_UIDNUMBER \
-		--home /home/$LOCAL_USER_ID \
-		--shell /bin/bash \
-		--disabled-login \
-		--gecos "$LOCAL_USER_GECOS" $LOCAL_USER_ID 1>&2 || true
-	# add initial local user to some standard system groups
-	for group in ${LOCAL_USER_INGROUPS}; do
-		in-target /usr/sbin/adduser $LOCAL_USER_ID $group 1>&2 || true
-	done
-	# set password (batch mode)
-	in-target /bin/sh -c "echo ${LOCAL_USER_ID}:${LOCAL_USER_PASSWD} | /usr/sbin/chpasswd" 1>&2 || true
+        # retrieve root password
+        db_get passwd/root-password
+        LOCAL_USER_PASSWD=$RET
+        # create initial local user
+        in-target /usr/sbin/addgroup --gid $LOCAL_USER_PRIMGIDNUMBER $LOCAL_USER_ID 1>&2 || true
+        in-target /usr/sbin/adduser --gid $LOCAL_USER_PRIMGIDNUMBER \
+                --firstuid $LOCAL_USER_UIDNUMBER \
+                --home /home/$LOCAL_USER_ID \
+                --shell /bin/bash \
+                --disabled-login \
+                --gecos "$LOCAL_USER_GECOS" $LOCAL_USER_ID 1>&2 || true
+        # add initial local user to some standard system groups
+        for group in ${LOCAL_USER_INGROUPS}; do
+                in-target /usr/sbin/adduser $LOCAL_USER_ID $group 1>&2 || true
+        done
+        # set password (batch mode)
+        in-target /bin/sh -c "echo ${LOCAL_USER_ID}:${LOCAL_USER_PASSWD} | /usr/sbin/chpasswd" 1>&2 || true
     fi
 }
 
@@ -311,15 +311,15 @@ workaround_grub_issue() {
     # want.
     db_get grub-installer/choose_bootdev || true
     if [ "$RET" ] && [ "manual" != "$RET" ]; then
-	log "not overriding grub-installer/choose_bootdev to $grubdev, its value was '$RET'"
-	return
+        log "not overriding grub-installer/choose_bootdev to $grubdev, its value was '$RET'"
+        return
     fi
 
     case "$bootdev" in
-	/dev/sd*|/dev/vd*|/dev/hd*|/dev/xvd*)
-	    log "overriding grub-installer/choose_bootdev, setting it to $grubdev"
-	    db_set grub-installer/choose_bootdev "$grubdev" || true
-	    ;;
+        /dev/sd*|/dev/vd*|/dev/hd*|/dev/xvd*)
+            log "overriding grub-installer/choose_bootdev, setting it to $grubdev"
+            db_set grub-installer/choose_bootdev "$grubdev" || true
+            ;;
     esac
 }
 
@@ -341,20 +341,20 @@ configure_network
 edu-etcvcs commit
 
 if echo "$PROFILE" | grep -q Main-Server ; then
-	set_kerberos_ldap_passwords
+        set_kerberos_ldap_passwords
 fi
 
 for p in $(echo $PROFILE | tr , " ") ; do
     case $p in
-	# Only do this for the networked tasks, not for standalone
-	Main-Server|Workstation|Roaming-Workstation|LTSP-Server|Minimal)
-	    #create_initial_localadmin_user
-	    in-target /usr/share/debian-edu-config/tools/preseed-ldap-kerberos
-	    in-target /usr/share/debian-edu-config/tools/preseed-sitesummary
-
-	    # Tell user-setup to not create a user, needed on
-	    # Main-Server to be able to create the user in LDAP.
-	    db_set passwd/make-user boolean false
-	    ;;
+        # Only do this for the networked tasks, not for standalone
+        Main-Server|Workstation|Roaming-Workstation|LTSP-Server|Minimal)
+            #create_initial_localadmin_user
+            in-target /usr/share/debian-edu-config/tools/preseed-ldap-kerberos
+            in-target /usr/share/debian-edu-config/tools/preseed-sitesummary
+
+            # Tell user-setup to not create a user, needed on
+            # Main-Server to be able to create the user in LDAP.
+            db_set passwd/make-user boolean false
+            ;;
     esac
 done


=====================================
testsuite/hostname
=====================================
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Check that Main-Server's hostname is set to short hostname 'tjener', not FQDN 'tjener.intern'.
+
+if test -r /etc/debian-edu/config ; then
+    . /etc/debian-edu/config
+fi
+
+LC_ALL=C
+export LC_ALL
+
+scriptname="$0"
+
+case $PROFILE in
+*Main-Server*)
+    # Check that the hostname of the Main-Server is set to its short hostname (not FQDN)
+    if [ -e /etc/hostname ] && grep -q -E "^tjener\$" /etc/hostname; then
+        printf "success: %s: Main-Server's hostname is set to 'tjener'\n" "${scriptname}"
+    elif [ -e /etc/hostname ] && grep -q -E "^tjener.intern\$" /etc/hostname; then
+        printf "error: %s: Main-Server's hostname is (still) set to 'tjener.intern', please drop the DNS domain part from it\n" "${scriptname}"
+    else
+        printf "error: %s: Main-Server's hostname is not 'tjener'\n" "${scriptname}"
+    fi
+    ;;
+esac



View it on GitLab: https://salsa.debian.org/debian-edu/debian-edu-config/-/compare/234d3b0ca8b6da45830a9cfc95682f6449cda3ba...0b1aab81993451ff9796dd075d8147ba7613b69e

-- 
View it on GitLab: https://salsa.debian.org/debian-edu/debian-edu-config/-/compare/234d3b0ca8b6da45830a9cfc95682f6449cda3ba...0b1aab81993451ff9796dd075d8147ba7613b69e
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-edu-commits/attachments/20260819/50d44180/attachment-0001.htm>


More information about the debian-edu-commits mailing list