Kylin裸金属配置bond脚本
指尖二进制 • 1 年前 • 1281 次点击 • BASH
#!/bin/bash
# baseinfo
time1=$(date "+%Y%m%d%H%M%S")
####
# bond0=t2+t3 =external network
# bond1=t0+t1 =mgnt network
##t2
bond0_NIC1=p12p1
##t3
bond0_NIC2=p12p2
##t0
#bond1_NIC1=enp49s0f0
##t1
#bond1_NIC2=enp49s0f1
cfg_bond0_NIC1=ifcfg-${bond0_NIC1}
cfg_bond0_NIC2=ifcfg-${bond0_NIC2}
#cfg_bond1_NIC1=ifcfg-${bond1_NIC1}
#cfg_bond1_NIC2=ifcfg-${bond1_NIC2}
##############################主机名列需要注意一定要用az1、2、3区分,下面会配置dns##########################
cat > /tmp/ipinfo.csv << EOF
sn ip hostname bond
9800183908151236 10.116.21.1 bms-gdb-az1-01 bond0
9800183908151244 10.116.21.2 bms-gdb-az1-02 bond0
9800183908151246 10.116.21.3 bms-gdb-az1-03 bond0
9800183908151243 10.116.21.4 bms-gdb-az1-04 bond0
9800183908151221 10.116.21.5 bms-gdb-az1-05 bond0
9800183908151211 10.116.21.6 bms-gdb-az1-06 bond0
9800183908151226 10.116.21.7 bms-gdb-az1-07 bond0
9800183908151233 10.116.21.8 bms-gdb-az1-08 bond0
9800183908151237 10.116.21.9 bms-gdb-az1-09 bond0
9800183908151227 10.116.21.10 bms-gdb-az1-10 bond0
9800183908151250 10.116.21.11 bms-gdb-az1-11 bond0
9800183908151231 10.116.21.12 bms-gdb-az1-12 bond0
9800183908151218 10.116.21.13 bms-gdb-az1-13 bond0
9800183908151228 10.116.21.14 bms-gdb-az1-14 bond0
9800183908151251 10.116.21.15 bms-gdb-az1-15 bond0
9800183908151254 10.116.21.16 bms-gdb-az1-16 bond0
9800183908151253 10.116.21.17 bms-gdb-az1-17 bond0
9800183908151213 10.116.21.18 bms-gdb-az1-18 bond0
9800183908151209 10.116.21.19 bms-gdb-az1-19 bond0
9800183908151235 10.116.21.20 bms-gdb-az1-20 bond0
9800183908151247 10.116.21.21 bms-gdb-az1-21 bond0
9800183908151249 10.116.21.22 bms-gdb-az1-22 bond0
9800183908151256 10.116.21.23 bms-gdb-az1-23 bond0
9800183908151219 10.116.21.24 bms-gdb-az1-24 bond0
9800183908151215 10.116.21.25 bms-gdb-az1-25 bond0
21B602090 10.116.21.26 bms-gdb-az1-26 bond0
21B602091 10.116.21.27 bms-gdb-az1-27 bond0
21B602092 10.116.21.28 bms-gdb-az1-28 bond0
21B602093 10.116.21.29 bms-gdb-az1-29 bond0
21B602094 10.116.21.30 bms-gdb-az1-30 bond0
21B602095 10.116.21.31 bms-gdb-az1-31 bond0
9800183908151217 10.118.23.1 bms-gdb-az3-01 bond0
9800183908151232 10.118.23.2 bms-gdb-az3-02 bond0
9800183908151224 10.118.23.3 bms-gdb-az3-03 bond0
9800183908151225 10.118.23.4 bms-gdb-az3-04 bond0
9800183908151223 10.118.23.5 bms-gdb-az3-05 bond0
9800183908151220 10.118.23.6 bms-gdb-az3-06 bond0
9800183908151255 10.118.23.7 bms-gdb-az3-07 bond0
9800183908151216 10.118.23.8 bms-gdb-az3-08 bond0
9800183908151230 10.118.23.9 bms-gdb-az3-09 bond0
9800183908151248 10.118.23.10 bms-gdb-az3-10 bond0
9800183908151242 10.118.23.11 bms-gdb-az3-11 bond0
9800183908151245 10.118.23.12 bms-gdb-az3-12 bond0
9800183908151252 10.118.23.13 bms-gdb-az3-13 bond0
9800183908151239 10.118.23.14 bms-gdb-az3-14 bond0
9800183908151238 10.118.23.15 bms-gdb-az3-15 bond0
9800183908151222 10.118.23.16 bms-gdb-az3-16 bond0
9800183908151240 10.118.23.17 bms-gdb-az3-17 bond0
9800183908151241 10.118.23.18 bms-gdb-az3-18 bond0
9800183908151234 10.118.23.19 bms-gdb-az3-19 bond0
9800183908151214 10.118.23.20 bms-gdb-az3-20 bond0
9800183908151212 10.118.23.21 bms-gdb-az3-21 bond0
9800183908151229 10.118.23.22 bms-gdb-az3-22 bond0
9800183908151208 10.118.23.23 bms-gdb-az3-23 bond0
9800183908151210 10.118.23.24 bms-gdb-az3-24 bond0
9800183908151207 10.118.23.25 bms-gdb-az3-25 bond0
21B602125 10.118.23.26 bms-gdb-az3-26 bond0
21B602126 10.118.23.27 bms-gdb-az3-27 bond0
21B602127 10.118.23.28 bms-gdb-az3-28 bond0
21B602128 10.118.23.29 bms-gdb-az3-29 bond0
21B602129 10.118.23.30 bms-gdb-az3-30 bond0
21B602130 10.118.23.31 bms-gdb-az3-31 bond0
EOF
#
#sudo dmidecode -t 1|grep Serial|awk -F" " '{print $3}'
sn=`dmidecode -t 1|grep Serial|awk -F" " '{print $3}'`
bond0_ipaddr=`cat /tmp/ipinfo.csv |grep bond0|grep $sn|awk '{print $2}'`
bond0_gwnet=`echo $bond0_ipaddr|awk -F '.' '{print $1"."$2"."$3}'`
bond0_gateway=${bond0_gwnet}.62
#bond1_ipaddr=`cat /tmp/ipinfo.csv |grep bond1|grep $sn|awk '{print $2}'`
#bond1_gwnet=`echo $bond1_ipaddr|awk -F '.' '{print $1"."$2"."$3}'`
#bond1_gateway=${bond1_gwnet}.62
hostname=`cat /tmp/ipinfo.csv |grep $sn| head -n 1|awk '{print $3}'`
#####
#NIC1=`ifconfig -a|grep enp|head -n 2|awk '{print $1}'|awk -F ':' '{print $1}'|head -n 1`
#NIC2=`ifconfig -a|grep enp|head -n 2|awk '{print $1}'|awk -F ':' '{print $1}'|tail -n 1`
#### hostname
old_hostname=`hostname`
hostnamectl set-hostname $hostname
sed -i "s/$old_hostname/$hostname/g" /etc/hosts
#### network
# /etc/sysconfig/network-scripts/
## cfg_bond0_NIC1
## cfg_bond0_NIC2
## cfg_bond1_NIC1
## cfg_bond1_NIC2
## bond0 ################
if [[ "$bond0_ipaddr" != "" ]] ; then
cp /etc/sysconfig/network-scripts/${cfg_bond0_NIC1} /root/${cfg_bond0_NIC1}_bak${time1}
cp /etc/sysconfig/network-scripts/${cfg_bond0_NIC2} /root/${cfg_bond0_NIC2}_bak${time1}
cp /etc/sysconfig/network-scripts/ifcfg-bond0 /root/ifcfg-bond0_bak${time1}
sed -i s/BOOTPROTO=dhcp/BOOTPROTO=none/g /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}
sed -i s/BOOTPROTO=dhcp/BOOTPROTO=none/g /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}
sed -i s/ONBOOT=no/ONBOOT=yes/g /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}
sed -i s/ONBOOT=no/ONBOOT=yes/g /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}
test_MASTER_NIC1=`grep "^MASTER=" /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}`
if [[ "$test_MASTER_NIC1" = "" ]] ; then
echo "MASTER=bond0" >> /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}
fi
test_MASTER_NIC2=`grep "^MASTER=" /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}`
if [[ "$test_MASTER_NIC2" = "" ]] ; then
echo "MASTER=bond0" >> /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}
fi
test_SLAVE_NIC1=`grep "^SLAVE=" /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}`
if [[ "$test_SLAVE_NIC1" = "" ]] ; then
echo "SLAVE=yes" >> /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}
fi
test_SLAVE_NIC2=`grep "^SLAVE=" /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}`
if [[ "$test_SLAVE_NIC2" = "" ]] ; then
echo "SLAVE=yes" >> /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}
fi
test_CONTROLLED_NIC1=`grep "^NM_CONTROLLED=" /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}`
if [[ "$test_SLAVE_NIC1" = "" ]] ; then
echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}
fi
test_CONTROLLED_NIC1=`grep "^NM_CONTROLLED=" /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}`
if [[ "$test_SLAVE_NIC2" = "" ]] ; then
echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}
fi
####
cat > /tmp/bond0_tmp << EOF
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=no
IPADDR=XXXBOND0_IPXXX
NETMASK=255.255.255.192
GATEWAY=XXXBOND0_GWXXX
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=1"
DELAY=0
EOF
####
cat /tmp/bond0_tmp > /etc/sysconfig/network-scripts/ifcfg-bond0
sed -i s/XXXBOND0_IPXXX/$bond0_ipaddr/g /etc/sysconfig/network-scripts/ifcfg-bond0
is_2nic=`cat /tmp/ipinfo.csv |grep $sn |wc -l`
if [[ "$is_2nic" != 2 ]] ; then
# only one nic
sed -i s/XXXBOND0_GWXXX/$bond0_gateway/g /etc/sysconfig/network-scripts/ifcfg-bond0
else
# have two nics
sed -i '/XXXBOND0_GWXXX/d' /etc/sysconfig/network-scripts/ifcfg-bond0
fi
else
echo "bond0_ipaddr is None ,nothing to do"
fi
############# bond0 end ##########
#### bond1 ##############
#if [[ "$bond1_ipaddr" != "" ]] ; then
# cp /etc/sysconfig/network-scripts/${cfg_bond1_NIC1} /root/${cfg_bond1_NIC1}_bak${time1}
# cp /etc/sysconfig/network-scripts/${cfg_bond1_NIC2} /root/${cfg_bond1_NIC2}_bak${time1}
# cp /etc/sysconfig/network-scripts/ifcfg-bond1 /root/ifcfg-bond1_bak${time1}
# sed -i s/BOOTPROTO=dhcp/BOOTPROTO=none/g /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}
# sed -i s/BOOTPROTO=dhcp/BOOTPROTO=none/g /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}
# sed -i s/ONBOOT=no/ONBOOT=yes/g /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}
# sed -i s/ONBOOT=no/ONBOOT=yes/g /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}
# test_MASTER_NIC1=`grep "^MASTER=" /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}`
# if [[ "$test_MASTER_NIC1" = "" ]] ; then
# echo "MASTER=bond1" >> /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}
# fi
# test_MASTER_NIC2=`grep "^MASTER=" /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}`
# if [[ "$test_MASTER_NIC2" = "" ]] ; then
# echo "MASTER=bond1" >> /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}
# fi
# test_SLAVE_NIC1=`grep "^SLAVE=" /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}`
# if [[ "$test_SLAVE_NIC1" = "" ]] ; then
# echo "SLAVE=yes" >> /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}
# fi
# test_SLAVE_NIC2=`grep "^SLAVE=" /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}`
# if [[ "$test_SLAVE_NIC2" = "" ]] ; then
# echo "SLAVE=yes" >> /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}
# fi
# test_CONTROLLED_NIC1=`grep "^NM_CONTROLLED=" /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}`
# if [[ "$test_SLAVE_NIC1" = "" ]] ; then
# echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}
# fi
# test_CONTROLLED_NIC1=`grep "^NM_CONTROLLED=" /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}`
# if [[ "$test_SLAVE_NIC2" = "" ]] ; then
# echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}
# fi
####
#cat > /tmp/bond1_tmp << EOF
#DEVICE=bond1
#TYPE=Bond
#NAME=bond1
#BONDING_MASTER=yes
#BOOTPROTO=static
#ONBOOT=yes
#NM_CONTROLLED=no
#IPADDR=XXXBOND1_IPXXX
#NETMASK=255.255.255.0
#GATEWAY=XXXBOND1_GWXXX
#BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=1"
#DELAY=0
#EOF
####
# cat /tmp/bond1_tmp > /etc/sysconfig/network-scripts/ifcfg-bond1
# sed -i s/XXXBOND1_IPXXX/$bond1_ipaddr/g /etc/sysconfig/network-scripts/ifcfg-bond1
# sed -i s/XXXBOND1_GWXXX/$bond1_gateway/g /etc/sysconfig/network-scripts/ifcfg-bond1
#
#else
# echo "bond1_ipaddr is None ,nothing to do"
#fi
################## bond1 end #########
#sed -i s/NICA/$NIC1/g /etc/network/interfaces
#sed -i s/NICB/$NIC2/g /etc/network/interfaces
#sed -i s/hostip/$ipaddr/g /etc/network/interfaces
#sed -i s/gatewayip/$gateway/g /etc/network/interfaces
###################
echo "$time1" > /tmp/ifcfg_change_$time1.txt
echo "bond0 = $bond0_ipaddr" >> /tmp/ifcfg_change_$time1.txt
#echo "bond1 = $bond1_ipaddr" >> /tmp/ifcfg_change_$time1.txt
#
######
> /tmp/ifcfg_return_$time1.sh
echo "#!/bin/bash" >> /tmp/ifcfg_return_$time1.sh
echo "cp -f /root/${cfg_bond0_NIC1}_bak${time1} /etc/sysconfig/network-scripts/${cfg_bond0_NIC1}" >> /tmp/ifcfg_return_$time1.sh
echo "cp -f /root/${cfg_bond0_NIC2}_bak${time1} /etc/sysconfig/network-scripts/${cfg_bond0_NIC2}" >> /tmp/ifcfg_return_$time1.sh
echo "cp -f /root/ifcfg-bond0_bak${time1} /etc/sysconfig/network-scripts/ifcfg-bond0" >> /tmp/ifcfg_return_$time1.sh
#echo "cp -f /root/${cfg_bond1_NIC1}_bak${time1} /etc/sysconfig/network-scripts/${cfg_bond1_NIC1}" >> /tmp/ifcfg_return_$time1.sh
#echo "cp -f /root/${cfg_bond1_NIC2}_bak${time1} /etc/sysconfig/network-scripts/${cfg_bond1_NIC2}" >> /tmp/ifcfg_return_$time1.sh
#echo "cp -f /root/ifcfg-bond1_bak${time1} /etc/sysconfig/network-scripts/ifcfg-bond1" >> /tmp/ifcfg_return_$time1.sh
echo "systemctl restart network.service" >> /tmp/ifcfg_return_$time1.sh
######
echo "wating restart network"
systemctl restart network.service
# dns config
PROD1A="*az1*"
PROD1B="*az2*"
PROD1C="*az3*"
DNS_PATH="/etc/resolv.conf"
case ${hostname} in
${PROD1A})
echo "search ecaprodbj1.ecaprod.evercloud.io" > $DNS_PATH
echo "nameserver 10.116.21.62" >> $DNS_PATH
ping -W 1 -c 1 ntp.eca.prod.cebbank &> /dev/null
;;
${PROD1B})
echo "search ecaprodbj1.ecaprod.evercloud.io" > $DNS_PATH
echo "nameserver 10.117.22.62" >> $DNS_PATH
ping -W 1 -c 1 ntp.eca.prod.cebbank &> /dev/null
;;
${PROD1C})
echo "search ecaprodbj1.ecaprod.evercloud.io" > $DNS_PATH
echo "nameserver 10.118.23.62" >> $DNS_PATH
ping -W 1 -c 1 ntp.eca.prod.cebbank &> /dev/null
;;
*)
esac
# ntp
cat >> /etc/ntp.conf << EOF
server ntp1.ecaprod.evercloud.io minpoll 4 maxpoll 4 prefer
server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4
driftfile /var/lib/ntp/drift/ntp.drift
EOF
systemctl restart ntpd
systemctl enable ntpd
ntpq -p
# stop service
systemctl stop firewalld
systemctl disable firewalld
systemctl stop NetworkManager
systemctl disable NetworkManager
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
# ssh
sed -i "s/#Port 22/Port 16022/g" /etc/ssh/sshd_config
systemctl restart sshd
echo done