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