ubuntu20.04配置网卡
指尖二进制 • 1 年前 • 1338 次点击 • BASH
#!/bin/bash
cat > /tmp/ipinfo.csv << EOF
sn ip hostname
6101878002622227 15.255.176.144 ecadevbj1bccr01n15
6101878002622228 15.255.176.145 ecadevbj1bccr01n16
6101878002622229 15.255.176.146 ecadevbj1bccr01n17
6101878002622230 15.255.176.147 ecadevbj1bccr01n18
6101878002622231 15.255.176.148 ecadevbj1bccr02n15
6101878002622232 15.255.176.149 ecadevbj1bccr02n16
6101878002622233 15.255.176.150 ecadevbj1bccr02n17
6101878002622234 15.255.176.151 ecadevbj1bccr02n18
7777777777777777 15.255.176.152 ecadevbj1bccr01n19
6101878002622236 15.255.176.153 ecadevbj1bccr01n20
6101878002622237 15.255.176.154 ecadevbj1bccr01n21
6101878002622238 15.255.176.155 ecadevbj1bccr01n22
9800183908059716 15.255.176.212 ecadevbj1bccr02n19
9800183908059715 15.255.176.213 ecadevbj1bccr02n20
9800183908059696 15.255.176.214 ecadevbj1bccr02n21
6101878002622239 15.255.176.215 ecadevbj1bccr02n22
EOF
cat > /etc/network/interfaces << EOF
# The loopback network interface
auto lo
iface lo inet loopback
auto NICA
iface NICA inet manual
mtu 1550
bond-master bond0
auto NICB
iface NICB inet manual
mtu 1550
pre-up sleep 5
bond-master bond0
# mgmt network
auto bond0
iface bond0 inet static
mtu 1550
address hostip
netmask 255.255.255.192
gateway gatewayip.254
dns-nameservers 15.255.97.12
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves NICA NICB
bond-xmit_hash_policy layer2+3
EOF
sn=`dmidecode -s system-serial-number`
ipaddr=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $2}'`
gateway=`echo $ipaddr|awk -F '.' '{print $1"."$2"."$3}'`
hostname=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $3}'`
old_hostname=`hostname`
# 匹配两种网卡名称
NIC1=`ifconfig -a|grep ens|head -n 2|awk -F ':' '{print $1}'|head -n 1`
NIC2=`ifconfig -a|grep ens|head -n 2|awk -F ':' '{print $1}'|tail -n 1`
NIC3=`ifconfig -a|grep enp|head -n 2|awk -F ':' '{print $1}'|head -n 1`
NIC4=`ifconfig -a|grep enp|head -n 2|awk -F ':' '{print $1}'|tail -n 1`
hostnamectl set-hostname $hostname
sed -i "s/$old_hostname/$hostname/g" /etc/hosts
if [[ -z "$NIC1" || -z "$NIC2" ]]; then
echo "variable is empty"
else
sed -i s/NICA/$NIC1/g /etc/network/interfaces
sed -i s/NICB/$NIC2/g /etc/network/interfaces
fi
if [[ -z "$NIC3" || -z "$NIC4" ]]; then
echo "variable is empty"
else
sed -i s/NICA/$NIC3/g /etc/network/interfaces
sed -i s/NICB/$NIC4/g /etc/network/interfaces
fi
sed -i s/hostip/$ipaddr/g /etc/network/interfaces
sed -i s/gatewayip/$gateway/g /etc/network/interfaces
systemctl restart networking.service