shell一键部署LVS-DR模式

shell一键部署LVS-DR模式

方法一

1.配置DR服务器脚本

#######DR自动配置脚本######

##1.关闭防火墙##
systemctl stop firewalld
setenforce 0
modprobe ip_vs

##2.安装ipvsadm软件包##
yum -y install ipvsadm.x86_64
if [ $? -ne 0 ];then
  echo"安装失败,请检查服务配置!"
  exit 1
fi

##3.配置网卡信息##
read -p "请配置DR服务器ens33网卡的ip:" ip
read -p "请配置DR服务器ens33:0网卡的ip:" ip0
read -p "请输入服务器1的ip:" pc1
read -p "请输入服务器2的ip:" pc2

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0

sed -i "16c  IPADDR=$ip" /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i "12c  NAME=ens33:0" /etc/sysconfig/network-scripts/ifcfg-ens33:0
sed -i "14c  DEVICE=ens33:0" /etc/sysconfig/network-scripts/ifcfg-ens33:0
sed -i "16c  IPADDR=$ip0" /etc/sysconfig/network-scripts/ifcfg-ens33:0
sed -i "13d"  /etc/sysconfig/network-scripts/ifcfg-ens33:0
sed -i "16,18d" /etc/sysconfig/network-scripts/ifcfg-ens33:0

##3.重启网卡##
systemctl restart network
if [ $? -ne 0 ];then
  echo "网卡配置错误!"
  exit 2
fi

##4.修改 /etc/sysctl.conf配置文件##
echo '
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0' >> /etc/sysctl.conf

sysctl -p
ipvsadm-save > /etc/sysconfig/ipvsadm

##5.重启ipvsadm服务##
systemctl start ipvsadm.service
ipvsadm -C
ipvsadm -A -t $ip0:80 -s rr
ipvsadm -a -t $ip0:80 -r $pc1:80 -g
ipvsadm -a -t $ip0:80 -r $pc2:80 -g

ipvsadm && ipvsadm -ln
if [ $? -eq 0 ];then
 echo "服务安装成功!"
fi

2.配置节点服务器1和2脚本(代码相同,改个网页内容即可)

#######服务器自动配置脚本######

##1.关闭防火墙##
systemctl stop firewalld
setenforce 0
modprobe ip_vs

##2.安装启动httpd服务##
yum -y install httpd
systemctl start httpd


##3.配置服务器ifcfg-lo:0网卡##
read -p "请输入DR服务器ens33:0网卡的ip:" ip0
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

sed -i "1c DEVICE=lo:0" /etc/sysconfig/network-scripts/ifcfg-lo:0
sed -i "2c IPADDR=$ip0" /etc/sysconfig/network-scripts/ifcfg-lo:0
sed -i "3c NETMASK=255.255.255.255" /etc/sysconfig/network-scripts/ifcfg-lo:0
sed  -i "4,7d"  /etc/sysconfig/network-scripts/ifcfg-lo:0
sed  -i "$d"  /etc/sysconfig/network-scripts/ifcfg-lo:0

##4.重启网卡##
ifup ifcfg-lo:0

##5.指向DR 服务器##
route add -host $ip0 dev lo:0
route -n

##6.修改配置文件,设置开机自启动

echo 'route add -host 192.168.47.100 dev lo:0' >> /etc/rc.d/

echo 'net.ipv4.conf.lo.arp_ignore = 1  
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2' >> /etc/sysctl.conf


#刷新
sysctl -p

##7.创建网页文件##
cd /var/www/html/
echo 'Hello,Tom!' > /var/www/html/index.html
echo "服务安装完毕!"

方法二(共享目录方法)

#!/bin/bash
b=`ip a | grep "ens33" | awk NR==2'{print}' | awk -F/ '{print$1}' | awk '{print$2}'`
z=`echo $b | awk -F. '{print$1"."$2"."$3}'`
echo -e "\033[31m 请准备四台服务器 \033[0m"
echo -e "\033[31m 本台服务器为NFS共享服务器($b)\033[0m"

read -p "请输入root密码:" h
read -p "请输入VIP:" e
read -p "请输入负载调度器IP:" a
read -p "请输入Web节点服务器1IP:" c
read -p "请输入Web节点服务器2IP:" d
read -p "请输入共享目录1(例:kgc):" f
read -p "请输入共享目录2(例:benet):" g

yum -y install expect

