From 5177fb7a211b9056ad8f0df41371bbeaac25ed32 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Tue, 9 Aug 2016 14:46:57 -0700 Subject: [PATCH] bug fixes for jessie & stretch --- fai/config/scripts/DEBIAN/30-interface | 21 +++++++++++++++++++++ pxe-server | 7 +++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/fai/config/scripts/DEBIAN/30-interface b/fai/config/scripts/DEBIAN/30-interface index 3d4d08f..6f2251a 100755 --- a/fai/config/scripts/DEBIAN/30-interface +++ b/fai/config/scripts/DEBIAN/30-interface @@ -3,6 +3,27 @@ # modified from upstream fai example error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code +if ! ifclass VM && ! ifclass STABLE; then + # get persistent interface name. Note, these class conditions + # will need to get modified for new oses. testing vm doesn't use + # it right now, but other vms do I'm sure. + for field in ID_NET_NAME_FROM_DATABASE \ + ID_NET_NAME_ONBOARD \ + ID_NET_NAME_SLOT \ + ID_NET_NAME_PATH \ + ID_NET_NAME_MAC; 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" + exit 1 + fi +fi + if ifclass DHCPC && [ $FAI_ACTION = "install" -o $FAI_ACTION = "dirinstall" ] then if ifclass VM; then diff --git a/pxe-server b/pxe-server index 6099ddb..5507e5d 100755 --- a/pxe-server +++ b/pxe-server @@ -121,8 +121,11 @@ if [[ $type == fai ]]; then fi if ! $persist; then - echo "waiting for 2 dhcp acks then disabling pxe" - ack-wait 2 + # fai's debian jessie 8.5ish does 2 dhcp requests when booting, + # roughly 4 seconds apart. Earlier + # versions did just 1. Whatever. + echo "waiting for 3 dhcp acks then disabling pxe" + ack-wait 3 set-pxe : if [[ $type == fai ]]; then # fai server can contain sensitive info, so turn it off -- 2.30.2