Ubuntu之Gerrit安装

20 篇文章 0 订阅
19 篇文章 0 订阅

简介

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

前提

  • 创建邮箱gerrit@vzjc.com

  • 为URL http://review.zjc.com创建DNS或把映射关系加入/etc/hosts

    • $ sudo vim /etc/hosts
    • 10.1.6.49 zjc.com zjc vzjc.com mail.vzjc.com gitlab.zjc.com review.zjc.com

项目和下载地址

http://code.google.com/p/gerrit/
http://gerrit-releases.storage.googleapis.com/index.html

被墙了,如果无法翻墙,就用下面的安装包吧 (2015-08-25)

http://download.csdn.net/detail/stwstw0123/9044005

安装Gerrit依赖

Gerrit 的包是 java 格式,需要安装 jre。可以用OpenJDK
本文是基于OpenJDK来配置的,如果机器上存在多个JDK版本或者想依赖于Oracle JDK,则作相应修改吧

$ sudo apt-get install default-jre daemon

创建 Gerrit 数据库

安装Gitlab中已经安装了mysql,下面只需要创建库就可以了。注意此处的 gerrituser , gerritpass 为新表拥有权限的用户名和密码


$ mysql -u root -p

> create database gerritdb;
> grant all on gerritdb.* to 'gerrituser'@'localhost' identified by 'gerritpass';

安装开始

创建一个gerrit@zjc.com的账户

$ sudo adduser --disabled-login --gecos 'Gerrit' gerrit

安装gerrit

enter the folder of gerrit war

$ sudo java -jar gerrit-2.11.3.war init -d /home/gerrit/gerrit
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore

*** Gerrit Code Review 2.11.2
*** 

Create '/home/gerrit/gerrit' [Y/n]?

*** Git Repositories
*** 

Location of Git repositories   [git]: 

*** SQL Database
*** 

Database server type           [h2]: mysql

Gerrit Code Review is not shipped with MySQL Connector/J 5.1.21
**  This library is required for your configuration. **
Download and install it now [Y/n]? 
Downloading http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar ... OK
Checksum mysql-connector-java-5.1.21.jar OK
Server hostname                [localhost]: 
Server port                    [(mysql default)]: 
    注意:下面四行为mysql配置数据库时候的信息了
    Database name                  [reviewdb]: gerritdb
Database username              [root]: gerrituser
gerrituser's password          : 
              confirm password : 

*** Index
*** 

Type                           [LUCENE/?]: 

*** User Authentication
*** 

