centos安装配置gerrit+gitlab实现代码的review与自动同步

本文详细介绍Gerrit代码审查系统的安装与配置流程,包括MySQL数据库设置、gerrit用户创建、gerrit软件安装、配置文件修改、nginx配置及登录认证设置。同时,提供了登录gerrit的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Step 1.安装Gerrit

1.安装mysql

$ rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
$ yum install mysql-community-server
$ service mysqld start
$ mysql> alter user 'root'@'localhost' identified by 'M)OKM*UHB7ygv6';

2.数据库设置

mysql> create database reviewdb;
Query OK, 1 row affected (0.03 sec)

mysql> CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'GOKM*UHB7ygv6';
Query OK, 0 rows affected (0.06 sec)

mysql> CREATE USER 'gerrit'@'127.0.0.1' IDENTIFIED BY 'GOKM*UHB7ygv6';
Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)

mysql> grant all privileges on reviewdb.* to gerrit@localhost identified by 'GOKM*UHB7ygv6';
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> grant all privileges on reviewdb.* to gerrit@'192.168.82.144' identified by 'GOKM*UHB7ygv6';
Query OK, 0 rows affected, 1 warning (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

3.建立专有帐户

$ adduser gerrit
$ su - gerrit

 

4.安装gerrit

下载地址:https://gerrit-releases.storage.googleapis.com/
安装文章:https://www.gerritcodereview.com/linux-quickstart.html

  • 前提需要安装jdk
  • 这个命令的意思是执行安装gerrit,会在当前目录下新建一个文件夹gerrit_site用来作为gerrit的根目录,在这个目录中,会安装git仓库,以及gerrit的web页面,还有gerrit的bin,etc等文件夹。
    然后就开始安装过程了,安装的过程会询问很多问题,有一些判断性的问题会用[y/N]这样的形式,大写的字母表示默认,我们直接敲回车就表示采用默认的安装选项
  • 我们安装的时候,可以只在Authentication method时输入http,其他全部回车用默认值,因为其他配置我们待会可以通过etc/gerrit.config文件进行修改
$ java -jar gerrit-3.0.1.war init -d review_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2019-08-01 11:12:56,738] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/review_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 3.0.1
*** 

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

*** Git Repositories
*** 

Location of Git repositories   [git]: 

*** Index
*** 

Type                           [lucene/?]: 

*** User Authentication
*** 

