一、描述
1、关于gerrit
Gerrit,是利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。Gerrit实际上底层是一个Git服务器,它为在其服务器上托管的Git仓库提供一系列权限控制,以及一个用来做Code Review是Web前台页面。当然,其主要功能就是用来做Code Review。架构如图(图来自网络):
另外gerrit是java开发,因此部署时需要有jdk环境。
2、本次实战
本次实战的背景,主要是因为公司日常通过gerrit进行代码管理与审计;由于业务逻辑多,代码库也比较多,依赖gerrit系统,gerrit基于公司域环境(lday)统一认证用户权限;目前只有一套在使用,考虑到如果这台gerrit代码管理系统岩机不可用时,就无法对代码进行有效管理,影响业务的开发与上线进度,因此需要提高gerrit可用性,又由于gerrit使用频繁,团队都在使用,不能中断,因此做主从,改动较大,最终决定做一个冷备,方案如下:
gerrit的配置(除gerrit本身安装后生成的文件,及etc外)通过lsyncd(rsync)实时增量同步到做冷备的新部署的gerrit上,
当现有的gerrit不可用时,启用冷备gerrit.因此我们需要先部署一套新的gerrit ,线上gerrit使用2.13.1,因此冷备份的gerrit 版本用2.13.11 保障大版本一致即可。
3、实战环境
CentOS6.x X64 / CentOS7.x
jdk version "1.8.0_171"
gerrit 2.13.11
ip 172.16.0.185
二、gerrit安装部署
1、下载安装
2、安装jdk
由于gerrit是基于java开发的,因此我们需要安装java这里安装版本如下:
[git@gerrit_backup_185 gerrit_site]$ java -version
java version "1.8.0_171"
请到官方下载jdk这里使用jdk-8u171-linux-x64.rpm;据说openjdk也可以,我没有试!
3、添加git系统账号
# useradd git
# yum install epel-release -y
# yum install ca-certificates -y
# rpm -ivh https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-15.ius.centos6.noarch.rpm
#yum install git2u -y #安装最新的git
4、本地host配置
# /etc/hosts配置
172.16.0186 git1.pkey.cn gerrit.pkey.cn #主g