Gerrit环境搭建

发布时间 2023-03-28 09:14:17作者: 一条名叫西西的狗

一、测试环境说明

二、环境搭建

三、服务器搭建

四、外部访问

 

一、测试环境说明

  本Gerrit环境,基于:

    外部系统:

      Windows 10

      git version 2.40.0

    虚拟机环境:

      VirtualBox7.0

      Ubuntu18.04

    关于虚拟机搭建,可以参考另一篇文档:Ubuntu 虚拟机搭建

            

二、环境搭建

  1. 基础环境:
    1. sudo apt install git;
    2. sudo apt install vim;
    3. sudo apt install net-tools;
    4. sudo apt install openjdk-8-jre-headless;
    5. sudo apt-get install gitweb。
  2. apache2安装以及配置:
    1. sudo apt install apache2;
    2. sudo vim /etc/apache2/sites-available/000-default.conf;
    3. 配置apache2反向代理
      <VirtualHost *:8080> #8080 对外端口
          ServerName 192.168.56.105 #ifconfig显示的局域网IP
      
          ProxyVia Off
          ProxyPreserveHost On
          ProxyRequests Off
      
          <Proxy *>
              Order deny,allow  
              Allow from all  
          </Proxy>
          <Location />
            AuthType Basic
            AuthName "Welcomme to Gerrit Code Review Site!"
            Require valid-user
            AuthUserFile /home/gerrit/review_site/etc/gerrit.passwd #gerrit用户配置路径,在后面的gerrit里面有配置
          </Location>
          ProxyPass / http://192.168.56.105:8080/
          proxyPassReverse / http://127.0.0.1:8080/
      </VirtualHost>
    4. sudo vim /etc/apache2/ports.conf

       

       

       增加Listen 8080

    5. sudo ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf;
    6. sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load;
    7. sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load。
  3. gerrit-2.15.war下载以及账户创建:
    1. 下载gerrit安装包;
    2. 创建gerrit账户---sudo adduser gerrit;

       

    3. sudo cp gerrit-2.15.war /home/gerrit/。
  4. cd /home/gerrit/

三、服务器搭建

  1. 安装gerrit-2.15.war:
    sudo java -jar gerrit-2.15.war init -d review_site:
    Create '/home/gerrit/review_site' [Y/n]? Y;
    Database server type           [h2]:h2;
    Authentication method          [http/?]: http SMTP server hostname [localhost]: smtp.qq.com; SMTP server port [(default)]: 465; SMTP encryption [none/?]: SSL; SMTP username [root]: XXXX@qq.com; Behind reverse proxy [y/N]? Y; 其它的一律默认即可; Waiting for server on l-VirtualBox:80 ... ----最后出现这个提示,直接Ctrl+c停止即可。
  2. 配置gerrit.config:
    
    
    sudo vim etc/gerrit.config
    [gerrit]
        basePath = git
        serverId = ec16c481-769e-43e1-b38d-5134c48d9978
        canonicalWebUrl = http://<本机IP>:8081/
    [database]
        type = h2
        database = /home/gerrit/review_site/db/ReviewDB
    [noteDb "changes"]
        disableReviewDb = true
        primaryStorage = note db
        read = true
        sequence = true
        write = true
    [index]
        type = LUCENE
    [auth]
        type = HTTP
    [receive]
        enableSignedPush = false
    [sendemail]
        enable = true
        smtpServer = 157.148.54.34
        smtpUser = XXXXX@qq.com
        smtpServerPort = 465
        smtpEncryption = SSL
        sslVerify = true
        smtpPass = <QQ授权码>
        from = XXXXX@qq.com <与smtpUser相同>
    [container]
        user = root
        javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
    [sshd]
        listenAddress = *:29418
    [httpd]
        listenUrl = proxy-http://*:8081/
    [cache]
        directory = cache
    [gitweb]
            type = gitweb
            cgi = /usr/lib/cgi-bin/gitweb.cgi
  3. 更改smtpPass:
    sudo vim etc/secure.config
    [auth]
            registerEmailPrivateKey = /oSzQZM4FnEF+rlhbiBaxxy/kKkUEOR3sxo=
    [sendemail]
            smtpPass = <QQ授权码>
  4. 配置QQ邮箱:

    1. 开通POP3/SMTP服务;
    2. 生成授权码-------这个很重要,没有这个,就无法使用gerrit的邮箱服务,授权码生成后,最好自己保存在文本中
  5. 创建gerrite管理员账户:
    sudo touch etc/gerrit.passwd
    sudo htpasswd -b etc/gerrit.passwd admin admin
  6. 开机启动gerrit服务:
    sudo cp /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
    sudo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
    sudo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
    
    sudo vim /etc/init.d/gerrit.sh
    新增加红色部分:
    while test $# -gt 0 ; do
      case "$1" in
      -d|--site-path)
        shift
        GERRIT_SITE=$1
        shift
        ;;
      -d=*)
        GERRIT_SITE=${1##-d=}
        shift
        ;;
      --site-path=*)
        GERRIT_SITE=${1##--site-path=}
        shift
        ;;
    
      *)
        usage
      esac
    done
    
    GERRIT_SITE=/home/gerrit/review_site
    NO_START=0
    
    test -z "$NO_START" && NO_START=0
    test -z "$START_STOP_DAEMON" && START_STOP_DAEMON=1
  7. sudo /etc/init.d/apache2 restart;
  8. sudo /etc/init.d/gerrit.sh restart。   

四、外部访问

  1、Windows 浏览器输入:http://<本机IP>:8080/