[Git][debian-edu/debian-edu-config][personal/sunweaver/cfengine-no-service-policy] 6 commits: share/debian-edu-config/d-i/pre-pkgsel: white-space cleanup
"Daniel Teichmann (@dzatoah)" <[email protected]>
| Newsgroups | gmane.linux.skolelinux.cvs |
|---|---|
| Message-ID | <[email protected]> |
Daniel Teichmann pushed to branch personal/sunweaver/cfengine-no-service-policy at Debian Edu / debian-edu-config
Commits:
63442a25 by Mike Gabriel at 2026-08-21T20:09:31+02:00
share/debian-edu-config/d-i/pre-pkgsel: white-space cleanup
- - - - -
62717ef0 by Mike Gabriel at 2026-08-21T20:09:31+02:00
share/debian-edu-config/d-i/pre-pkgsel: Use 'tjener' in /etc/hostname and derive FQDN from /etc/hosts. (Closes: #893394).
- - - - -
c618de32 by Mike Gabriel at 2026-08-21T20:09:31+02:00
testsuite/hostname: Test that /etc/hostname on installation profile Main-Server is set correctly
- - - - -
88aae95c by Daniel Teichmann at 2026-08-21T20:22:00+02:00
testsuite/hostname: escape regex dot and exit non-zero on failure
The unescaped dot in the 'tjener.intern' grep matched any character.
Escape it so the FQDN check is exact. Both error paths now exit 1 so a
broken hostname fails the test instead of silently passing.
- - - - -
06e2bd3d by Daniel Teichmann at 2026-08-21T20:22:41+02:00
share/debian-edu-config/d-i/pre-pkgsel: resolve leftover merge conflict
Commit 63442a25 committed a merge-conflict block around the
create_initial_localadmin_user() function. That function was removed
from master by 760801e3 (cruft cleanup, #1055648). Drop the conflict
markers and the cruft to match master.
- - - - -
d319a79f by Mike Gabriel at 2026-08-21T20:48:57+02:00
cf3/cf.cfengine3: Stop cfengine3 service on all Debian Edu machines
Esp. cf-execd (calling cf-agent command) clobbers the log on all Debian
Edu clients (Debian Edu 12 and onwards) and thus on syslog.intern (aka
tjener).
In Debian Edu, we use cfengine3 for managing configuration adjustments
via manual invocation of the cf-agent command, but we don't support
(yet?) to use cfengine3 for constant system management.
Partially addresses #1051834.
- - - - -
3 changed files:
- cf3/cf.cfengine3
- share/debian-edu-config/d-i/pre-pkgsel
- + testsuite/hostname
Changes:
=====================================
cf3/cf.cfengine3
=====================================
@@ -4,7 +4,7 @@ bundle agent cfengine3
services:
- debian.systemd.(server|ltspserver).installation::
+ debian.systemd.installation::
"cfengine3.service"
service_policy => "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,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
}
@@ -280,15 +280,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
}
@@ -310,19 +310,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)
- 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,27 @@
+#!/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}"
+ exit 1
+ else
+ printf "error: %s: Main-Server's hostname is not 'tjener'\n" "${scriptname}"
+ exit 1
+ fi
+ ;;
+esac
View it on GitLab: https://salsa.debian.org/debian-edu/debian-edu-config/-/compare/732692c0cfbca41807b4620bf1f88ad9bf4b241a...d319a79fbfbe7a3f3102c7da654028a25c6707fb
--
View it on GitLab: https://salsa.debian.org/debian-edu/debian-edu-config/-/compare/732692c0cfbca41807b4620bf1f88ad9bf4b241a...d319a79fbfbe7a3f3102c7da654028a25c6707fb
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