Authentication method          [OPENID/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 

*** Review Labels
*** 

安装Verified标签,如果没安装,在[Ubuntu之Gitlab、Gerrit、Jenkins协调工作配置](http://blog.csdn.net/stwstw0123/article/details/47615535) 里则需要配置Verified标签

Install Verified label         [y/N]?  y

*** Email Delivery
*** 
        下面几行很明显为SMTP的信息
SMTP server hostname           [localhost]: mail.vzjc.com
SMTP server port               [(default)]: 587
SMTP encryption                [NONE/?]: tls

根据具体情况来配置
SMTP username                  [root]: gerrit@vzjc.com
gerrit@zjc.com's password      : 
              confirm password : 

*** Container Process
*** 

Run as                         [root]: gerrit
Java runtime                   [/usr/lib/jvm/java-7-openjdk-amd64/jre]: 
Copy gerrit-2.11.2.war to /etc/gerrit/bin/gerrit.war [Y/n]? 
Copying gerrit-2.11.2.war to /etc/gerrit/bin/gerrit.war

*** SSH Daemon
*** 

Listen on address              [*]: 
Listen on port                 [29418]: 

Gerrit Code Review is not shipped with Bouncy Castle Crypto SSL v151
  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/bcpkix-jdk15on-151.jar ... OK
Checksum bcpkix-jdk15on-151.jar OK

Gerrit Code Review is not shipped with Bouncy Castle Crypto Provider v151
** This library is required by Bouncy Castle Crypto SSL v151. **
Download and install it now [Y/n]? 
Downloading http://www.bouncycastle.org/download/bcprov-jdk15on-151.jar ... OK
error: SHA-1 checksum does not match
此处不匹配,我也不懂了,选`y`吧 | 还有时候会直接校验通过,那么就恭喜了
Use bcprov-jdk15on-151.jar anyway [y/n]? y
Generating SSH host key ... rsa(simple)... done

*** HTTP Daemon
*** 

Behind reverse proxy           [y/N]? y
Proxy uses SSL (https://)      [y/N]? 
Subdirectory on proxy server   [/]: 
Listen on address              [*]: 
Listen on port                 [8081]: 8082
Canonical URL                  [http://zjc.com/]: http://review.zjc.com/

*** Plugins
*** 

Installing plugins.
Install plugin reviewnotes version v2.11.2 [y/N]? y
Install plugin replication version v2.11.2 [y/N]? y
Install plugin download-commands version v2.11.2 [y/N]? y
Install plugin singleusergroup version v2.11.2 [y/N]? y
Install plugin commit-message-length-validator version v2.11.2 [y/N]? y
Initializing plugins.
No plugins found with init steps.

下面就不用理了,我们会用nginx来做转发和访问控制
Initialized /etc/gerrit
Executing /etc/gerrit/bin/gerrit.sh start
Starting Gerrit Code Review: OK
Waiting for server on review.zjc.com:80 ... OK
Opening http://review.zjc.com/#/admin/projects/ ...OK

修改gerrit安装目录所有者为gerrit用户

$ cd /home/gerrit
$ sudo chown -R gerrit: gerrit/

如果邮箱证书没有经过有效签名

$ cd /home/gerrit
$ sudo -u gerrit -H vim gerrit/etc/gerrit.config 

增加

[sendemail]
    [...]
    sslVerify = false

设置邮件发送地址

$ cd /home/gerrit
$ sudo -u gerrit -H vim gerrit/etc/gerrit.config 

增加

[sendemail]
    [...]
    from = CodeReview<gerrit@vzjc.com>

Nginx为Gerrit做端口转发和访问控制

如果没有配置过Ngin的虚拟主机,则为Nginx配置虚拟主机 - 详见 Ubuntu之nginx配置虚拟主机vhost

配置后会生成一个虚拟主机配置文件/etc/nginx/sites-available/mydefault.vhost.稍后我们的虚拟主机都放将配置在这个文件里

修改Nginx虚拟主机配置文件

$ sudo vim /etc/nginx/sites-available/mydefault.vhost

增加下面内容:

server {
  listen *:80;
  server_name review.zjc.com;
  allow   all;
  deny    all;
  auth_basic "ZJC INC. Review System Login";
  auth_basic_user_file /home/gerrit/gerrit/etc/htpasswd.conf;

  location / {
    proxy_pass  http://review.zjc.com:8082;
  }
}

创建 htpasswd.conf 文件,并添加 admin 用户、密码到文件中

$ sudo -u gerrit -H touch /home/gerrit/gerrit/etc/htpasswd.conf
$ sudo apt-get install apache2-utils
$ sudo -u gerrit -H htpasswd /home/gerrit/gerrit/etc/htpasswd.conf admin

重新加载Nginx

$ sudo service nginx reload

Gerrit启动脚本

$ sudo cp /home/gerrit/gerrit/bin/gerrit.sh /etc/init.d/gerrit
$ sudo vim /etc/init.d/gerrit

在代码 47 行添加,其实就是在脚本有效代码的最上面添加
GERRIT_SITE=/home/gerrit/gerrit/

$ sudo update-rc.d gerrit defaults 21
$ sudo service gerrit restart

访问

默认第一个登录 Gerrit 的用户是管理员

  • 在浏览器 url 输入:http://review.zjc.com/,在弹出的验证框中输入刚才创建的用户名admin和它的密码
  • 进入后更新全名
  • 更新Email为admin@vzjc.com
  • 登录邮箱admin@vzjc.com,点击验证连接,完成验证

引用

http://longgeek.com/2013/12/26/ci-system-structures-iii-gerrit-installation-configuration/
http://openwares.net/linux/gerrit2_setup.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值