Pin Athena LAN interface by permanent MAC
This commit is contained in:
+46
@@ -70,6 +70,51 @@ install_base_packages() {
|
||||
iproute2 pciutils rsync unattended-upgrades ethtool
|
||||
}
|
||||
|
||||
setup_stable_network_name() {
|
||||
local mac=${PRIMARY_NETWORK_MAC:-}
|
||||
local desired=${PERSISTENT_NETWORK_NAME:-}
|
||||
[[ -n $mac && -n $desired ]] || return 0
|
||||
[[ $mac =~ ^([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}$ ]] || \
|
||||
die "PRIMARY_NETWORK_MAC ist ungültig: $mac"
|
||||
[[ $desired =~ ^[a-zA-Z0-9_.-]+$ ]] || \
|
||||
die "PERSISTENT_NETWORK_NAME ist ungültig: $desired"
|
||||
|
||||
mac=${mac,,}
|
||||
local current="" path
|
||||
for path in /sys/class/net/*; do
|
||||
[[ -f $path/address ]] || continue
|
||||
if [[ $(<"$path/address") == "$mac" ]]; then
|
||||
current=${path##*/}
|
||||
break
|
||||
fi
|
||||
done
|
||||
[[ -n $current ]] || die "Keine Netzwerkkarte mit permanenter MAC $mac gefunden."
|
||||
|
||||
log "Stabilen Netzwerknamen $desired für $mac konfigurieren"
|
||||
install -d -m 0755 /etc/systemd/network
|
||||
cat >/etc/systemd/network/10-athena-lan.link <<EOF
|
||||
[Match]
|
||||
PermanentMACAddress=$mac
|
||||
|
||||
[Link]
|
||||
Name=$desired
|
||||
EOF
|
||||
chmod 0644 /etc/systemd/network/10-athena-lan.link
|
||||
|
||||
if [[ $current != "$desired" ]]; then
|
||||
[[ -f /etc/network/interfaces ]] || \
|
||||
die "/etc/network/interfaces fehlt; sichere automatische Umstellung nicht möglich."
|
||||
cp -a /etc/network/interfaces \
|
||||
"/etc/network/interfaces.before-stable-name-$(date +%Y%m%d-%H%M%S)"
|
||||
sed -i "s/\\<$current\\>/$desired/g" /etc/network/interfaces
|
||||
grep -q "^iface $desired inet " /etc/network/interfaces || \
|
||||
die "Netzwerkprofil wurde nicht auf $desired umgestellt."
|
||||
log "Netzwerkname wird beim nächsten Boot von $current auf $desired geändert."
|
||||
log "Bitte neu starten und denselben Installer danach erneut ausführen."
|
||||
exit 21
|
||||
fi
|
||||
}
|
||||
|
||||
setup_remote_recovery() {
|
||||
log "Remote-Recovery (Hardware-Watchdog und Wake-on-LAN) konfigurieren"
|
||||
|
||||
@@ -481,6 +526,7 @@ PY
|
||||
|
||||
hostnamectl set-hostname "$AI_HOSTNAME"
|
||||
install_base_packages
|
||||
setup_stable_network_name
|
||||
setup_remote_recovery
|
||||
setup_ssh_hardening
|
||||
install_docker
|
||||
|
||||
Reference in New Issue
Block a user