«

Kylin裸金属配置bond脚本

指尖二进制 • 1 年前 • 1700 次点击 • BASH


#!/bin/bash

time1=$(date "+%Y%m%d%H%M%S")

bond0_NIC1=`ip a | grep -vE 'NO-CARRIER|LOOPBACK' | grep UP | awk -F ':' '{print $2}' | sed -n '1p' | sed 's/^[[:space:]]*//'`
bond0_NIC2=`ip a | grep -vE 'NO-CARRIER|LOOPBACK' | grep UP | awk -F ':' '{print $2}' | sed -n '2p' | sed 's/^[[:space:]]*//'`
cfg_bond0_NIC1=ifcfg-${bond0_NIC1}
cfg_bond0_NIC2=ifcfg-${bond0_NIC2}
File_Path="/etc/sysconfig/network-scripts/"

cat > /tmp/ipinfo.csv << EOF
sn  ip  hostname    gateway netmask dnsmaster
9800203508648183    16.108.130.27   Sugon-R6240H0-3686-CC-AZ2   16.108.130.62   255.255.255.192 16.255.128.62
EOF

mkdir -p ${File_Path}/bak_${time1}
mv ${File_Path}/ifcfg-* ${File_Path}/bak_${time1}

cat > ${File_Path}/${cfg_bond0_NIC1} << EOF
TYPE=Ethernet
BOOTPROTO=none
NAME=XXXXXXXX
DEVICE=XXXXXXXX
ONBOOT=yes
MASTER=bond0
SLAVE=yes
EOF
cat > ${File_Path}/${cfg_bond0_NIC2} << EOF
TYPE=Ethernet
NAME=YYYYYYYY
DEVICE=YYYYYYYY
ONBOOT=yes
MASTER=bond0
BOOTPROTO=none
SLAVE=yes
EOF
cat > ${File_Path}/ifcfg-bond0 << EOF
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
ONBOOT=yes
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=1"
IPADDR=xxxxx
NETMASK=yyyyy
GATEWAY=zzzzz
DNS1=uuuuu
EOF

Set_Hostname() {
    old_hostname=`hostname`
    hostnamectl set-hostname $1
    sed -i "s/$old_hostname/$1/g" /etc/hosts
    echo -e "\033[32m set hostname successful\033[0m"
}

Set_NetBond() {
    sed -i "s/XXXXXXXX/${bond0_NIC1}/g" ${File_Path}/${cfg_bond0_NIC1}  
    sed -i "s/YYYYYYYY/${bond0_NIC2}/g" ${File_Path}/${cfg_bond0_NIC2}  
    sed -i "s/xxxxx/$1/g" ${File_Path}/ifcfg-bond0
    sed -i "s/yyyyy/$3/g" ${File_Path}/ifcfg-bond0
    sed -i "s/zzzzz/$2/g" ${File_Path}/ifcfg-bond0
    sed -i "s/uuuuu/$4/g" ${File_Path}/ifcfg-bond0
    systemctl restart network.service
    systemctl restart NetworkManager
    if [ $? -eq 0 ];then
        echo -e "\033[32m set bond0 networking successful\033[0m"
    else
        echo -e "\033[32m set bond0 over,please check net-config\033[0m"
    fi
}

Set_Config_SSH() {
    sed 's;#Port 22;Port 16022;g' -i /etc/ssh/sshd_config
    systemctl restart sshd
}

Set_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
}

