当前位置:   article > 正文

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

gitlab集成gerrit做code review

Step 1.安装Gerrit

1.安装mysql

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

2.数据库设置

  1. mysql> create database reviewdb;
  2. Query OK, 1 row affected (0.03 sec)
  3. mysql> CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'GOKM*UHB7ygv6';
  4. Query OK, 0 rows affected (0.06 sec)
  5. mysql> CREATE USER 'gerrit'@'127.0.0.1' IDENTIFIED BY 'GOKM*UHB7ygv6';
  6. Query OK, 0 rows affected (0.05 sec)
  7. mysql> flush privileges;
  8. Query OK, 0 rows affected (0.03 sec)
  9. mysql> grant all privileges on reviewdb.* to gerrit@localhost identified by 'GOKM*UHB7ygv6';
  10. Query OK, 0 rows affected, 1 warning (0.02 sec)
  11. mysql> grant all privileges on reviewdb.* to gerrit@'192.168.82.144' identified by 'GOKM*UHB7ygv6';
  12. Query OK, 0 rows affected, 1 warning (0.04 sec)
  13. mysql> flush privileges;
  14. Query OK, 0 rows affected (0.01 sec)

3.建立专有帐户

  1. $ adduser gerrit
  2. $ 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文件进行修改
  1. $ java -jar gerrit-3.0.1.war init -d review_site
  2. Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
  3. [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
  4. *** Gerrit Code Review 3.0.1
  5. ***
  6. Create '/home/gerrit/review_site' [Y/n]? Y
  7. *** Git Repositories
  8. ***
  9. Location of Git repositories [git]:
  10. *** Index
  11. ***
  12. Type [lucene/?]:
  13. *** User Authentication
  14. ***
  15. Authentication method [openid/?]: http
  16. Get username from custom HTTP header [y/N]?
  17. SSO logout URL :
  18. Enable signed push support [y/N]?
  19. *** Review Labels
  20. ***
  21. Install Verified label [y/N]?
  22. *** Email Delivery
  23. ***
  24. SMTP server hostname [localhost]: smtp.ym.163.com
  25. SMTP server port [(default)]: 465
  26. SMTP encryption [none/?]:
  27. SMTP username [gerrit]: digital-zabbix@gadmobe.net
  28. digital-zabbix@gadmobe.net's password :
  29. confirm password :
  30. *** Container Process
  31. ***
  32. Run as [gerrit]:
  33. Java runtime [/usr/local/src/jdk1.8.0_131/jre]:
  34. Copy gerrit-3.0.1.war to review_site/bin/gerrit.war [Y/n]? Y
  35. Copying gerrit-3.0.1.war to review_site/bin/gerrit.war
  36. *** SSH Daemon
  37. ***
  38. Listen on address [*]:
  39. Listen on port [29418]:
  40. Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done
  41. *** HTTP Daemon
  42. ***
  43. Behind reverse proxy [y/N]?
  44. Use SSL (https://) [y/N]?
  45. Listen on address [*]:
  46. Listen on port [8081]:
  47. Canonical URL [http://AnnaLinux:8081/]:
  48. *** Cache
  49. ***
  50. *** Plugins
  51. ***
  52. Installing plugins.
  53. Install plugin codemirror-editor version v3.0.1 [y/N]? y
  54. Installed codemirror-editor v3.0.1
  55. Install plugin commit-message-length-validator version v3.0.1 [y/N]? y
  56. Installed commit-message-length-validator v3.0.1
  57. Install plugin delete-project version v3.0.1 [y/N]? y
  58. Installed delete-project v3.0.1
  59. Install plugin download-commands version v3.0.1 [y/N]? y
  60. Installed download-commands v3.0.1
  61. Install plugin gitiles version v3.0.1 [y/N]? y
  62. Installed gitiles v3.0.1
  63. Install plugin hooks version v3.0.1 [y/N]? y
  64. Installed hooks v3.0.1
  65. Install plugin plugin-manager version v3.0.1 [y/N]? y
  66. Installed plugin-manager v3.0.1
  67. Install plugin replication version v3.0.1 [y/N]? y
  68. Installed replication v3.0.1
  69. Install plugin reviewnotes version v3.0.1 [y/N]? y
  70. Installed reviewnotes v3.0.1
  71. Install plugin singleusergroup version v3.0.1 [y/N]? y
  72. Installed singleusergroup v3.0.1
  73. Install plugin webhooks version v3.0.1 [y/N]? y
  74. Installed webhooks v3.0.1
  75. Initializing plugins.
  76. Initialized /home/gerrit/review_site
  77. Reindexing projects: 100% (2/2) with: reindex --site-path review_site --threads 1 --index projects
  78. Reindexed 2 documents in projects index in 0.3s (7.6/s)


4.配置gerrit

  1. $ vim /home/gerrit/review_site/etc/gerrit.config
  2. [gerrit]
  3. basePath = git
  4. canonicalWebUrl = http://192.168.82.154:8081/
  5. serverId = 5c9b8389-74b7-46cc-b46b-b60a51cb1b19
  6. [database]
  7. type = mysql
  8. hostname = AnnaLinux
  9. port = 3306
  10. database = reviewdb
  11. username = gerrit
  12. password = "GOKM*UHB7ygv6"
  13. [container]
  14. #javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
  15. #javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
  16. user = gerrit
  17. javaHome = /usr/local/src/jdk1.8.0_131/jre
  18. [index]
  19. type = LUCENE
  20. [auth]
  21. type = HTTP
  22. [receive]
  23. enableSignedPush = false
  24. [sendemail]
  25. smtpServer = smtp.ym.163.com
  26. smtpServerPort = 465
  27. smtpUser = digital-zabbix@gadmobe.net
  28. [sshd]
  29. listenAddress = *:29418
  30. [httpd]
  31. listenUrl = http://*:8081/
  32. [cache]
  33. directory = cache
  34. [gitweb]
  35. type = gitweb
  36. cgi = /var/www/git/gitweb.cgi


5.nginx 配置

  1. $ vim /usr/local/nginx/conf/vhost/gerrit.conf
  2. server {
  3. listen *:81;
  4. server_name gerrit.microwu.com;
  5. allow all;
  6. deny all;
  7. access_log /var/log/gerrit_access.log;
  8. error_log /var/log/gerrit_error.log;
  9. auth_basic "Welcomme to Gerrit Code Review Site!";
  10. auth_basic_user_file /home/gerrit/gerrit.password;
  11. location / {
  12. proxy_pass http://127.0.0.1:8081;
  13. proxy_set_header X-Forwarded-For $remote_addr;
  14. proxy_set_header Host $host;
  15. }
  16. }


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仓库的位置:

  1. $ vim /etc/gitweb.conf
  2. *************************
  3. *************************
  4. $projectroot = "/home/gerrit/gerrit_site/git"

 

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/268579
推荐阅读
相关标签
  

闽ICP备14008679号