1、准备安装环境

安装JDK

下载jdk的tar包,解压缩,并修改/etc/profile,配置环境变量,这里不再说明


安装git

gerrit需要git环境,直接用yum安装

#yum -y install git


安装httpd

httpd主要作为反向代理使用,并设置账号密码访问

#yum -y install httpd


创建gerrit安装目录

#mkdir   /home/gerrit2



2、下载Gerrit安装包

下载Gerrit的war包,通常包名为gerrit-xxx.war,xxx为版本号

地址:http://gerrit-releases.storage.googleapis.com/index.html

我下载的版本为gerrit-2.12.2.war


3、安装Gerrit

进入到gerrit-2.12.2.war文件所在目录,执行以下命令进行交互式安装

#java -jar gerrit-2.12.2.war  init -d /home/gerrit2/gerrit

这里省略安装过程,基本上一路回车,保持默认即可。安装过程中的配置都可以通过编辑安装后生成的配置文件来修改。该文件路径为/home/gerrit2/gerrit/etc/gerrit.config

注意:

1、gerrit可以将数据保存到mysql或其他的数据中,如果你需要使用mysql,则需要安装gerrit之前安装mysql,我这里直接使用默认的数据库类型 H2。如果你需要使用其他类型数据库,可以参考下面这个链接:

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

2、如果gerrit需要结合jenkins做CI持续构建的话,在交互式安装过程中需要安装Verified label,默认是不安装的:Install Verified label         [y/N]? y   这里选择y,安装Verified label。

修改配置文件:

#vim  /home/gerrit2/gerrit/etc/gerrit.config

[gerrit]
        basePath = git
        canonicalWebUrl = http://172.16.206.133:8081
[database]
        type = h2
        database = /home/gerrit2/gerrit/db/ReviewDB
[index]
        type = LUCENE
[auth]
        type = HTTP
#       logoutUrl = 172.16.206.133:8080
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = smtp.exmail.qq.com
        smtpServerPort = 465
        smtpEncryption = SSL
        smtpUser = 你的邮箱账号
        smtpPass = 你的邮箱密码
        form = 你的邮箱账号
[container]
        user = root
        javaHome = /usr/local/jdk1.8.0_66/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = http://*:8081/
[cache]
        directory = cache


创建密码认证文件,并创建用户admin

#cd /home/gerrit2/gerrit/etc/ 
[root@localhost etc]# htpasswd -c -m passwords admin
New password: 
Re-type new password: 
Adding password for user admin



4、配置httpd方向代理

编辑httpd.conf文件,追加以下内容

#vim  /etc/httpd/conf/httpd.conf

Listen 8080
<VirtualHost *:8080>
    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On
    #<Proxy *>
    #      Order deny,allow
    #      Allow from all
    #</Proxy>
    <Location /login/>
      AuthType Basic
      AuthName "Gerrit Code Review"
      AuthBasicProvider file
      AuthUserFile /home/gerrit2/gerrit/etc/passwords
      Require valid-user
    </Location>
    
    AllowEncodedSlashes On
    ProxyPass / http://127.0.0.1:8081/ nocanon
    ###这里端口为8081,与gerrit.config中配置的一样端口一样
    ProxyPa***everse / http://127.0.0.1:8081/
</VirtualHost>

启动httpd服务

#service  httpd  start


如果使用nginx反向代理,则使用如下配置:

server {
     listen *:8080;
     server_name 10.10.10.206;
     

     }
     location /login/ {
        auth_basic "Gerrit Code Review";
        auth_basic_user_file /home/gerrit2/gerrit/etc/passwords;
        proxy_pass              http://127.0.0.1:8081;
     }
}


5、启动或者重启gerrit

初始化安装gerrit时,会自动启动gerrit,所以我们修改完配置后,需要重启gerrit

#/home/gerrit2/gerrit/bin/gerrit start | restart 


6、登录gerrit

在浏览器输入http://172.16.206.133:8080  出现gerrit的登录窗口


将Gerrit服务器设置开机自启动(可选操作)

Gerrit安装完成后,会生成服务启动脚本,路径为 $GERRIT_SITE/bin/gerrit.sh, 如果需要将Gerrit服务设置为开机自启动,可以按以下操作进行

将脚本link到/etc/init.d目录下

ln -snf /home/gerrit2/gerrit/bin/gerrit.sh  /etc/init.d/gerrit

测试脚本是否正常:

/etc/init.d/gerritd status
** ERROR: GERRIT_SITE not set

修改脚本,设置$GERRIT_SITE路径

p_w_picpath2016-6-16%2010%3A5%3A55.png?version

添加开机启动:

chkconfig --add gerrit

chkconfig gerrit on

再次测试脚本

p_w_picpath2016-6-16%2010%3A6%3A36.png?version