[Git][debian-edu/debian-edu-config][personal/sunweaver/tjener-non-fqdn-hostname] 6 commits: debian/control: Add to D: (debian-edu-config): procps. (Closes: #1136493).
"Mike Gabriel (@sunweaver)" <[email protected]>
| Newsgroups | gmane.linux.skolelinux.cvs |
|---|---|
| Message-ID | <[email protected]> |
Mike Gabriel pushed to branch personal/sunweaver/tjener-non-fqdn-hostname at Debian Edu / debian-edu-config
Commits:
9710a70a by Mike Gabriel at 2026-08-19T23:25:59+02:00
debian/control: Add to D: (debian-edu-config): procps. (Closes: #1136493).
- - - - -
760801e3 by Wolfgang Schweer at 2026-08-19T23:42:53+02:00
share/debian-edu-config/d-i/pre-pkgsel: Cleanup pre-pkgsel from cruft. (Closes: #1055648).
- - - - -
63575146 by Mike Gabriel at 2026-08-20T18:10:19+02:00
ldap-tools/ldap-debian-edu-install: Make sure interactions with debconf are UTF-8 based.
This resolves GECOS field transliteration after having retrieved
debian-edu-config/first-user-fullname from the debconf db.
(Closes: #939717).
- - - - -
e6760dd9 by Mike Gabriel at 2026-08-21T10:35:06+02:00
share/debian-edu-config/d-i/pre-pkgsel: white-space cleanup
- - - - -
4c458e5a by Mike Gabriel at 2026-08-21T10:35:07+02:00
share/debian-edu-config/d-i/pre-pkgsel: Use 'tjener' in /etc/hostname and derive FQDN from /etc/hosts. (Closes: #893394).
- - - - -
1309897a by Mike Gabriel at 2026-08-21T10:35:07+02:00
testsuite/hostname: Test that /etc/hostname on installation profile Main-Server is set correctly
- - - - -
4 changed files:
- debian/control
- ldap-tools/ldap-debian-edu-install
- share/debian-edu-config/d-i/pre-pkgsel
- + testsuite/hostname
Changes:
=====================================
debian/control
=====================================
@@ -54,6 +54,7 @@ Depends: ${misc:Depends},
ng-utils,
openssl,
patch,
+ procps,
python3,
python3-notify2,
ssl-cert,
=====================================
ldap-tools/ldap-debian-edu-install
=====================================
@@ -1,6 +1,9 @@
#!/bin/bash
set -e
+# Assure that interactions with debconf database are UTF-8 interactions.
+export LANG=C.UTF-8
+
# This script is run during installation of the main server inside Debian Installer.
# Don't ever use it manually! You will definitely ruin your main server!
@@ -111,7 +114,7 @@ fi
################# password available now ##################
lookup_mac_addrs() {
- PATH=/sbin:$PATH LANG=C ifconfig 2>/dev/null | grep -i hwaddr | awk '{print $5}' | sort -u
+ PATH=/sbin:$PATH ifconfig 2>/dev/null | grep -i hwaddr | awk '{print $5}' | sort -u
}
slapd_stop() {
=====================================
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,13 +259,15 @@ 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
}
+<<<<<<< HEAD
+=======
create_initial_localadmin_user() {
LOCAL_USER_ID="localadmin"
LOCAL_USER_GECOS="Local Administrator"
@@ -275,28 +277,29 @@ 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
}
+>>>>>>> ef7d92e9 (share/debian-edu-config/d-i/pre-pkgsel: white-space cleanup)
# Work around grub bug #712907 (see also bug #763580) by preseeding
# grub-installer/choose_device to the disk used by /target/boot
# This fix it for the most common case.
@@ -311,15 +314,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 +344,19 @@ 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)
+ 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/0b1aab81993451ff9796dd075d8147ba7613b69e...1309897a94cb0e3ba457929befd8d0db34086d1e
--
View it on GitLab: https://salsa.debian.org/debian-edu/debian-edu-config/-/compare/0b1aab81993451ff9796dd075d8147ba7613b69e...1309897a94cb0e3ba457929befd8d0db34086d1e
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
_______________________________________________
debian-edu-commits mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-edu-commits