systemctl stop firewalld.service
setenforce 0
yum -y install nfs-utils rpcbind
mkdir /opt/$f
mkdir /opt/$g
chmod -R 777 /opt/$f
chmod -R 777 /opt/$g

echo "/opt/$f $z.0/24(rw,sync)
/opt/$g $z.0/24(rw,sync)" > /etc/exports

systemctl restart rpcbind.service
systemctl restart nfs.service




#Web1内容导入/opt/$f
cat > /opt/$f/Web1.sh <<EOF
#!/bin/bash
function Web1 {
systemctl stop firewalld.service
setenforce 0

yum -y install nfs-utils rpcbind httpd
systemctl restart rpcbind
systemctl restart httpd

mount.nfs $b:/opt/$f /var/www/html
echo "this is $f web" > /var/www/html/index.html

echo "DEVICE=lo:0
ONBOOT=yes
IPADDR=$e
NETMASK=255.255.255.255" > /etc/sysconfig/network-scripts/ifcfg-lo:0

ifup lo:0
route add -host $e dev lo:0

echo "net.ipv4.conf.lo.arp_ignore = 1                   
net.ipv4.conf.lo.arp_announce = 2               
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

sysctl -p

}
Web1 
EOF
chmod -R 777 /opt/$f


#Web2内容导入/opt/$g
cat > /opt/$g/Web2.sh <<EOF
#!/bin/bash
function Web2 {
systemctl stop firewalld.service
setenforce 0

yum -y install nfs-utils rpcbind httpd
systemctl restart rpcbind
systemctl restart httpd

mount.nfs $b:/opt/$g /var/www/html
echo "this is $g web" > /var/www/html/index.html

echo "DEVICE=lo:0
ONBOOT=yes
IPADDR=$e
NETMASK=255.255.255.255" > /etc/sysconfig/network-scripts/ifcfg-lo:0

ifup lo:0
route add -host $e dev lo:0

echo "net.ipv4.conf.lo.arp_ignore = 1                   
net.ipv4.conf.lo.arp_announce = 2               
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

sysctl -p

}
Web2
EOF
chmod -R 777 /opt/$g


#将负载调度器配置导入/opt/$f
cat > /opt/$f/DR.sh <<-EOF
#!/bin/bash
function DR {
systemctl stop firewalld
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

#配置虚拟IP地址
echo "DEVICE=ens33:0
ONBOOT=yes
IPADDR=$e
NETMASK=255.255.255.255" > /etc/sysconfig/network-scripts/ifcfg-ens33:0

systemctl restart network

echo "net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0" >> /etc/sysctl.conf

sysctl -p

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t $e:80 -s rr
ipvsadm -a -t $e:80 -r $c:80 -g
ipvsadm -a -t $e:80 -r $d:80 -g

ipvsadm
}
DR
EOF
chmod -R 777 /opt/$f


#登陆Web1执行共享脚本
/usr/bin/expect <<-EOF
spawn ssh root@$c
expect "(yes/no)" {send "yes\r"}
expect "password" {send "$h\r"}
expect "~]#" {send "yum -y install nfs-utils rpcbind httpd\r"}
expect "~]#" {send "mount.nfs $b:/opt/$f /var/www/html\r"}
expect "~]#" {send ". /var/www/html/Web1.sh\r"}
expect eof
EOF

#登陆Web2执行共享脚本
/usr/bin/expect <<-EOF
spawn ssh root@$d
expect "(yes/no)" {send "yes\r"}
expect "password" {send "$h\r"}
expect "~]#" {send "yum -y install nfs-utils rpcbind httpd\r"}
expect "~]#" {send "mount.nfs $b:/opt/$g /var/www/html\r"}
expect "~]#" {send ". /var/www/html/Web2.sh\r"}
expect eof
EOF

#登陆负载调度器执行共享脚本
/usr/bin/expect <<-EOF
spawn ssh root@$a
expect "(yes/no)" {send "yes\r"}
expect "password" {send "$h\r"}
expect "~]#" {send "yum -y install nfs-utils rpcbind httpd\r"}
expect "~]#" {send "mount.nfs $b:/opt/$f /var/www/html\r"}
expect "~]#" {send ". /var/www/html/DR.sh\r"}
expect eof
EOF

echo -e "\033[31m 此时可使用NFS共享服务器,浏览器访问VIP:$e,间隔5秒点击刷新,验证负载均衡策略是否成功。 \033[0m"

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值