LVS 交互式配置脚本

作者: admin 分类: Linux,Shell脚本 发布时间: 2018-04-20 22:48 浏览:1,282 次    

LVS Server 配置

###################################################################
# File Name: lvs_server.sh
# Author: 寻音
# E-mail: lnhxzwb@126.com
# Created Time: Thu 19 Apr 2018 05:38:49 AM CST
#==================================================================
#!/bin/bash
#提示
show ()
{
echo "###################################################################"
echo "※ 本环境基于Centos7系统 ※ "
echo "※ 可选安装模式 NAT|DR|TUN ※ "
echo "※ 本脚本默认算法为:rr ※ "
echo "※ 如果安装环境不同,请更改相关参数或手动安装 ※ "
echo "==================================================================="

}


nat ()
{
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
sysctl -p &>/dev/null
cat <<EOF >$path/ifcfg-$eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=$eth1
DEVICE=$eth1
ONBOOT=yes
IPADDR=$vip
NETMASK=255.255.255.0
EOF
systemctl restart network
if [ $? = 0 ];then
echo "网络配置完成,正在配置LVS....."
else
echo "网络配置失败,请检查后执行!" exit
fi
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -m
$ipv -a -t $vip:80 -r $rs2:80 -m
echo "LVS配置信息"
$ipv -L -n
$ipv -S >/etc/sysconfig/ipvsadm
systemctl enable ipvsadm.service &>/dev/null
echo "LVS server配置已完成"
}


dr ()
{
cat <<EOF >$path/ifcfg-$eth:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=$eth:0
DEVICE=$eth:0
ONBOOT=yes
IPADDR=$vip
NETMASK=255.255.255.0
EOF
systemctl restart network
if [ $? = 0 ];then
echo "网络配置完成,正在配置LVS....."
else
echo "网络配置失败,请检查后执行!" exit
fi

$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g
$ipv -a -t $vip:80 -r $rs2:80 -g
echo "LVS配置信息"
$ipv -L -n
$ipv -S >/etc/sysconfig/ipvsadm
systemctl enable ipvsadm.service &>/dev/null
echo "LVS server配置已完成"
}


tun ()
{
cat <<EOF >$path/ifcfg-$eth:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=$eth:0
DEVICE=$eth:0
ONBOOT=yes
IPADDR=$vip
NETMASK=255.255.255.0
EOF
systemctl restart network
if [ $? = 0 ];then
echo "网络配置完成,正在配置LVS....."
else
echo "网络配置失败,请检查后执行!" exit
fi

$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -i 
$ipv -a -t $vip:80 -r $rs2:80 -i 
echo "LVS配置信息"
$ipv -L -n
$ipv -S >/etc/sysconfig/ipvsadm
systemctl enable ipvsadm.service &>/dev/null
echo "LVS server配置已完成"
}

#vip、rsip配置
ip()
{

read -p "请输入VIP: " vip
read -p "请输入realserve1 IP : " rs1
read -p "请输入realserve2 IP : " rs2
}


show
path=/etc/sysconfig/network-scripts/
eth=$(ifconfig |grep ens|cut -d: -f1|sed -n 1p)
eth1=$(ifconfig |grep ens |cut -d: -f1 |sed -n 2p)
ipv=/sbin/ipvsadm
yum repolist &>/dev/null
if [ $? = 0 ];then
echo "YUM源可用,正在安装服务....."
else
echo "YUM源不可用,请检查后执行!" exit
fi
yum -y install ipvsadm &>/dev/null
read -p "请选择LVS模式(NAT|DR|TUN): " mod
if [ $mod == "NAT" ] || [ $mod == "nat" ];then
ip
nat
elif [ $mod == "DR" ] || [ $mod == "dr" ];then
ip
dr
elif [ $mod == "TUN" ] || [ $mod == "tun" ];then
ip
tun
else
echo "输入参数无效请检查后确定" exit
fi

 

RealServer 配置

###################################################################
# File Name: lvs_RealServer.sh
# Author: 寻音
# E-mail: lnhxzwb@126.com
# Created Time: Thu 19 Apr 2018 05:38:49 AM CST
#==================================================================
#!/bin/bash

#提示
show ()
{
echo "###################################################################"
echo "※ 本环境基于Centos7系统 ※ "
echo "※ 可选安装RealServer模式: NAT|DR|TUN ※ "
echo "※ 如果安装环境不同,请更改相关参数或手动安装 ※ "
echo "==================================================================="

}


nat ()
{
echo "正在配置,请稍等....."
gateway=$(grep GATEWAY $path/ifcfg-$eth)
sed -i "s/$gateway/GATEWAY=$vip" $path/ifcfg-$eth
systemctl restart network
if [ $? = 0 ];then
echo "RealServer配置完成"
else
echo "RealServer配置失败,请检查后执行!" exit
fi

}


dr ()
{
echo "正在配置,请稍等....."
cat <<EOF >$path/ifcfg-lo:0
BOOTPROTO=static
NAME=lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=$vip
NETMASK=255.255.255.255
EOF
systemctl restart network
echo "net.ipv4.conf.all.arp_ignore = 1" >>/etc/sysctl.conf 
echo "net.ipv4.conf.all.arp_announce = 2" >>/etc/sysctl.conf 
echo "net.ipv4.conf.lo.arp_ignore = 1" >>/etc/sysctl.conf 
echo "net.ipv4.conf.lo.arp_announce = 2" >>/etc/sysctl.conf 
sysctl -p &>/dev/null
if [ $? = 0 ];then
echo "RealServer配置完成"
else
echo "RealServer配置失败,请检查后执行!" exit
fi

}


tun ()
{
echo "正在配置,请稍等....."
modprobe ipip
ifconfig tunl0 $vip netmask 255.255.255.255
systemctl restart network
echo "net.ipv4.conf.tunl0.arp_ignore = 1" >>/etc/sysctl.conf
echo "net.ipv4.conf.tunl0.arp_announce = 2" >>/etc/sysctl.conf
echo "net.ipv4.conf.all.arp_ignore = 1" >>/etc/sysctl.conf
echo "net.ipv4.conf.all.arp_announce = 2" >>/etc/sysctl.conf
echo "net.ipv4.conf.tunl0.rp_filter = 0" >>/etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter = 0" >>/etc/sysctl.conf
sysctl -p &>/dev/null
if [ $? = 0 ];then
echo "RealServer配置完成"
else
echo "RealServer配置失败,请检查后执行!" exit
fi

}

#rsip配置
ip()
{
read -p "请输入VIP: " vip
}


show
path=/etc/sysconfig/network-scripts/
eth=$(ifconfig |grep ens|cut -d : -f 1)

read -p "请选择LVS模式(NAT|DR|TUN): " mod
if [ $mod == "NAT" ] || [ $mod == "nat" ];then
ip
nat
elif [ $mod == "DR" ] || [ $mod == "dr" ];then
ip
dr
elif [ $mod == "TUN" ] || [ $mod == "tun" ];then
ip
tun
else
echo "输入参数无效请检查后确定" exit
fi

 

 

 


温馨提示:如无特殊说明,本站文章均为作者原创,转载时请注明出处及相应链接!

发表评论