lvs DR模式,一键部署脚本:
在这个脚本VIP和RIP等都是可以自定义的。并且脚本可以根据主机名自动的判断是配置vip和rip,即实现一个脚本到处执行。
#!/bin/bash#by zyz############################## 获取主机名HOSTNAME=`hostname`# 设置VIP和RIP的主机名变量VIP_HOSTNAME="LVS-72-200"RIP_HOSTNAME_1="RIP-72-127"RIP_HOSTNAME_2="RIP-72-128"VIP=192.168.72.200RIP1=192.168.72.127RIP2=192.168.72.128PORT=80# VIP服务器的VIP子网卡VIP_INTERFACE=ens32:1# 后端服务器的lo子网卡LO_INTERFACE=lo:1# VIP和RIP出去的网关,该网关为路由器的内网地址GATEWAY=192.168.72.130# 配置LVS:if [ "$HOSTNAME" = "$VIP_HOSTNAME" ];thencase "$1" instart)ping -c2 $VIP &>/dev/nullif [ $? -ne 0 ];thencd /etc/sysconfig/network-scripts/cat > ifcfg-$VIP_INTERFACE <<-EOFTYPE="Ethernet"BOOTPROTO="none"DEVICE="${VIP_INTERFACE}"ONBOOT="yes"IPADDR=$VIPPREFIX=24GATEWAY=$GATEWAYEOFifup ${VIP_INTERFACE}# 设置VIP虚拟服务器/usr/sbin/ipvsadm -A -t $VIP:$PORT -s rrfor i in $RIP{1..2};do/usr/sbin/ipvsadm -a -t $VIP:$PORT -r ${i}doneecho -e "\nVIP服务部署成功!配置如下:\n`ipvsadm -ln`"elseecho "检查VIP是否已经被使用!"fi;;stop)/usr/sbin/ipvsadm -D -t $VIP:$PORTcd /etc/sysconfig/network-scripts/ifdown ${VIP_INTERFACE} &>/dev/nullrm -rf ifcfg-${VIP_INTERFACE}route del default gw $GATEWAY &>/dev/nullecho "VIP service stopped!";;status)ipvsadm -ln;;*)echo "Usage: $0 {start|stop|status}";;esac# 配置RIPelif [ "$HOSTNAME" = "$RIP_HOSTNAME_1" ];thencase "$1" instart)cd /etc/sysconfig/network-scripts/cat > ifcfg-$LO_INTERFACE <<-EOFDEVICE=$LO_INTERFACEIPADDR=$VIPNETMASK=255.255.255.255ONBOOT=yesNAME=loopbackEOFifdown $LO_INTERFACE &>/dev/null && ifup ${LO_INTERFACE}echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceroute add default gw $GATEWAY &>/dev/null;;stop)ifdown $LO_INTERFACE &>/dev/nullcd /etc/sysconfig/network-scripts/rm -rf ifcfg-$LO_INTERFACEroute del default gw $GATEWAY &>/dev/null;;status)echo "VIP: `ip a | awk '/lo:1/{print $2}'`"echo "GATEWAY: `route -n | awk 'NR==3{print $2}'`";;*)echo "$0: Usage: $0 {start|status|stop}"exit 1;;esacelif [ "$HOSTNAME" = "$RIP_HOSTNAME_2" ];thencase "$1" instart)cd /etc/sysconfig/network-scripts/cat > ifcfg-$LO_INTERFACE <<-EOFDEVICE=$LO_INTERFACEIPADDR=$VIPNETMASK=255.255.255.255ONBOOT=yesNAME=loopbackEOFifdown $LO_INTERFACE &>/dev/null && ifup ${LO_INTERFACE}echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceroute add default gw $GATEWAY &>/dev/null;;stop)ifdown $LO_INTERFACE &>/dev/nullcd /etc/sysconfig/network-scripts/rm -rf ifcfg-$LO_INTERFACE;;status)echo "VIP: `ip a | awk '/lo:1/{print $2}'`"echo "GATEWAY: `route -n | awk 'NR==3{print $2}'`";;*)echo "$0: Usage: $0 {start|status|stop}"exit 1;;esacfi
