1.脚本结构
一个在调度器进行安装和配置的脚本,两个在真实服务器配置的脚本,它们都在同一目录下
如图所示
2.前提准备
调度器能免密登陆两台真实服务器
网卡名、VIP、RIP、端口以及调度方法的确认,根据具体操作时这些参数的值,对脚本的变量进行调整修改
3.脚本内容
调度器安装和配置脚本install_lvs_dr.sh
#!/bin/bash#IP、端口、权重、lvs模式和调度方法设置VIP=192.168.113.15RIP1=192.168.113.100RIP2=192.168.113.200PORT=80WEIGHTS=('1' '2')IPVSTYPE='-g'SCHEDULER=wrr#网卡名和内容netname=ens33#设置调度器的VIPif [ ! -f /etc/sysconfig/network-scripts/ifcfg-$netname ] ; then echo "网卡不存在!" exit 1fi(cd /etc/sysconfig/network-scripts/ && cp ifcfg-$netname{,:0} && echo "TYPE=EthernetBOOTPROTO=noneNAME=$netname:0DEVICE=$netname:0ONBOOT=yesIPADDR=$VIPPREFIX=24" > ifcfg-$netname:0 )systemctl restart network#真实服务器的配置if [ ! -f ./conf_rip1.sh ] || [ ! -f ./conf_rip2.sh ] ; then echo "没有配置真实服务器的脚本!" exit 2fissh -o StrictHostKeyChecking=no root@$RIP1 'bash -s' < ./conf_rip.sh $VIPif [ $? -ne 0 ] ; then echo "真实服务器配置错误!" exit 3fissh -o StrictHostKeyChecking=no root@$RIP2 'bash -s' < ./conf_rip.sh $VIPif [ $? -ne 0 ] ; then echo "真实服务器配置错误!" exit 3fi#部署服务if ! hash ipvsadm 2> /dev/null ; then yum -y install ipvsadmfiipvsadm -Cipvsadm -A -t $VIP:$PORT -s $SCHEDULERipvsadm -a -t $VIP:$PORT -r $RIP1 -w ${WEIGHTS} $IPVSTYPEipvsadm -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:0IPADDR=$1NETMASK=255.255.255.255NETWORK=$1BROADCAST=$1ONBOOT=yesNAME=lo:0" > ifcfg-lo:0)systemctl restart network#修改arp内核参数echo 'net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2net.ipv4.conf.lo.arp_announce = 2' >> /etc/sysctl.confsysctl -p