Ubuntu安装Gerrit--安装篇 (1/2)
概述
Gerrit,一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件开发者,可以相互审阅彼此修改后的代码,决定是否能够提交,回退或是继续修改。
应用场景:
- 代码审核:审核review +1, +2
- 门禁自动化:自动构建,代码度量,开源代码扫描等
- 多分支管理:入库代码同步到其它分支
- 上库历史:根据上库历史排查修改点
环境搭建
依赖组件:
- 【ubuntu 18.04 server版本】
- 【gerrit-2.12.2.war】:官网已经更新到了3.4.1版本,但当前版本功能已经足够 |
git clone https://gitee.com/whilewell/tools-gerrit.git
- 【jre】:1.8版本(jre是java运行环境,jdk是java开发环境)|
sudo apt-get install openjdk-8-jre
- 【postgresql】:数据库 |
sudo apt-get install postgresql
- 【nginx】:反向代理 |
sudo apt-get install nginx
- 【htpasswd】:http认证方式 |
apt-get install apache2-utils
- 【git】:服务器版本自带
安装后的效果图:
给数据库增加账号
postgresql安装后会默认生成独立账号postgres,数据内容进行独立管理。下面也需要使用postgres账号创建新账号
创建账号:wsk
sudo -u postgres createuser -RDIElPS wsk
创建数据库:reviewdb
sudo -u postgres createdb -E UTF-8 -O wsk reviewdb
确认数据库创建结果:
sudo -u postgres psql
gerrit2@wsk:/home$ sudo -u postgres psql
[sudo] password for gerrit2:
psql (10.19 (Ubuntu 10.19-0ubuntu0.18.04.1))
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
reviewdb | wsk | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=#\q
gerrit2@wsk:/home$
增加gerrit2账号
gerrit使用独立账号进行管理
sudo adduser gerrit2
su gerrit2
初始化gerrit
下面不是首次初始化log,仅供参考。
gerrit2@wsk:~/gerrit$ java -jar gerrit-2.12.2.war init -d review
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/home/gerrit2/.gerritcodereview/tmp/gerrit_3113595962757483013_app/guice_library.jar) to method java.lang.ClassLo
ader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
*** Gerrit Code Review 2.12.2
***
*** Git Repositories
***
Location of Git repositories [/home/gerrit2/git]: /home/gerrit2/git
*** SQL Database
***
Database server type [postgresql]: postgresql
Server hostname [localhost]:
Server port [(postgresql default)]:
Database name [wsk]: reviewdb
Database username [wsk]: wsk
Change wsk's password [y/N]? y
wsk's password :
confirm password :
*** Index
***
Type [LUCENE/?]:
The index must be rebuilt before starting Gerrit:
java -jar gerrit.war reindex -d site_path
*** User Authentication
***
Authentication method [HTTP/?]: 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 server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username :
*** Container Process
***
Run as [gerrit2]:
Java runtime [/usr/lib/jvm/java-8-openjdk-amd64/jre]:
Upgrade review/bin/gerrit.war [Y/n]?
Copying gerrit-2.12.2.war to review/bin/gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
*** HTTP Daemon
***
Behind reverse proxy [Y/n]? y
Proxy uses SSL (https://) [y/N]?
Subdirectory on proxy server [/]:
Listen on address [127.0.0.1]:
Listen on port [8081]:
Canonical URL [http://127.0.0.1/]:
*** Plugins
***
Installing plugins.
Install plugin singleusergroup version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin commit-message-length-validator version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin reviewnotes version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin replication version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin download-commands version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Initializing plugins.
No plugins found with init steps.
Initialized /home/gerrit2/gerrit/review
上面的过程会生成gerrit配置文件review/etc/gerrit.config
,下面关键参数需要与系统保持一致。
gerrit2@wsk:~/gerrit$ cat review/etc/gerrit.config
[gerrit]
basePath = /home/gerrit2/git # 说明:git工程根目录
canonicalWebUrl = http://127.0.0.1/
[database]
type = postgresql
hostname = localhost
database = reviewdb # 说明:数据库
username = wsk # 说明:数据库账号
[index]
type = LUCENE
[auth]
type = HTTP # 说明:认证方式,与nginx配置有关联
[receive]
enableSignedPush = false
[container]
user = gerrit2
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[sshd]
listenAddress = localhost:29418
[httpd]
listenUrl = proxy-http://127.0.0.1:8081/
[cache]
directory = cache
配置nginx反向代理
sudo vi /etc/nginx/site-enable/default
server {
listen 8888;
server_name localhost;
location / {
auth_basic "Gerrit2 Code Review";
auth_basic_user_file /home/gerrit2/gerrit/htpasswd.conf;
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
location /login/ {
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
注意点:
listen 8888
: nginx server 监听的端口,尽量不要使用知名端口80,我这里面换成了8888端口/home/gerrit2/gerrit/htpasswd.conf
: 这个是http认证使用的文件,后面需要配置
增加账号和密码
只有第一次增加账号和密码的时候需要携带-c参数,后续新增账号时,可以安装其help提示进行增加
htpasswd -c /home/gerrit2/gerrit/htpasswd.conf wsk wsk
配置并启动gerrit
sudo vi /etc/default/gerritcodereview
GERRIT_SITE=/home/gerrit2/gerrit/review
重连终端, 然后启动gerrit
${GERRIT_SITE}/bin/gerrit.sh start
启动成功后,会显示下面LOG
Starting Gerrit Code Review: OK
注:自己的几次启动失败都是由于java版本不匹配,如果出现失败问题,就需要考虑是否java版本问题
登录gerrit
输入下面链接,就可以登录到gerrit页面。
192.168.83.128
:是主机地址8888
: 是nginx监听的地址,不是gerrit配置的8081(这就是反向代理的作用)。
http://192.168.83.128:8888/
参考
https://www.shangmayuan.com/a/0b4f8fb2012e447b89131b51.html | 强烈推荐
https://linjinze999.github.io/gerrit/#软件介绍
本文来自博客园,作者:whilewell,转载请注明原文链接:https://www.cnblogs.com/viiv/p/15596363.html