static usb ethnet addresses
[automated-distro-installer] / fai / config / scripts / ROCKY / 60-network-scripts
1 #! /bin/bash
2
3 error=0 ; trap "error=$((error|1))" ERR
4
5 ifcfg_config() {
6
7 cat > $target/etc/sysconfig/network-scripts/ifcfg-$NIC1 <<-EOF
8 # generated by FAI
9 TYPE=Ethernet
10 PROXY_METHOD=none
11 BOOTPROTO=dhcp
12 DEFROUTE=yes
13 BROWSER_ONLY=no
14 IP4_FAILURE_FATAL=no
15 IPV6INIT=no
16 IPV6_AUTOCONF=no
17 NAME=$NIC1
18 DEVICE=$NIC1
19 ONBOOT=yes
20 EOF
21 }
22
23 nm_config() {
24
25 uuid=$(uuidgen)
26
27 cat > $target/etc/NetworkManager/system-connections/${NIC1}.nmconnection << EOF
28
29 # generated by FAI
30 [connection]
31 id=$NIC1
32 uuid=$uuid
33 type=ethernet
34 autoconnect-priority=-999
35 interface-name=$NIC1
36
37 [ethernet]
38
39 [ipv4]
40 method=auto
41
42 [ipv6]
43 addr-gen-mode=eui64
44 method=auto
45
46 [proxy]
47 EOF
48
49 chmod 600 $target/etc/NetworkManager/system-connections/${NIC1}.nmconnection
50 }
51
52
53
54 # determine predictable network names
55 fields="ID_NET_NAME_FROM_DATABASE ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH"
56 for field in $fields; do
57 name=$(udevadm info /sys/class/net/$NIC1 | sed -rn "s/^E: $field=(.+)/\1/p")
58 if [[ $name ]]; then
59 NIC1=$name
60 break
61 fi
62 done
63 if [[ ! $name ]]; then
64 echo "$0: error: could not find systemd predictable network name. Using $NIC1."
65 fi
66
67 if [ $FAI_ACTION != "softupdate" ] && ifclass DHCPC; then
68 . $target/etc/os-release
69 major=$(echo ${VERSION_ID} | awk -F '.' '{ print $1 }')
70
71 if [ $major -lt 9 ]; then
72 ifcfg_config
73 else
74 nm_config
75 fi
76 fi
77
78 fcopy -iv /etc/sysconfig/network /etc/resolv.conf /etc/networks
79 fcopy -ivr /etc/sysconfig/network-scripts
80
81 exit $error