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集成过程中可能会出问题,如果已经安装建议卸载重新安装

  1. 安装git依赖包:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
  2. 新建 git目录,cd /usr/bin/;mkdir git
  3. 下载wget工具,已有的机器可以不用下载:yum -y install git
  4. 下载git安装包 下载地址:wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.12.2.tar.gz
  5. 解压git,tar -xzvf  **.tar.gz
  6. 进入 解压目录 安装git:make prefix=/usr/bin/git all    make prefix=/usr/bin/git install
  7. 配置环境变量 vim /etc/profile,export PATH=/usr/bin/git/bin:$PATH,刷新环境变量让他生效 source /etc/profile ;
  8. 查看安装是否成功 git -version
  9. 生成秘钥: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安装指南的更多相关文章

  1. 【Gerrit】Gerrit与Jenkins/Hudson CI服务器搭建

    配置Git 很多系统(例如Linux)已经默认提供了Git,在Git主页也可以找到安装程序.对于Windows用户,最好的选择是MsysGit.请注意,如果你安装了Apple Developer To ...

  2. gerrit使用总结

    1. 前言 最近在摸索git + gerrit代码审核的工作模式,需要安装gerrit服务器,经过一阵折腾,走了不少弯路,在此做下笔记,以便自己或者他人参考.有误的地方请指教. 我的环境如下: 环境 ...

  3. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  4. Centos 安装配置gerrit

    关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting ...

  5. nGrinder安装指南

    NGrinder 由两个模块组成,其运行环境为 Oracle JDK 1.6 nGrinder controller  web 应用程序,部署在Tomcat 6.x 或更高的版本 nGrinder A ...

  6. Gerrit增加SSL证书

    在http的基础上增加SSL 配置gerrit.config文件 [gerrit] basePath = git canonicalWebUrl = https://172.16.99.212/ .. ...

  7. postgresql pgsql最新版安装指南及数据存储路径更改及主从配置

    postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...

  8. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)

    注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...

  9. 全新 Mac 安装指南(通用篇)(推荐设置、软件安装、推荐软件)

    注:本文将会不定期维护与更新,有需要的朋友请在 Github 上订阅该条 Issues:<全新 Mac 安装指南(通用篇)>. 在 Mac 电脑上只用 Windows 操作系统的同学请看到 ...

随机推荐

  1. scheduler的调度规则

    对爬虫的请求进行调度管理 允许接收requests并且会调度一个request去下载,且具有去重机制 优先级和队列不会被调度器执行(调度器不管优先级的问题),用户使用字段给每个Request对象,可以 ...

  2. 如何解决TOP-K问题

    前言:最近在开发一个功能:动态展示的订单数量排名前10的城市,这是一个典型的Top-k问题,其中k=10,也就是说找到一个集合中的前10名.实际生活中Top-K的问题非常广泛,比如:微博热搜的前100 ...

  3. mycat增加开机自启

    一.安装及配置: 见https://github.com/MyCATApache/Mycat-Server 二.增加开机自启: 1.添加开机自启脚本:vim /etc/init.d/mycat.sh, ...

  4. 通用Mapper与分页插件的集成

    SpringBoot 是为了简化 Spring 应用的创建.运行.调试.部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖 ...

  5. 「疫期集训day1」无言

    正式集训第一天,感觉没啥特别大的感受,无非是奥赛时间延长了,效率提高了,身外事少了 当然不止这些 感受1:有些曾经被恶的题现在仍然在恶心,例如昨天的farmcraft,今天的整数划分(和着多边形一块调 ...

  6. day05 垃圾回收机制(超小白讲解)

    垃圾回收机制 在学习这个抽象概念前,老习惯,灵魂二问 什么是?为什么要有? 引言:在程序运行到变量定义时,会在内存空间中存放变量值,然而内存空间是有限的,变量是无限的. Q:如何在有限的内存里存里存放 ...

  7. 前端04 /css样式

    前端04 /css样式 目录 前端04 /css样式 昨日内容回顾 css引入 选择器 基础选择器 组合选择器 属性选择器 伪类选择器 伪元素选择器 优先级(权重) 通用选择器 css样式 1高度宽度 ...

  8. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  9. Ethical Hacking - Web Penetration Testing(9)

    SQL INJECTION Discovering SQLi in GET Inject by browser URL. Selecting Data From Database Change the ...

  10. Ethical Hacking - Web Penetration Testing(4)

    CODE EXECUTION VULNS Allows an attacker to execute OS commands. Windows or Linux commands. Can be us ...