环境

两个调度器dr1、dr2,两台真实机rs1、rs2。两台真实机安装httpd,并编辑主页内容用于验证

vip="192.168.132.250"
dr1="192.168.132.120"
dr2="192.168.132.121"
rs1="192.168.132.131"
rs2="192.168.132.134"

配置

#/bin/bash
vip="192.168.132.250"
dr1="192.168.132.120"
dr2="192.168.132.121"
rs1="192.168.132.131"
rs2="192.168.132.134" #dr1配置keepalived
yum install -y keepalived
cat > /etc/keepalived/keepalived.conf <<EOF
global_defs {
} vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
$vip/
}
} virtual_server $vip {
delay_loop
lb_algo rr
lb_kind DR
protocol TCP real_server $rs1 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
}
}
real_server $rs2 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
EOF
systemctl restart keepalived yum install -y ipvsadm sshpass
sed -i 35c"StrictHostKeyChecking no" /etc/ssh/ssh_config
setenforce
systemctl stop firewalld #dr1复制keepalived文件到dr2
sshpass -p root ssh $dr2 "yum install -y keepalived"
sshpass -p root scp /etc/keepalived/keepalived.conf $dr2:/etc/keepalived/keepalived.conf #dr2配置keepalived
dr2_cmd="
setenforce ;
systemctl stop firewalld;
sed -i 's/MASTER/BACKUP/g' /etc/keepalived/keepalived.conf;
sed -i 's/100/90/g' /etc/keepalived/keepalived.conf;
systemctl restart keepalived;
"
sshpass -p root ssh $dr2 "$dr2_cmd" #rs1,rs2配置lvs
cmd="
setenforce ;
firewall-cmd --add-port=/tcp;
ifconfig lo: $vip broadcast $vip netmask 255.255.255.255 up;
route add -host $vip dev lo:;
echo "" > /proc/sys/net/ipv4/conf/lo/arp_ignore;
echo "" > /proc/sys/net/ipv4/conf/lo/arp_announce;
echo "" > /proc/sys/net/ipv4/conf/all/arp_ignore;
echo "" > /proc/sys/net/ipv4/conf/all/arp_announce;
service httpd restart
"
sshpass -p root ssh $rs1 "$cmd"
sshpass -p root ssh $rs2 "$cmd"

shell脚本一键部署lvs+keepalived的更多相关文章

  1. Shell脚本一键部署——源码编译安装MySQL及自动补全工具

    Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...

  2. shell脚本一键部署nginx

    一键部署nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

  3. shell脚本一键部署——Redis(直接复制执行)亲测100% 有效

    首先所需软件包拖进目录,然后编辑一个脚本,复制一下脚本,source执行一下即可 #!/bin/bash echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式== ...

  4. Centos 6.4上面用Shell脚本一键安装vsftpd

    Centos 6.4上面用Shell脚本一键安装vsftpd install.sh #!/bin/bash if [ `uname -m` == "x86_64" ];then m ...

  5. Centos 6.4上面用Shell脚本一键安装mysql 5.6.15

    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machi ...

  6. shell脚本一键同步集群时间

    shell脚本一键同步集群时间 弋嘤捕大 椿澄辄 ψ壤 茇徜燕 ㄢ交涔沔 阚龇棚绍 テ趼蜱棣 灵打了个寒颤也没有去甩脱愣是拖着 喇吉辔 秋北酏崖 琮淄脸酷 茇呶剑 莲夤罱 陕遇骸淫  ...

  7. shell脚本自动化部署服务

    shell脚本自动化部署 !/bin/bash #export PATH=$PATH:/export/maven/bin run_flag_dir="/data0/shell/deploy_ ...

  8. 安装完Ubuntu后通过shell脚本一键安装软件

    安装完Ubuntu后通过shell脚本一键安装软件 以下代码中#是单行注释 :<<! ! 是多行注释. 运行的时候需要把多行注释去掉. 比如把以下代码保存为install.sh, 那么在终 ...

  9. shell脚本自动化部署

    由于公司技术部团队较小,没有专门的运维团队,所以运维工作技术部承包了. 一.纯人工部署是这样的: 1. 本地打包:一般 maven clean package 2. 借助xftp上传到服务器对应目录 ...

随机推荐

  1. python 31 升级版解决粘包现象

    目录 1. recv 工作原理 2.升级版解决粘包问题 3. 基于UDP协议的socket通信 1. recv 工作原理 1.能够接收来自socket缓冲区的字节数据: 2.当缓冲区没有数据可以读取时 ...

  2. cookies和sessionstorage和localstorage区别

    相同点:客户端都会存储 不同点 不同点 存储大小 有效时间 数据与服务器交互方式 cookies <=4K 在设置cookie过期之前一直有效(无论窗口浏览器是否关闭) 正常情况下,cookie ...

  3. python学习——文件操作

    打开文件 f = open(文件名, 文件打开模式,文件编码) ‘w’:只写模式,它是只能写,而不能读的.如果用’w’模式打开一个不存在的文件,则会创建新的文件开始写入:如果用’w’模式打开一个已存在 ...

  4. 设计模式(C#)——02工厂模式

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321       在简单工厂模式中讲到简单工厂模式的缺点:难以扩展,一旦添加新运算就必须修改简单工厂方法.       工厂方法模式: ...

  5. Fire Balls 05——坦克和子弹的制作以及炮台发射子弹

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  6. Codeforces Round #511 (Div. 2)-C - Enlarge GCD (素数筛)

    传送门:http://codeforces.com/contest/1047/problem/C 题意: 给定n个数,问最少要去掉几个数,使得剩下的数gcd 大于原来n个数的gcd值. 思路: 自己一 ...

  7. POJ-1511 Invitation Cards( 最短路,spfa )

    题目链接:http://poj.org/problem?id=1511 Description In the age of television, not many people attend the ...

  8. CodeForces Round #499 Div2

    A: Stages 题意: 给你n个字符, 现在需要从中选取m个字符,每个字符的花费为在字母表的第几位,并且如果选了某个字符, 那么下一个选择的字符必须要在字母表的2位之后, 假如选了e 那么 不能选 ...

  9. essential C++中的一些疑问记录

    关于书中P87下列代码中,less<int>的使用,我目前的理解是 less<int> 是一个类型,& it 是对外部参数的引用.但是为何要加上引用,另外 调用该函数时 ...

  10. 【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案

    [Swagger]可能是目前最好的Spring Boot集成 swagger 的方案 ![](https://img2018.cnblogs.com/blog/746311/201909/746311 ...