Authentication method          [openid/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 
Enable signed push support     [y/N]? 

*** Review Labels
*** 

Install Verified label         [y/N]? 

*** Email Delivery
*** 

SMTP server hostname           [localhost]: smtp.ym.163.com
SMTP server port               [(default)]: 465
SMTP encryption                [none/?]: 
SMTP username                  [gerrit]: digital-zabbix@gadmobe.net
digital-zabbix@gadmobe.net's password : 
              confirm password : 

*** Container Process
*** 

Run as                         [gerrit]: 
Java runtime                   [/usr/local/src/jdk1.8.0_131/jre]: 
Copy gerrit-3.0.1.war to review_site/bin/gerrit.war [Y/n]? Y
Copying gerrit-3.0.1.war to review_site/bin/gerrit.war

*** SSH Daemon
*** 

Listen on address              [*]: 
Listen on port                 [29418]: 
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done

*** HTTP Daemon
*** 

Behind reverse proxy           [y/N]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 
Listen on port                 [8081]: 
Canonical URL                  [http://AnnaLinux:8081/]: 

*** Cache
*** 


*** Plugins
*** 

Installing plugins.
Install plugin codemirror-editor version v3.0.1 [y/N]? y
Installed codemirror-editor v3.0.1
Install plugin commit-message-length-validator version v3.0.1 [y/N]? y
Installed commit-message-length-validator v3.0.1
Install plugin delete-project version v3.0.1 [y/N]? y
Installed delete-project v3.0.1
Install plugin download-commands version v3.0.1 [y/N]? y
Installed download-commands v3.0.1
Install plugin gitiles version v3.0.1 [y/N]? y
Installed gitiles v3.0.1
Install plugin hooks version v3.0.1 [y/N]? y
Installed hooks v3.0.1
Install plugin plugin-manager version v3.0.1 [y/N]? y
Installed plugin-manager v3.0.1
Install plugin replication version v3.0.1 [y/N]? y
Installed replication v3.0.1
Install plugin reviewnotes version v3.0.1 [y/N]? y
Installed reviewnotes v3.0.1
Install plugin singleusergroup version v3.0.1 [y/N]? y
Installed singleusergroup v3.0.1
Install plugin webhooks version v3.0.1 [y/N]? y
Installed webhooks v3.0.1
Initializing plugins.

Initialized /home/gerrit/review_site
Reindexing projects:    100% (2/2) with: reindex --site-path review_site --threads 1 --index projects
Reindexed 2 documents in projects index in 0.3s (7.6/s)


4.配置gerrit

$ vim /home/gerrit/review_site/etc/gerrit.config

[gerrit]
        basePath = git
        canonicalWebUrl = http://192.168.82.154:8081/
        serverId = 5c9b8389-74b7-46cc-b46b-b60a51cb1b19
[database]
        type = mysql
        hostname = AnnaLinux 
        port = 3306
        database = reviewdb
        username = gerrit
        password = "GOKM*UHB7ygv6"

[container]
        #javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
        #javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
        user = gerrit
        javaHome = /usr/local/src/jdk1.8.0_131/jre
[index]
        type = LUCENE
[auth]
        type = HTTP
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = smtp.ym.163.com
        smtpServerPort = 465
        smtpUser = digital-zabbix@gadmobe.net
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = http://*:8081/
[cache]
        directory = cache
[gitweb]
        type = gitweb
        cgi = /var/www/git/gitweb.cgi


5.nginx 配置

$ vim /usr/local/nginx/conf/vhost/gerrit.conf

server {
     listen *:81;
     server_name gerrit.microwu.com;
     allow   all;
     deny    all;
        
     access_log /var/log/gerrit_access.log;
     error_log /var/log/gerrit_error.log;

     auth_basic "Welcomme to Gerrit Code Review Site!";
     auth_basic_user_file /home/gerrit/gerrit.password;

     location / {
        proxy_pass  http://127.0.0.1:8081;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
     }
   }


6.登录认证文件

  • 那登录认证有了,我们怎么登录呢??就需要前面的auth_basic_user_file文件了。
  • 这里我们需要用apach的 htpasswd工具来新建这个文件,这也是为什么我们虽然不用到apache的反向代理,仍然需要apache的原因。
  • 我们通过下面的命令来在/home/gerrit/路径下创建认证文件
  • httpd 这个命令的详细解释:

  • -c表示create,也就是新建的意思
  • 接下来跟上文件要创建的目录以及文件名,我们直接用绝对路径,表示将在/home/gerrit目录下新建一个gerrit.password文件
  • 最后的admin表示要写入的用户名
  • 接下来你需要在命令行中连续输入两次密码,我们就为admin用户设置好了密码,可以通过vim来查看下这个密码文件,会发现里面是经过加密的。

    如果我们想新建别的用户,或者修改某个用户的密码,只需要把-c改成-m就好了,如果还是用-c并且路径不变的话,就会覆盖掉原来的文件。

$ htpasswd -c /home/gerrit/gerrit.password admin

7.注意事项

  • 如果你是在root用户下输入上面的命令 创建了gerrit.password文件到/home/gerrit/目录中,你会发现在登录的时候永远登录不成功,永远会得到服务器500的错误页面。原因是/homt/gerrit/文件夹的权限问题。
  • 我们知道,/home/gerrit/是我们之前新建的gerrit用户的,那么这个文件夹的权限是700,也就是只允许gerrit用户访问,其他组的用户是访问不了的,虽然这个文件的权限拥有root用户的所有权限,但是因为它放在700权限的文件夹下面,所以同样其他用户是访问不到的。
  • 这个问题之前纠缠了我好久,通过nginx的日志可以清楚的看到访问拒绝的错误. 所以,我们需要通过下面的命令,来改变gerrit目录的权限
$ chmod 755 /home/gerrit

 

8.登录gerrit

url: http://192.168.82.154:8081/dashboard/self
user:admin  password:admin

446cc44ec1d1ead9921ea86dbed88c07e9b.jpg

说明:gerrit配置了之后,第一个登录成功的用户,自动成为管理员,gerrit会给他分配一个id,1000000,之后登录的成员会依次自增1,初始时 Full Name 和 Email Address字段都是空的

cb2f004766123c27791025b50fa502269fd.jpg


Step 2.安装gitweb

说明:默认gitweb是安装到apache目录中的,也就是/var/www/目录下会有一个git文件夹,专门用来显示gitweb页面

$ yum install gitweb


1.修改gitweb配置文件

说明:默认的文件中所有的内容应该都被注释掉了,我们直接在最后面执行git仓库的位置:

$ vim /etc/gitweb.conf


*************************
*************************

$projectroot = "/home/gerrit/gerrit_site/git"

 

转载于:https://my.oschina.net/AnnaWu/blog/3079065

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值