代碼Review系統Gerrit的搭建

Gerrit,一種免費、開放源代碼的代碼審查軟件,使用網頁界面。利用網頁瀏覽器,同一個團隊的軟件程序員,可以相互審閱彼此修改後的程序代碼,決定是否能夠提交,退回或者繼續修改。
基本環境:CentOS6.8+MySQL-5.6.27+Java(1.7以上版本)+mail.rc(郵件發送)
一、 準備MySQL數據庫

mysql> create database reviewdb;
mysql> CREATE DATABASE IF NOT EXISTS reviewdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> grant all on reviewdb.* to 'gerrit'@'localhost' identified by 'gerrit';
mysql> flush privileges;

二、 下載安裝包並安裝
Gerrit安裝包爲war包,下載完成後可以使用

java -jar gerrit-2.12.war init -d /var/opt/review_site

來啓動命令行交互安裝動作。命令行交互的安裝過程如下:

Create '/var/opt/review-site' [Y/n]?

*** Git Repositories
***

Location of Git repositories [git]: /home/git/repositories

*** SQL Database
***

Database server type [H2/?]:

*** User Authentication
***

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

*** Email Delivery
***

SMTP server hostname [localhost]: 
SMTP server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username [gerrit2]: 
[email protected]'s password :
confirm password :

*** Container Process
***

Run as [gerrit2]:
Java runtime [/usr/lib/jvm/java-6-sun-1.6.0.24/jre]:
Copy gerrit.war to /home/gerrit2/review-site/bin/gerrit.war [Y/n]?
Copying gerrit.war to /home/gerrit2/review-site/bin/gerrit.war

*** SSH Daemon
***

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
*** 

Behind reverse proxy           [y/N]? y
Proxy uses SSL (https://)      [y/N]? 
Subdirectory on proxy server   [/]: 
Listen on address              [*]: 
Listen on port                 [8081]: 

Initialized /home/gerrit2/review-site
Executing /home/gerrit2/review-site/bin/gerrit.sh start
Starting Gerrit Code Review: OK

在上面的過程中,大部分只需要回車選擇默認就可以了,需要注意的地方有
1、指定git庫路徑
2、指定數據庫類型,默認爲H2數據庫,但是我們選擇使用MySQL。選擇MySQL之後需要指定localhost,用戶名,密碼等等
3、定義系統郵件功能,需要指定發件服務器,端口,發件用戶和密碼
4、指定驗證方式,必須選擇http方式,便於後面使用apache代理

安裝完成後我們可以查看Gerrit的配置文件,基本上上面的步驟都是在定義配置文件

vim /var/opt/review_site/etc/gerrit.conf
[gerrit]
        basePath = /data/git                //指定git庫路徑
        canonicalWebUrl = http://192.168.1.131:8081/        
[database]
        type = mysql                        //指定數據庫
        hostname = localhost
        database = reviewdb
        username = gerrit2
[index]
        type = LUCENE
[auth]                                  //指定驗證方式
        type = HTTP
[receive]
        enableSignedPush = false
[sendemail]                             //指定郵件服務器
        smtpServer = mail.btte.net
        smtpServerPort = 25
        smtpUser = [email protected]
[container]
        user = root
        javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-1.b14.el6.x86_64/jre
[sshd]                                  //默認的ssh端口
        listenAddress = *:29418         
[httpd]
        listenUrl = proxy-http://*:8081/
[cache]
        directory = cache

三、 配置Apache代理
1 創建訪問用戶及相應的密碼

htpasswd -c /var/opt/review_site/data/passwords admin
輸入兩次密碼即可

2 配置http文件,添加以下內容

<VirtualHost *:80>
    ProxyRequests Off
    ProxyVia Off
    AllowEncodedSlashes On
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    <Location /login/>
        AuthType Basic
        AuthName "Gerrit Code Review"
        Require valid-user
        AuthUserFile /var/opt/review_site/data/passwords
    </Location>
    ProxyPass / http://127.0.0.1:8081/ nocanon
</VirtualHost>

實際搭建過程中,踩了太多的坑,都是靠着谷歌大大和百度大大一個一個解決掉,不容易啊~
而且,Gerrit的使用對開發來說不是很友好,提交代碼的時候經常出現代碼衝突,影響開發進度,需要注意下。

發佈了63 篇原創文章 · 獲贊 56 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章