LVS-DR集群搭建脚本

1.脚本结构

一个在调度器进行安装和配置的脚本,两个在真实服务器配置的脚本,它们都在同一目录下

如图所示

2.前提准备

调度器能免密登陆两台真实服务器

网卡名、VIP、RIP、端口以及调度方法的确认,根据具体操作时这些参数的值,对脚本的变量进行调整修改

3.脚本内容

调度器安装和配置脚本install_lvs_dr.sh

#!/bin/bash

#IP、端口、权重、lvs模式和调度方法设置
VIP=192.168.113.15
RIP1=192.168.113.100
RIP2=192.168.113.200
PORT=80
WEIGHTS=('1' '2')
IPVSTYPE='-g'
SCHEDULER=wrr

#网卡名和内容
netname=ens33
#设置调度器的VIP
if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$netname ] ; then
    echo "网卡不存在!"
    exit 1
fi
(cd /etc/sysconfig/network-scripts/ && cp ifcfg-$netname{,:0} &&  echo "TYPE=Ethernet
BOOTPROTO=none
NAME=$netname:0
DEVICE=$netname:0
ONBOOT=yes
IPADDR=$VIP
PREFIX=24" > ifcfg-$netname:0 )
systemctl restart network

#真实服务器的配置
if [ ! -f ./conf_rip1.sh ] || [ ! -f ./conf_rip2.sh ] ; then
    echo "没有配置真实服务器的脚本!"
    exit 2
fi
ssh -o StrictHostKeyChecking=no root@$RIP1 'bash -s' < ./conf_rip.sh $VIP
if [ $? -ne 0 ] ; then
    echo "真实服务器配置错误!"
    exit 3
fi
ssh -o StrictHostKeyChecking=no root@$RIP2 'bash -s' < ./conf_rip.sh $VIP
if [ $? -ne 0 ] ; then
    echo "真实服务器配置错误!"
    exit 3
fi

#部署服务
if ! hash ipvsadm 2> /dev/null ; then
    yum -y install ipvsadm
fi
ipvsadm -C
ipvsadm -A -t $VIP:$PORT -s $SCHEDULER
ipvsadm -a -t $VIP:$PORT -r $RIP1 -w ${WEIGHTS} $IPVSTYPE
ipvsadm -a -t $VIP:$PORT -r $RIP2 -w ${WEIGHTS[1]} $IPVSTYPE

真实服务器配置脚本conf_rip.sh

#!/bin/bash

#配置vip地址
(cd /etc/sysconfig/network-scripts/ && cp ifcfg-lo{,:0} && echo "DEVICE=lo:0
IPADDR=$1
NETMASK=255.255.255.255
NETWORK=$1
BROADCAST=$1
ONBOOT=yes
NAME=lo:0" > ifcfg-lo:0)
systemctl restart network

#修改arp内核参数
echo 'net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2' >> /etc/sysctl.conf
sysctl -p

猜你喜欢

转载自www.cnblogs.com/luoposhanchenpingan/p/11413580.html