Gerrit安装配置手册

1.1   Gerrit简介

Gerrit一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了管理Android计划而产生。这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(GerritRietveld)。最早它是由Python写成,在第二版后,改成用JavaSQL。使用GoogleWeb Toolkit来产生前端的JavaScript

 

1.2   安装环境

本次安装环境如下。

操作系统:CentOS release 6.5 (Final)

JDK1.7.0_55

 

官网安装手册(英文版):

https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/install.html

2.1   下载

当前版本为2.9,下载地址:http://code.google.com/p/gerrit/。本文下载的文件为gerrit-2.9.war,并通过ftp工具上传至服务器。

注:此类地址目前国内已被封,可通过其他网站下载或翻墙访问。

 

2.2   数据库

gerrit可以使用H2PostgreSQLMySqlOracle数据库。本文安装使用默认H2数据库。

如使用mysql,需先创建gerrit使用的数据库和用户:

mysql
 
  CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';
  CREATE DATABASE reviewdb;
  GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
  FLUSH PRIVILEGES;

 

2.3   创建用户

本文安装使用root用户。官网建议为gerrit创建单独的用户gerrit2,用于运行gerrit,但是禁止gerrit2用户登录系统。

# adduser gerrit2
# passwd --delete gerrit2

2.4   安装

本文安装使用/usr/local/gerrit作为gerrit site的根目录。如果使用gerrit2用户安装,首先切换到gerrit2用户,可使用gerrit2主目录下的review目录作为gerritsite的根目录。

# sudo su - gerrit2
# java -jar gerrit-2.9.war init -d review

 

进入交互式安装,具体的安装配置如下:

*** Gerrit Code Review 2.8.1
*** 选项中大写字母为默认选项,如使用默认选项回车即可
Create '/home/gerrit2/review'  [Y/n]?
*** Git Repositories
*** gerrit用于存储git仓库的目录,相对于根目录review
Location of Git repositories   [git]:
*** SQL Database
***
Database server type           [h2]: 
Server hostname                [localhost]:
Server port                    [(postgresql default)]:
Database name                  [reviewdb]:
Database username              [gerrit2]:
gerrit2's password             :
              confirm password :
*** User Authentication
*** 使用HTTP认证,OPENID需要服务器连接互联网,还可以使用LDAP认证服务
 
Authentication method          [OPENID/?]: http
Get username from custom HTTP header [y/N]?
SSO logout URL                 :
*** Email Delivery
*** gerrit发送邮件设置,可以使用本地或远程SMTP服务器,
*** 只要在smtp服务器上有帐号即可。
SMTP server hostname           [localhost]: mail.gigasetdigital.com
SMTP server port               [(default)]: 25
SMTP encryption                [NONE/?]:
SMTP username                  [gerrit2]: bing.zhang@gigasetdigital.com
bing.zhang@gigasetdigital.com's password :
              confirm password :
*** Container Process
*** 使用gerrit2用户运行gerrit
Run as                         [gerrit2]:
Java runtime                   [/usr/java/jdk1.7.0_55/]:
Copy gerrit-2.8.1.war to /home/gerrit2/review/bin/gerrit.war [Y/n]?
Copying gerrit-2.8.1.war to /home/gerrit2/review/bin/gerrit.war
*** SSH Daemon
*** gerrit自带的ssh服务,与服务器自身的ssh服务无关,监听默认端口即可
*** 注意:如要使用低于1024的特权端口,authbind授权,否则ssh会绑定端口失败
Listen on address              [*]:
Listen on port                 [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
  If available, Gerrit can take advantage of features
  in the library, but will also function without it.
Download and install it now [Y/n]?
Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK
Checksum bcprov-jdk16-144.jar OK
Generating SSH host key ... rsa... dsa... done
*** HTTP Daemon
*** 这里使用nginx反向代理gerrit,所以只在loop接口监听即可。
*** 如果使用域名访问gerrit,最好将规范URL设置为域名形式,发送校验邮件时会使用到
Behind reverse proxy           [y/N]? y
Proxy uses SSL (https://)      [y/N]?
Subdirectory on proxy server   [/]:
Listen on address              [*]: 
Listen on port                 [8081]:7070
Canonical URL                  [http://127.0.0.1/]:http://192.168.19.16:7070/
*** Plugins
*** 选装插件
Install plugin download-commands version v2.8.1 [y/N]?
Install plugin reviewnotes version v2.8.1 [y/N]?
Install plugin replication version v2.8.1 [y/N]?
Install plugin commit-message-length-validator version v2.8.1 [y/N]?
Initialized /home/gerrit2/review
Executing /home/gerrit2/review/bin/gerrit.sh start
Starting Gerrit Code Review:
*** FAILED
*** error: cannot start Gerrit: exit status 1
Waiting for server on 192.168.19.16:7070 ... OK
Opening http://192.168.19.16:7070/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
http://192.168.19.16:7070/#/admin/projects/
*** 交互式安装完毕

 

2.5   启停命令

Gerrit启动停止命令如下。

review_site/bin/gerrit.sh start
review_site/bin/gerrit.sh stop
review_site/bin/gerrit.sh restart

 

2.6   自启动服务

如要配置开机自启动服务,修改文件“review_site/bin/gerrit.sh”,取消以下三行的注释。

chkconfig: 3 99 99
description: Gerrit Code Review
processname: gerrit

然后,执行以下命令。

sudo ln -snf ~/review_site/bin/gerrit.sh /etc/init.d/gerrit
sudo ln -snf /etc/init.d/gerrit /etc/rc3.d/S90gerrit

至此,Gerrit安装完成。

3.1   反向代理配置

使用nginx反向代理Gerrit,由nginx承担http认证,Gerrit不会对用户进行认证。Gerrithttp认证成功后第一个登录的用户作为管理员,其他用户皆为普通用户,由管理员为其他普通用户授权。用户第一次http认证成功后,Gerrit会为用户生成同名的Gerrit用户,只要进一步完善账户即可。比如添加Email和公钥。

修改/etc/nginx/nginx.conf,按格式增加以下内容:

# gerrit server
    server {
          listen 7070;
          server_name 192.168.19.16;
 
          location / {
                auth_basic              "Gerrit2 Code Review";
                auth_basic_user_file    /usr/local/gerrit/etc/htpasswd.conf;
                proxy_pass              http://192.168.19.16:7080;
                proxy_set_header        X-Forwarded-For $remote_addr;
                proxy_set_header        Host $host;
          }
          location /login/ {
                proxy_pass              http://192.168.19.16:7080;
                proxy_set_header        X-Forwarded-For $remote_addr;
                proxy_set_header        Host $host;
          }
        }

 

3.2   http认证文件

使用htpasswd命令为用户生成http认证配置文件,如果没有htpasswd命令需要安装apache2-utils包。

# htpasswd -d review_site/etc/htpasswd.conf admin

注:以后添加gerrit用户时,同样需要先为其配置http认证,用户登录后gerrit会为其自动生成用户,账号与http认证名字一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值