shellscript linux系统初始化



系统初始化脚本 shell   基本的变量截取 主机名 salt配置 网卡配置等  部分信息已隐藏去



#!/bin/bash

# ===============================
# Desc:    System init Script
# Author:  Wuxp,Bailm
# Version: 2017.07.26
# ===============================

HW=`ip a | grep ether | head -n1 | awk '{print $2}'` &>/dev/null
IP=`ip a | grep 'brd' | grep -v : | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}/" | egrep -E "^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172.3[01]\.)" | sed "s~/~~"`
PIP=`ip a | grep 'brd' | grep -v : | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}/" | egrep -v "^0|^10|^172\.1[6789]\.|^172\.2[0-9]\.|^172.3[01]\.|^192\.168|^127|^169\.254|^255|255$" | sed "s~/~~"` &>/dev/null
GATEW=`ip route show | grep $IP | awk -F' ' '{print $NF}' | awk -F'.' '{print $1"."$2"."$3".250"}'` &>/dev/null
GATEW_ZQ=`ip route show | grep $IP | awk -F' ' '{print $NF}' | awk -F'.' '{print $1"."$2"."$3".1"}'` &>/dev/null
OSV=`cat /etc/redhat-release  | egrep -o [0-9] | head -n 1` &>/dev/null
NET_segment=`echo $IP | awk -F'.' '{print $1}'`

#################### selinux and iptables ###################
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux

####################  eth0  ####################
mod_eth0 ()
{
if [ ${NET_segment} == 10 ]
then
cat << EOF1 > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
#HWADDR=$HW
IPADDR=$IP
NETMASK=255.255.255.0
GATEWAY=$GATEW
EOF1
echo '---eth0 OK---'
else
cat << EOF1 > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
#HWADDR=$HW
IPADDR=$IP
NETMASK=255.255.255.0
GATEWAY=$GATEW_ZQ
EOF1
echo '---eth0 OK---'
fi
}


##################### Hostname ###################
mod_hostname ()
{
echo -ne "
========================================================
    ZW:      ZxxxxxxxxxxxxxxxxxxxxxxxxxIPIP
    DXT:     DxxxxxxxxxxxxxxxxxxxxxxxxxxxxP   {0xxxxxxxxxxxxx}
    SandBox: ZxxxxxxxxxxxxxxxxxxxIP
    QY:      ZxxxxxxxxxxxxxxxxxxxxP      {Dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
========================================================
"
read -p 'please input hostname: ' name
sed -e '/^HOSTNAME/c HOSTNAME='$name'' -e '/^$/d' -i /etc/sysconfig/network
hostname $name
echo "127.0.0.1 $name " >>/etc/hosts
echo "---hostname OK---"
}


############################## intranet #############################
intranet ()
{
mod_eth0
mod_hostname

####################  ROUTE  ################
cat << EOF > /sbin/ifup-local
#!/bin/bash
if [ "\$1" = "eth0" ];then
ip route add 172.16.0.0/12 via $GATE
ip route add 192.168.0.0/16 via $GATE
ip route add 10.0.0.0/8 via $GATE
fi
EOF
chmod 755 /sbin/ifup-local
echo "---route OK---"
}

########################### internet ###########################
internet ()
{
mod_eth0
mod_hostname

start_udev &>/dev/null

ipmac=`ifconfig eth0 | grep H | awk '{print toupper($5)}'`
udevmac=`cat /etc/udev/rules.d/70-persistent-net.rules | grep eth0 | awk -F\" '{print toupper($8)}'`

if [ "$ipmac" = "$udevmac" ];then

##################  eth1  ##################
IP1=`ifconfig eth1 | grep inet | awk '{print $2}' | cut -d: -f2`
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=${IP1}
NETMASK=255.255.255.0
EOF
echo "---eth1 OK---"

####################  ROUTE  ################
GATE1=`ifconfig eth1 | grep inet | awk '{print $2}' | cut -d: -f2 | awk -F. '{print $1"."$2"."$3".1"}'`
cat << EOF > /sbin/ifup-local
#!/bin/bash
if [ "\$1" = "eth1" ];then
ip route add 172.16.0.0/12 via $GATE1
ip route add 192.168.0.0/16 via $GATE1
ip route add 10.0.0.0/8 via $GATE1
fi
EOF
chmod 755 /sbin/ifup-local
echo "---route OK---"
fi
}

################### System Release #########################
system_release () {
for i in `seq 4 7`
do
cat /etc/redhat-release | egrep -w "$i\..+" 1>/dev/null
    if [ $? == 0 ];then
        return $i
    fi
done
}

###################### Yum Install Salt-Minion  ##############################
salt_install () {
system_release
case $? in
6)
    #6.X
    cd /etc/yum.repos.d/;
    #rm -fr *;
 #    
 #   yum install salt-minion zeromq -y
    chkconfig salt-minion on
    ;;
7)
    #7.X
    yum install wget -y
    cd /etc/yum.repos.d/;
  #  rm -fr *;
 #   
 #   yum install salt-minion zeromq -y
    chkconfig salt-minion on
    ;;
esac
}

salt_config () {

rm -fr /etc/salt/pki/minion/minion_master.pub
Net12=$(echo $IP | awk -F. '{print $1$2}')

if [ ${Net12} -eq 10100 ] 
then
#     
#    sed -e '/^master/d' -e '/^id:/d' -e '/^#id:/a id: '$IP'' -i /etc/salt/minion;service salt-minion restart;chkconfig salt-minion on
    sed -e '/^master/d' -e '/^#master:/a master: 192.168.30.56' -e '/^id:/d' -e '/^#id:/a id: '$IP'' -i /etc/salt/minion
    systemctl restart salt-minion 2>/dev/null || service salt-minion restart
    systemctl enable salt-minion 2>/dev/null || chkconfig salt-minion on
elif [ ${Net12} -eq 1xxxxxxxxxxxxx ] 
then
    sed -e '/^master/d' -e '/^#master:/a master:
2.168.30.56
' -e '/^id:/d' -e '/^#id:/a id: '$IP'' -i /etc/salt/minion
systemctl restart salt-minion 2>/dev/null || service salt-minion restart systemctl enable salt-minion 2>/dev/null || chkconfig salt-minion onelse sed -e '/^master/d' -e '/^#master:/a master: 1xxxxxxxxxxx47' -e '/^id:/d' -e '/^#id:/a id: '$IP'' -i /etc/salt/minion systemctl restart salt-minion 2>/dev/null || service salt-minion restart systemctl enable salt-minion 2>/dev/null || chkconfig salt-minion onfi}###########################################################################################################################################echo -ne "======================================================== Input: 1:Local | 2:Public | 3:Salt | 4:Hostname======================================================== Please: " read modecase $mode in1) intranet /etc/init.d/network restart ;;2) internet /etc/init.d/network restart ;;3) salt_install salt_config ;;4) mod_hostname ;;*) echo "please input 1 | 2 | 3:Salt | 4:Hostname" ;;esac




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值