55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
--- a/snippets/post_install_network_config
|
|
+++ a/snippets/post_install_network_config
|
|
@@ -147,7 +147,7 @@ fi
|
|
#if $configbymac and $is_vlan == "false" and $bonding.lower() != "master"
|
|
## This is the code path physical interfaces will follow.
|
|
## Get the current interface name
|
|
-IFNAME=\$(ifconfig -a | grep -i '$mac' | cut -d ' ' -f 1)
|
|
+IFNAME=\$(ip -o link | grep -i '$mac' | sed -e 's/^[0-9]*: //' -e 's/:.*//')
|
|
## Rename this interface in modprobe.conf
|
|
## FIXME: if both interfaces startwith eth this is wrong
|
|
if [ -f "/etc/modprobe.conf" ] && [ \$IFNAME ]; then
|
|
--- a/snippets/pre_install_network_config
|
|
+++ a/snippets/pre_install_network_config
|
|
@@ -1,5 +1,27 @@
|
|
#if $getVar("system_name","") != ""
|
|
# Start pre_install_network_config generated code
|
|
+#raw
|
|
+# generic functions to be used later for discovering NICs
|
|
+mac_exists() {
|
|
+ if which ip &> /dev/null; then
|
|
+ ip -o link | grep -i "$1" &> /dev/null
|
|
+ return $?
|
|
+ else
|
|
+ ifconfig -a | grep -i "$1" &> /dev/null
|
|
+ return $?
|
|
+ fi
|
|
+}
|
|
+get_ifname() {
|
|
+ if which ip &> /dev/null; then
|
|
+ IFNAME=$(ip -o link | grep -i "$1" | sed -e 's/^[0-9]*: //' -e 's/:.*//')
|
|
+ else
|
|
+ IFNAME=$(ifconfig -a | grep -i "$1" | cut -d " " -f 1)
|
|
+ if [ -z $IFNAME ]; then
|
|
+ IFNAME=$(ifconfig -a | grep -i -B 2 "$1" | sed -n '/flags/s/:.*$//p')
|
|
+ fi
|
|
+ fi
|
|
+}
|
|
+#end raw
|
|
#set ikeys = $interfaces.keys()
|
|
#import re
|
|
#set $vlanpattern = $re.compile("[a-zA-Z0-9]+[\.:][0-9]+")
|
|
@@ -75,9 +97,9 @@
|
|
#set $netinfo = "%s --hostname=%s" % ($netinfo, $hostname)
|
|
#end if
|
|
# Configuring $iname ($mac)
|
|
-if ifconfig -a | grep -i $mac
|
|
+if mac_exists $mac
|
|
then
|
|
- IFNAME=\$(ifconfig -a | grep -i '$mac' | cut -d " " -f 1)
|
|
+ get_ifname $mac
|
|
echo "network --device=\$IFNAME $netinfo" >> /tmp/pre_install_network_config
|
|
fi
|
|
#else
|
|
|