Set_Dns_Ntp_Config(){
    PROD1A="*AZ1*"
    PROD1B="*AZ2*"
    PROD1C="*AZ3*"
    PRODWH="*AZ4*"
    DEV1A="*1A*"
    DEV1B="*1B*"
    DNS_PATH="/etc/resolv.conf"
    NTP_PATH="/etc/ntp.conf"

    case ${hostname} in
    ${PROD1A})
    echo "search ecaprodbj1.ecaprod.evercloud.io" > $DNS_PATH
    echo "nameserver 16.255.0.62" >> $DNS_PATH
    grep -q "server ntp1.ecaprod.evercloud.io minpool 4 maxpoll 4 preger" $NTP_PATH || echo "server ntp1.ecaprod.evercloud.io minpoll 4 maxpoll 4 prefer" >> $NTP_PATH
    grep -q "server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "driftfile /var/lib/ntp/drift/ntp.drift" $NTP_PATH || echo "driftfile /var/lib/ntp/drift/ntp.drift" >> $NTP_PATH
    systemctl restart ntpd && systemctl enable ntpd
    ;;

    ${PROD1B})
    echo "search ecaprodbj1.ecaprod.evercloud.io" > $DNS_PATH
    echo "nameserver 16.255.128.62" >> $DNS_PATH
    grep -q "server ntp1.ecaprod.evercloud.io minpool 4 maxpoll 4 preger" $NTP_PATH || echo "server ntp1.ecaprod.evercloud.io minpoll 4 maxpoll 4 prefer" >> $NTP_PATH
    grep -q "server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "driftfile /var/lib/ntp/drift/ntp.drift" $NTP_PATH || echo "driftfile /var/lib/ntp/drift/ntp.drift" >> $NTP_PATH
    systemctl restart ntpd && systemctl enable ntpd
    ;;

    ${PROD1C})
    echo "search ecaprodbj1.ecaprod.evercloud.io" > $DNS_PATH
    echo "nameserver 16.255.108.62" >> $DNS_PATH
    grep -q "server ntp1.ecaprod.evercloud.io minpool 4 maxpoll 4 preger" $NTP_PATH || echo "server ntp1.ecaprod.evercloud.io minpoll 4 maxpoll 4 prefer" >> $NTP_PATH
    grep -q "server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp2.ecaprod.evercloud.io minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "driftfile /var/lib/ntp/drift/ntp.drift" $NTP_PATH || echo "driftfile /var/lib/ntp/drift/ntp.drift" >> $NTP_PATH
    systemctl restart ntpd && systemctl enable ntpd
    ;;

    ${PRODWH})
    echo "search ecaprodwh1.wh1.eca.prod.cebbank" > $DNS_PATH
    echo "nameserver 17.50.0.12" >> $DNS_PATH
    grep -q "server 17.50.0.1" $NTP_PATH || echo "server 17.50.0.1" >> $NTP_PATH
    grep -q "server 17.50.0.2" $NTP_PATH || echo "server 17.50.0.2" >> $NTP_PATH
    systemctl restart ntpd && systemctl enable ntpd
    ;;

    ${DEV1A})
    echo "search ecadevbj1.ecadev.evercloud.io" > $DNS_PATH
    echo "nameserver 15.255.65.12" >> $DNS_PATH
    grep -q "server ntp1.ecadev.evercloud.io minpoll 4 maxpoll 4 prefer" $NTP_PATH || echo "server ntp1.ecadev.evercloud.io minpoll 4 maxpoll 4 prefer" >> $NTP_PATH
    grep -q "server ntp2.ecadev.evercloud.io minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp2.ecadev.evercloud.io minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "server ntp.eca.dev.cebbank minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp.eca.dev.cebbank minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "driftfile /var/lib/ntp/drift/ntp.drift" $NTP_PATH || echo "driftfile /var/lib/ntp/drift/ntp.drift" >> $NTP_PATH
    systemctl restart ntpd && systemctl enable ntpd
    ;;

    ${DEV1B})
    echo "search ecadevbj1.ecadev.evercloud.io" > $DNS_PATH
    echo "nameserver 15.255.97.12" >> $DNS_PATH
    grep -q "server ntp1.ecadev.evercloud.io minpoll 4 maxpoll 4 prefer" $NTP_PATH || echo "server ntp1.ecadev.evercloud.io minpoll 4 maxpoll 4 prefer" >> $NTP_PATH
    grep -q "server ntp2.ecadev.evercloud.io minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp2.ecadev.evercloud.io minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "server ntp.eca.dev.cebbank minpoll 4 maxpoll 4" $NTP_PATH || echo "server ntp.eca.dev.cebbank minpoll 4 maxpoll 4" >> $NTP_PATH
    grep -q "driftfile /var/lib/ntp/drift/ntp.drift" $NTP_PATH || echo "driftfile /var/lib/ntp/drift/ntp.drift" >> $NTP_PATH
    systemctl restart ntpd && systemctl enable ntpd
    ;;
    *)
    esac
}

sn=`dmidecode -s system-serial-number`
if cat /tmp/ipinfo.csv | grep $sn > /dev/null ; then
    ipaddr=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $2}'`
    gateway=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $4}'`
    netmask=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $5}'`
    dnsmaster=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $6}'`
    Set_NetBond $ipaddr $gateway $netmask $dnsmaster
    hostname=`cat /tmp/ipinfo.csv |grep $sn|awk '{print $3}'`
    Set_Hostname $hostname
    Set_Config_SSH
    Set_Stop_Service
    Set_Dns_Ntp_Config
else
    echo "machine sn not in /tmp/ipinfo.csv"
fi
还没收到回复