«

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 
还没收到回复