文档首页 > > 移植指南> 移植Gerrit

移植Gerrit

分享
更新时间:2020/10/10 GMT+08:00

介绍

简要介绍

Gerrit是一个开源的、基于Web的代码审查工具。团队中的软件开发人员可以相互查看对代码的更改。然后,他们可以接受或拒绝这些更改并继续他们的更改。它与分布式版本控制系统Git紧密集成。

语言:Java/SQL

一句话描述:代码审查软件

开源协议:Apache

建议的版本

建议使用版本为“gerrit-2.14.6”

环境要求

云服务器要求

本文以KC1实例测试,配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.large.2 | 2vCPUs | 4GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

说明

下载地址

CentOS

7.6

在公共镜像中已提供。

Kernel

4.14.0-115

在公共镜像中已提供。

配置编译环境

  1. 安装wget工具。

    yum install wget -y

  2. 安装OpenJDK。

    yum install java-1.8.0-openjdk-devel java-1.8.0-openjdk -y

  3. 安装Git。

    yum install git -y

  4. 安装并且启动Apache。

    yum install httpd -y

    service httpd start

获取源码

获取“gerrit-2.14.6”源码包。

mkdir -p /usr/local/src/gerrit

cd /usr/local/src/gerrit

wget https://gerrit-releases.storage.googleapis.com/gerrit-2.14.6.war

编译和安装

  1. 配置Gerrit。

    java -jar gerrit-2.14.6.war init -d review_site

    输入命令后,根据如下的提示逐步配置Gerrit:
    *** Gerrit Code Review 2.14.6
    *** 
     
     
    *** Git Repositories
    *** 
     
    Location of Git repositories   [git]: //git放的目录,没有的话自己会创建的
     
    *** SQL Database
    *** 
     
    Database server type           [h2]: //默认H2数据库,如果想使用MySQL数据库,输入mysql然后回车
     
    *** Index
    ***
     
    Type                           [lucene/?]: 
     
    *** User Authentication
    *** 
     
    Authentication method          [openid/?]: HTTP //输入HTTP,不然就不是反向代理了
    Get username from custom HTTP header [y/N]? n
    SSO logout URL                 : 
    Enable signed push support     [y/N]? n
     
    *** Review Labels
    *** 
     
    Install Verified label         [y/N]? n
     
    *** Email Delivery
    *** 
     
    SMTP server hostname           [localhost]: smtp.xxx.com //输入自动发送邮件的邮箱SMTP
    SMTP server port               [(default)]: 25 // 465/994是SSL协议端口号,25是非SSL协议端口号
    SMTP encryption                [none/?]: //如果上一步输入的是465/994,此处输入SSL,否则直接回车
    SMTP username                  [root]: xxx@xxx.com
    xxx@xxx.com's password   : 
                  confirm password : //此处是你邮箱的授权码,非邮箱密码
     
    *** Container Process
    *** 
     
    Run as                         [root]: //这是用户,可以用默认root
    Java runtime                   [/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.aarch64/jre]: 
    Copy gerrit-2.14.6.war to review_site/bin/gerrit.war [Y/n]? y
    Copying gerrit-2.14.6.war to review_site/bin/gerrit.war
     
    *** SSH Daemon
    *** 
     
    Listen on address              [*]:  
    Listen on port                 [29418]: 
    Generating SSH host key ... rsa... dsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done
     
    *** HTTP Daemon
    ***
     
    Behind reverse proxy           [y/N]? y
    Proxy uses SSL (https://)      [y/N]? n
    Subdirectory on proxy server   [/]: 
    Listen on address              [*]: 
    Listen on port                 [8081]: 8091 //这个端口号一定不要和apache的端口号一样
    Canonical URL                  [http://localhost/]: 
     
    *** Cache
    *** 
     
     
    *** Plugins
    ***
     
    Installing plugins.
    Install plugin commit-message-length-validator version v2.14.6 [y/N]? y
    Installed commit-message-length-validator v2.14.6
    Install plugin download-commands version v2.14.6 [y/N]? y
    Installed download-commands v2.14.6
    Install plugin hooks version v2.14.6 [y/N]? y
    Installed hooks v2.14.6
    Install plugin replication version v2.14.6 [y/N]? y
    Installed replication v2.14.6
    Install plugin reviewnotes version v2.14.6 [y/N]? y
    Installed reviewnotes v2.14.6
    Install plugin singleusergroup version v2.14.6 [y/N]? y
    Installed singleusergroup v2.14.6
    Initializing plugins.
     
    Initialized /root/gerrit/review_site
     

  2. 进入“review_site/bin”目录下的安装目录。

    cd /usr/local/src/gerrit/review_site/bin

  3. 启动Gerrit。

    ./gerrit.sh start

运行和验证

  1. 创建Gerrit登录用户。

    htpasswd -cb /etc/httpd/passwords admin admin

    passwords是在httpd目录下创建的文件,第一个admin是用户名,第二个admin是密码。

  2. 修改Apache的config文件“httpd.conf”

    vim /usr/local/apache2/conf/httpd.conf

    在端口号设置“Listen 80”下面加入以下内容:
    Listen 80
    Listen 8090  //额外加的端口号,两个都能访问
    <VirtualHost *:8090>  //此处是Apache的端口号
        ServerName xxx.xxx.xxx.xxx  //此处是你的ip地址
        ProxyRequests Off
        ProxyVia Off
        ProxyPreserveHost On
    
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>
    
        <Location /login/>
            AuthType Basic
            AuthName "Gerrit Code Review"
            Require valid-user
            AuthUserFile /etc/httpd/passwords   //刚刚创建的密码文件
        </Location>
    
        AllowEncodedSlashes On
        ProxyPass / http://xxx.xxx.xxx.xxx:8091/   //此处的8091是Gerrit端口号
    </VirtualHost>

    去掉注释#号,打开如下模块:

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so

  3. 重启httpd服务。

    systemctl restart httpd

  4. 打开另外一个终端,输入如下命令。在浏览器中输入“http://[ECS IP]:8091”,并且使用设置的Gerrit用户进行登录即可。

    系统回显如图1所示,则表示安装成功。

    图1 登录界面

    云服务器需要放通监听的端口,如果未放通,请参考如下链接处理:

    https://support.huaweicloud.com/trouble-ecs/zh-cn_topic_0191526704.html

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问