gerrit安装指南
Gerrit的基本介绍
Gerrit 是一个Git服务器,它基于 git 版本控制系统,使用网页界面来进行审阅工作。Gerrit 旨在提供一个轻量级框架,用于在代码入库之前对每个提交进行审阅,更改将上载到 Gerrit,但实际上并不成为项目的一部分,直到它们被审阅和接受 。代码审查是Gerrit的核心功能,但仍是可选的,团队可以决定不进行代码审查而工作。
Gerrit 是一个临时区域, 在提交的代码成为代码库的一部分之前, 可以对其修改进行检查。代码修改的作者将提交作为对 Gerrit 的更改。在Gerrit中,每个更改都存储在暂存区域中,可以在其中进行检查和查看。仅当它被批准并提交时,它才被应用到代码库中。
其实,Gerrit 就相当于是在开发员将本地修改提交到代码仓库之前的一个审核工具。在这个审核工具中,你可以查看该提交者在本次的的提交中的修改,然后再决定是否可以将该修改提交给仓库。

1. 前期准备
1.1. Jdk安装
下载网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

- 上传jdk文件夹 cd /usr/local rz jdk-1.8.0_11
- 添加环境变量vim /etc/profile 添加如下内容:JAVA_HOME根据实际目录来
- JAVA_HOME=/usr/local/jdk1.8.0_11
- CLASSPATH=$JAVA_HOME/lib/
- PATH=$PATH:$JAVA_HOME/bin
- export PATH JAVA_HOME CLASSPATH
- 执行source /etc/profile刷新环境变量
- 查看版本 java -version

1.2. Git安装
提示:建议不要用yum -y install git的方式安装git,这样安装的git版本过低,在与gerrit集成过程中可能会出问题,如果已经安装建议卸载重新安装
- 安装git依赖包:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
- 新建 git目录,cd /usr/bin/;mkdir git
- 下载wget工具,已有的机器可以不用下载:yum -y install git
- 下载git安装包 下载地址:wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.12.2.tar.gz
- 解压git,tar -xzvf **.tar.gz
- 进入 解压目录 安装git:make prefix=/usr/bin/git all make prefix=/usr/bin/git install
- 配置环境变量 vim /etc/profile,export PATH=/usr/bin/git/bin:$PATH,刷新环境变量让他生效 source /etc/profile ;
- 查看安装是否成功 git -version
- 生成秘钥:ssh-keygen,一直回车直到生成

进入到秘钥界面将公钥拷贝给运维添加到gitlab上,cd /root/.ssh(还没有搭建gitlab的忽略)

配置git
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global color.ui true 设置语法高亮
1.3. Nginx安装
1.3.1. 下载Nginx及相关组件
Linux系统是Centos 6.5 64位,我直接切换到root用户下安装

进入用户目录下载程序

