jenkins双向备份;高可用部署;
如果把一个Jenkins的整个目录赋值到另一个Jenkins的目录,则需要务必保持两个Jenkins版本是相同的,不然容易出现Jenkins插件兼容性问题。
另外使用inotify+rsync备份的时候(从主Jenkins往备Jenkins备份),注意,一旦切换到备Jenkins,就要里面终止同步进程,知道为什么吗?
原因是,如果不停止同步任务,那么主Jenkins的内容会不停的同步到备Jenkins,那么在备Jenkins上的新Jobs会被删除掉,这样备Jenkins上不能使用的。我的同步策略是,保持备Jenkins的/var/lib/jenkins目录和主Jenkins一致,那么比如/var/lib/jenkins/jobs的内容也一致
方案是:
1、通过keepalived实现jenkins主备,一个虚拟IP后面两个物理IP。
2、通过inotify+rsync实现master的jobs目录、workspace(可以不同步)同步到slave上的jobs、workspace,这样切换到slave的jenkins,才能保证任务是是相同的。
后来把整个Jenkins目录都备份了,查看yum安装的jenkins安装目录为/var/lib/jenkins,把这个目录都备份后,从主jenkins切换到备jenkins后,用户感知到的前端是完全相同的,其中包括每个Jobs的配置,slave节点配置,Jenkins的全局配置等等,其实就是同一个Jenkins,这样保持了主备的一致性。对主jenkins的一些更改,自然同步到备jenkins上。

这些视图信息保存在/var/lib/jenkins/config.xml里

节点信息保存在/var/lib/jenkins/nodes里

jobs任务保存在/var/lib/jenkins/jobs里

3、备机需要重启,以使从master同步过来的jobs内容在slave上的jenkins生效。
4、一旦切换到slave,应该立即停止master向slave的同步操作,即应该立即停止rsync同步进程,不然slave上新产生的内容会被删除掉
其实可以优化同步策略,只把主Jenkins的内容同步到备Jenkins上,而不删除备Jenkins上新增的内容
5、同时开启slave的rsync进程,开始反向同步:这里是双向同步
基本上有下面几个状态:
master的jenkins工作时,开启master的rsync进程,向slave同步
master的jenkins异常时,关闭master的rsync进程,关闭master的jenkins进程
slave的jenkins开始工作时,启动slave的jenkins,启动slave的rsync进程,开始向master同步
master异常恢复后,关闭slave的jenkins进程,关闭slave的rsync进程
注意这里异常判断条件是看虚拟IP指向那台物理IP,指向的认为是正常的
jenkins性能提升:http://discuss.greatops.net/t/jenkins/32
jenkins双向备份;高可用部署;的更多相关文章
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- eql高可用部署方案
运行环境 服务器两台(后面的所有配置案例都是以10.96.0.64和10.96.0.66为例) 操作系统CentOS release 6.2 必须要有共同的局域网网段 两台服务器都要安装keepali ...
- MooseFS及其高可用部署
MooseFS的工作原理分析 MooseFS(下面统一称为MFS)由波兰公司Gemius SA于2008年5月30日正式推出的一款Linux下的开源存储系统,是OpenStack开源云计算项目的子项目 ...
- Redis高可用部署及监控
Redis高可用部署及监控 目录 一.Redis Sentinel简介 二.硬件需求 三.拓扑结构 .单M-S结构 .双M-S结构 .优劣对比 四.配置部 ...
- 006.SQLServer AlwaysOn可用性组高可用部署
一 数据库镜像部署准备 1.1 数据库镜像支持 有关对 SQL Server 2012 中的数据库镜像的支持的信息,请参考:https://docs.microsoft.com/zh-cn/previ ...
- kubernetes 1.15.1 高可用部署 -- 从零开始
这是一本书!!! 一本写我在容器生态圈的所学!!! 重点先知: 1. centos 7.6安装优化 2. k8s 1.15.1 高可用部署 3. 网络插件calico 4. dashboard 插件 ...
- CDH构建大数据平台-Kerberos高可用部署【完结篇】
CDH构建大数据平台-Kerberos高可用部署[完结篇] 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装Kerberos相关的软件包并同步配置文件 1>.实验环境 ...
- Cinder 架构分析、高可用部署与核心功能解析
目录 文章目录 目录 Cinder Cinder 的软件架构 cinder-api cinder-scheduler cinder-volume Driver 框架 Plugin 框架 cinder- ...
- kubernetes1.7.6 ha高可用部署
写在前面: 1. 该文章部署方式为二进制部署. 2. 版本信息 k8s 1.7.6,etcd 3.2.9 3. 高可用部分 etcd做高可用集群.kube-apiserver 为无状态服务使用hap ...
- LVS+Keepalived高可用部署
一.LVS+Keepalived高可用部署 一.keepalived节点部署 1.安装keepalived yum install keepalived ipvsadm -y mkdir -p /op ...
随机推荐
- Charles----- 4.2.7 版本 破解方法
打开Charles,点击help,选择registered........ 输入信息: Registered Name: https://zhile.io License Key: 48891cf20 ...
- ceph存储池基本管理
一,设置默认存储池的pg或pgp的值(推荐100左右),在ceph.conf文件里增加: osd pool default pg num = osd pool default pgp num = 二, ...
- IEEEXtreme 10.0 - Mysterious Maze
这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Mysterious Maze 题目来源 第10届IEEE极限编程大赛 https://www.hacker ...
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...
- JavaScript与C#互通的DES加解密算法
原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...
- C语言的第一天
代码根本C语言(我不知道这句话,严不严谨) 2019年4月30日(day01) 软件Code::blocks #include <stdio.h> //导入标准的io库 #include ...
- bzoj 1108
思路:水题, 将所有点按x轴对称反转,就变成了两堆点的坐标和的差.. #include<bits/stdc++.h> #define LL long long #define fi fir ...
- 【C#】利用反射构建实体
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- 湖南大学ACM程序设计新生杯大赛(同步赛)L - Liao Han
题目描述 Small koala special love LiaoHan (of course is very handsome boys), one day she saw N (N<1e1 ...
- Python - 软件设计规范
为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风 ...