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. DTD约束和Schema约束

    DTD约束 什么是DTD? DTD(Document Type Definition),文档类型定义,用来约束XML文档.规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等. DTD约束长什 ...

  2. 20 个 CSS高级样式技巧汇总

    使用技巧会让人变的越来越懒,没错,我就是想让你变懒.下面是我收集的CSS高级技巧,希望你懒出境界. 1. 黑白图像 这段代码会让你的彩色照片显示为黑白照片,是不是很酷? img.desaturate ...

  3. Mysql查询语句执行过程

    Mysql查询语句执行过程   Mysql分为server层和存储引擎两部分,或许可以再加一层连接层   连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注 ...

  4. springboot freemark linux 找不到ftl文件

    文件路径: 再idea中这样写是可以正常导出文件,但是 打成jar放到linux上就找不到文件了. String templatePath =WordUtils.class.getResource(& ...

  5. requests接口自动化1-json序列化与反序列化

    json序列化与反序列化: 序列化:将对象转换为json字符串 反序列化:将json字符串转换为对象,比如转换为python里的字典 import json #定义字典 dict1={'usernam ...

  6. 百万级别数据Excel导出优化

    前提 这篇文章不是标题党,下文会通过一个仿真例子分析如何优化百万级别数据Excel导出. 笔者负责维护的一个数据查询和数据导出服务是一个相对远古的单点应用,在上一次云迁移之后扩展为双节点部署,但是发现 ...

  7. redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...

  8. Java中多线程的使用(超级超级详细)线程池 7

    Java中多线程的使用(超级超级详细)线程池 7 什么是线程池? 线程池是一个容纳多个线程的容器,线程池中的线程可以重复使用,无需反复创建线程而消耗过多的资源 *使用多线程的好处: 1.降低消耗,减少 ...

  9. Linux 后台启动 Redis

    1. 修改 redis.conf 首先,这里有一个坑 ! 不同的 redis版本,在安装的时候,redis.conf 的路径稍微有些不同 redis.conf 可能出现的三个位置: /etc/redi ...

  10. 【软件安装】CentOS7安装MariaDb(mysql_替代品安装)

    1.背景 Maria Db是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品.Maria Db是由Sun在Sun Micro systems合并期间被Oracle收购后,于 ...