下载相关组件
[root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
省略安装内容...
[root@localhost src]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
省略安装内容...
[root@localhost src]# wget http://zlib.net/zlib-1.2.11.tar.gz
省略安装内容...
安装c++编译环境,如已安装可略过
[root@localhost src]# yum install gcc-c++
省略安装内容...
期间会有确认提示输入y回车
Is this ok [y/N]:y
省略安装内容...
1.3.2. 安装Nginx及相关组件
openssl安装:
[root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz
省略安装内容...
[root@localhost src]# cd openssl-fips-2.0.10
[root@localhost openssl-fips-2.0.10]# ./config && make && make install
省略安装内容...
pcre安装
[root@localhost src]# yum install pcre pcre-devel
省略安装内容...
zlib安装
[root@localhost src]# tar zxvf zlib-1.2.11.tar.gz
省略安装内容...
[root@localhost src]# cd zlib-1.2.11
[root@localhost zlib-1.2.11]# ./configure && make && make install
省略安装内容...
nginx安装
[root@localhost src]# tar zxvf nginx-1.10.2.tar.gz
省略安装内容...
[root@localhost src]# cd nginx-1.10.2
[root@localhost nginx-1.10.2]# ./configure && make && make install
省略安装内容...
1.3.3. 启动Nginx
先找一下nginx安装到什么位置上了

进入nginx目录并启动

进入浏览器,输入服务器IP会看到下图,说明nginx启动成功

1.4. htpasswd管理工具安装
htpasswd是Apache的Web服务器内置的工具,用于创建和更新储存用户名和用户基本认证的密码文件。由于该工具是Apache的Web服务器内置的工具,所以直接安装Apache,在对应的bin目录下可以看到该命令。还可以直接安装httpd-tools这个工具包,比如:yum install httpd-tools
安装:yum install httpd-tools
中途会有个提示是否继续,直接回车就可以了

2. Gerrit环境部署
2.1. 下载gerrit
在官方下载最新的Gerrit版本,本文中的版本为3.13
下载地址:https://www.gerritcodereview.com/

2.2. 安装gerrit
1、新建一个gerrit目录并上传安装包
mkdir gerrit
cd gerrit
rz

开始安装gerrit
[root@localhost gerrit]# java -jar gerrit-3.1.3.war init -d review_site
根据提示一步步安装gerrit
*** Gerrit Code Review 3.1.3
***
Create '/usr/local/src/gerrit/review_site' [Y/n]? y
#程序会自动创建该文件,必须输入”Y“,如果输入"N"则程序会退出,默认就是"Y",因此我们直接回车应该也可以的
*** Git Repositories
***
Location of Git repositories [git]:/data/gerrit/repository
#指定Git存储库,最好指定一个不存在的目录,他会自动创建。
*** Index***
Type [lucene/?]:
#默认即可。
*** User Authentication***
Authentication method [openid/?]: HTTP
#认证方法输入HTTP,我们要使用反向代理
Get username from custom HTTP header [y/N]? n
#询问咱们是否从自定义HTTP头获取用户名,我们输入”n“
SSO logout URL :
Enable signed push support [y/N]? y
#启用签名的推送支持
*** Review Labels***
Install Verified label [y/N]?
#安装已验证标签,默认即可。
SMTP server hostname [localhost]: smtp.exmail.qq.com
#输入自动发送邮件的smtp服务器,这里我们用的是腾讯企业邮箱
SMTP server port [(default)]: 465
#465/994时SSL协议端口后,25是非SSL协议端口号
SMTP encryption [none/?]: SSL
#如果上一步输入的是465/994,此处输入SSL,否则直接回车即可
SMTP username [root]: jsyfzxqa@corp.to8to.com
#此处是你定义自动发送邮件的邮箱地址
jsyfzxqa@corp.to8to.com's password :
#接着我们需要输入2次咱们邮箱的授权码。
confirm password :
Run as [root]: #指定容器运行的进程用户,默认为root用户,我们默认即可
Java runtime [/yinzhengjie/softwares/jdk1.8.0_201/jre]:
#JAVA的运行环境。如果它识别的有误,你可以指定你服务器的环境
Copy gerrit-3.1.3.war to review_site/bin/gerrit.war [Y/n]? y
#拷贝gerri安装包
Copy gerrit-3.1.3.war to review_site/bin/gerrit.war
*** SSH Daemon***
Listen on address [*]: n
#指定SSH后台服务的监听地址
Listen on port [29418]:
#指定SSH后台服务的端口号
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done
*** HTTP Daemon***
Behind reverse proxy [y/N]? y
#使用发向代理
Proxy uses SSL (https://) [y/N]? n
#不适用SSL
Subdirectory on proxy server [/]:
#指定代理服务器的子目录,默认为"/"路径,默认即可
Listen on address [*]:
#只当gerrit服务的监听地址
Listen on port [8081]: 8888
#指定gerrit的服务端口
Canonical URL [[http://localhost/]:
#指定标准连接,咱们默认即可
*** Cache***


1、安装插件,全部手动输入y,然后回车
*** Plugins***
Installing plugins.
Install plugin codemirror-editor version v3.0.0 [y/N]? y
#接下来就是询问我们是否安装插件,我们一路”y“ 即可~
Installed codemirror-editor v3.0.0
Install plugin commit-message-length-validator version v3.0.0 [y/N]? y
Installed commit-message-length-validator v3.0.0
Install plugin delete-project version v3.0.0 [y/N]? y
Installed delete-project v3.0.0
Install plugin download-commands version v3.0.0 [y/N]? y
Installed download-commands v3.0.0
Install plugin gitiles version v3.0.0 [y/N]? y
Installed gitiles v3.0.0
Install plugin hooks version v3.0.0 [y/N]? y
Installed hooks v3.0.0
Install plugin plugin-manager version v3.0.0 [y/N]? y
Installed plugin-manager v3.0.0
Install plugin replication version v3.0.0 [y/N]? y
Installed replication v3.0.0
Install plugin reviewnotes version v3.0.0 [y/N]? y
Installed reviewnotes v3.0.0
Install plugin singleusergroup version v3.0.0 [y/N]? y
Installed singleusergroup v3.0.0
Install plugin webhooks version v3.0.0 [y/N]? y
Installed webhooks v3.0.0
Initializing plugins.
Initialized /root/review_site
Reindexing projects: 100% (2/2) with: reindex --site-path review_site --threads 1 --index projects
Reindexed 2 documents in projects index in 0.3s (6.1/s)
Executing /root/review_site/bin/gerrit.sh start
Starting Gerrit Code Review: OK
Waiting for server on node108.yinzhengjie.org.cn:80 ... OK
Opening http://node108.yinzhengjie.org.cn/#/admin/projects/ ...FAILED #一开始这里有个FAILED,让我耿耿于怀,后来发现貌似对后面的操作没啥影响。暂时忽略它~
Open Gerrit with a JavaScript capable browser:
http://node108.yinzhengjie.org.cn/#/admin/projects/
You have new mail in /var/spool/mail/root
[root@localhost gerrit]#
注意这里一定要手动按Y,否则不会安装
安装完成后可以使用jps命令查看实例是否启动成功

2.3. 添加gerrit管理员账号
gerrit默认第一个添加的账号为管理员账号
Gerrit服务器使用的是HTTP认证类型,并用httpd做反向代理,创建用户使用以下命令
cd /usr/local/src/gerrit/review_site/etc
[root@localhost etc]# htpasswd -c gerrit.password admin
New password:
Re-type new password:
Adding password for user admin
根据提示输入密码即可(密码设置为123456),这样账号就创建好了。创建完成,httpd和gerrit服务不需要重启。
2.4. 检查gerrit配置文件
Gerrit配置文件在etc目录
cd /usr/local/src/gerrit/review_site/etc
vim gerrit.config

端口和git存储位置可以自己更改,但是端口位置需要和nginx配置对应起来
2.5. Nginx转发配置
进入到nginx配置目录
cd /usr/local/nginx/conf
vim nginx.conf
server {
listen *:6060;
server_name 192.168.2.71;
allow all;
deny all;
auth_basic "Welcomme to Gerrit Code Review Site!";
auth_basic_user_file /usr/local/src/gerrit/review_site/etc/gerrit.password;
location / {
proxy_pass http://192.168.2.71:6061;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}

2.6. 配置秘钥
1、gerrit和gitlab服务器生成ssh秘钥
由于前面在安装git的时候,我们已经在服务器上生成了ssh秘钥,这里我就不重复生成了,进入ssh目录查看下秘钥。
[root@test07 .ssh]# cd /root/.ssh/

2、分别复制秘钥到gerrit和gitlab中,使用cat查看秘钥,然后复制
[root@test07 .ssh]# cat id_rsa.pub

首先复制公钥到gerrit


添加成功如图:

然后添加公钥到gitlab。不同版本的gitlab公钥添加的地方不一样,但是都大同小异。一般你之前没有添加过这一步不会有异常,有异常的自己百度解决。

这种情况可能是提示你这个公钥被使用,可能是公司已经帮你统一加过秘钥了,那这个地方就不用加秘钥了

2.7. 登录gerrit网站
进入浏览器,输入刚刚部署的服务器ip+端口号
http://192.168.2.71:6060

进入界面会提示要输入用户名和密码,这个时候输入前面2.3步骤中配置的admin账号和密码就可以了。
如果输入页面的时候出现403,可以到nginx的logs目录下查看错误日志

本次错误的原因是因为nginx配置的密码文件配置错误了。修改成功后正常登录

此时gerrit已经搭建完毕
gerrit安装指南的更多相关文章
- 【Gerrit】Gerrit与Jenkins/Hudson CI服务器搭建
配置Git 很多系统(例如Linux)已经默认提供了Git,在Git主页也可以找到安装程序.对于Windows用户,最好的选择是MsysGit.请注意,如果你安装了Apple Developer To ...
- gerrit使用总结
1. 前言 最近在摸索git + gerrit代码审核的工作模式,需要安装gerrit服务器,经过一阵折腾,走了不少弯路,在此做下笔记,以便自己或者他人参考.有误的地方请指教. 我的环境如下: 环境 ...
- CentOS安装gitlab,gerrit,jenkins并配置ci流程
CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...
- Centos 安装配置gerrit
关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting ...
- nGrinder安装指南
NGrinder 由两个模块组成,其运行环境为 Oracle JDK 1.6 nGrinder controller web 应用程序,部署在Tomcat 6.x 或更高的版本 nGrinder A ...
- Gerrit增加SSL证书
在http的基础上增加SSL 配置gerrit.config文件 [gerrit] basePath = git canonicalWebUrl = https://172.16.99.212/ .. ...
- postgresql pgsql最新版安装指南及数据存储路径更改及主从配置
postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...
- 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)
注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...
- 全新 Mac 安装指南(通用篇)(推荐设置、软件安装、推荐软件)
注:本文将会不定期维护与更新,有需要的朋友请在 Github 上订阅该条 Issues:<全新 Mac 安装指南(通用篇)>. 在 Mac 电脑上只用 Windows 操作系统的同学请看到 ...
随机推荐
- 洛谷 P2212 【[USACO14MAR]Watering the Fields S】
一道最小生成树模板题,这里用的Kruskal算法,把每两点就加一条边,跑一遍最小生成树即可. #include <bits/stdc++.h> using namespace std; s ...
- 个人对于flask中蓝图的理解
什么是蓝图? 蓝图可以理解为,是一种对项目中的代码进行模块化管理的工具,相当于python中的包为什么要使用蓝图? 在一个py文件中具有多个功能代码,不利于维护和管理. 如果在其他的模块中去调用视图函 ...
- 虚拟机中Linux环境搭建
Linux系统搭建 作为一名软件测试资深工程师,在日常工作中离不开对测试环境的操作.我们测试的软件,系统都是部署在linux系统环境上,我们掌握Linux系统的日常操作是非常必要的.那么在学习Linu ...
- js常用删除
1.对象删除 1.1删除属性 用(delete 对象.属性 )的方式进行: var people={"name":"zhangsan",age:18}; del ...
- 状压DP之Mixed Up Cows G
题目 传送们 大意 约翰家有N头奶牛,第i头奶牛的编号是Si,每头奶牛的编号都是唯一的.这些奶牛最近 在闹脾气,为表达不满的情绪,她们在挤奶的时候一定要排成混乱的队伍.在一只混乱的队 伍中,相邻奶牛的 ...
- HDU - 5970 题解
题目链接 HDU - 5970 分析 很显然\(f(x,y)\)与\(f(x+y*k,y)\)的结果相同,因为它们在第一次取模后会变成相同的式子 我们再看一下数据的范围,突破口肯定在\(m\)那里 那 ...
- 一篇文章教会你如何将DOM转换为virtual DOM
[一.Virtual DOM简介] Virtual DOM是虚拟节点,它通过Javascript的Object对象模拟DOM中的节点,然后通过特定的render方法将其渲染成真实的DOM节点. 浏览器 ...
- display:inline-block 什么时候不会显示间隙?
移除空格 使用margin负值 使用font-size:0 letter-spacing word-spacing
- saver 的保存与恢复
模型保存,先要创建一个Saver对象:saver=tf.train.Saver(), max_to_keep 是用来设置保存模型的个数,默认为5,即保存最近的五个模型,saver=tf.train.S ...
- Python2爬取学生名单
背景: 学校的网站可以根据学号查学生姓名和成绩(三年后的补充:借助sql注入漏洞跳过密码,但是该网站现在已经被弃用了),所以我希望通过Python的爬虫得到年级所有同学的学号与姓名对应表. 实现: 首 ...