Gerrit 安装配置
1. 安装准备
Ubuntu 版本 22.04. 切换到 git 用户
-
JDK 安装 ( 最好安装1.8版本 )
sudo apt-get update sudo apt-get install openjdk-8-jdk java -version
-
下载gerrit
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.2.3.war
2. 安装 apache2
sudo apt-get install apache2
2.1 修改配置文件
2.1.1 修改 httpd.conf
sudo vim /etc/apache2/httpd.conf
<VirtualHost *:8081>
ServerName localhost
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
AuthBasicProvider file
AuthUserFile /usr/local/passwords
</Location>
AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8091/ nocanon
</VirtualHost>
** /usr/local/passwords** 是存放用户登录信息的文件, gerrit 默认第一个登录的用户为管理员账户.
2.1.2 修改 apache2.conf
sudo vi /etc/apache2/apache2.conf
末尾添加:
Include httpd.conf
2.1.3 修改 ports.conf
添加:
Listen 8081
2.2 开启SSL、Proxy、Rewrite 等模块
cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/proxy.load
sudo ln -s ../mods-available/proxy.conf
sudo ln -s ../mods-available/proxy_http.load
sudo ln -s ../mods-available/proxy_balancer.conf
sudo ln -s ../mods-available/proxy_balancer.load
sudo ln -s ../mods-available/rewrite.load
sudo ln -s ../mods-available/ssl.conf
sudo ln -s ../mods-available/ssl.load
sudo ln -s ../mods-available/slotmem_shm.load
sudo ln -s ../mods-available/socache_shmcb.load
3. 安装配置 gerrit
3.1 命令行执行安装指令
java -jar gerrit-3.2.3.war init -d review_site
其中 gerrit-3.2.3.war 为 gerrit 的安装包, review_site 为安装路径,可自定义
3.2 修改 gerrit 配置
vim ~/review_site/etc/gerrit.config
[gerrit]
basePath = /home/git/repositories
canonicalWebUrl = http://admin123-OptiPlex-7090:8081/
serverId = 254ef721-9833-4205-b6b0-1743ff04cb72
[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 = git
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[index]
type = lucene
[auth]
type = HTTP
userNameCaseInsensitive = true
[receive]
enableSignedPush = false
[sendemail]
enable = true
smtpServer = smtp.qq.com
smtpServerPort = 465
smtpEncryption = SSL
sslVerify = true
smtpUser = 404422965@qq.com
smtpPass = aruecupwwkvvcaih
from = 404422965@qq.com
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://*:8091/
[cache]
directory = cache
[gitweb]
type = gitweb
cgi = /usr/lib/cgi-bin/gitweb.cgi
其中, basePath 即为服务器 git 仓库路径,参考文档 git 服务器安装, canonicalWebUrl 就是 gerrit 服务器的URL, sendemail 配置可参考 gerrit服务器邮箱设置.
3.3 配置 gerrit 账户
touch /usr/local/passwords
sudo htpasswd -b /usr/local/passwords admin admin
注意此处的 passwords 路径应该与上面的 httpd.conf 里面的 login 的配置要相同,上面的命令创建了用户 admin, 密码 admin. gerrit 服务器默认第一个登录的用户即为超级用户, 与创建用户的顺序无关.
4. 安装gitweb
sudo apt-get install gitweb
5.启动服务器
sudo ~/review_site/bin/gerrit.sh restart
sudo /etc/init.d/apache2 restart
如果此时 start gerrit.sh 失败 ,可以查看 /review_site/logs 下面的 log 文件. 如果提示 Locked by another process , 可以执行
ps -e |grep java
kill -9 pid
如果提示邮箱问题,比如connect refused, 则可能是邮箱的 smtpPass 错误. 参考 gerrit服务器邮箱设置 修改.
6.用户登录后提交邮箱及公钥
登录 gerrit 之后, 点击 BROWSE -> Repositories 可以查看仓库目录,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YCKvYvZw-1669703740605)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221129141809966.png)]
管理员用户可以点击对应的 gitweb 选项, 进入 gitweb 视图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfNqN8rN-1669703740606)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221129141906348.png)]
6.1 提交邮箱
点击YOUR -> Email Addresses , 填入邮箱号, 点击 SEND VERIFICATION 进行邮箱验证.
6.2 提交公钥
点击YOUR -> SSH keys ,将公钥内容复制到输入框内, 点击 ADD 即可.
如果此处报500错误,则有可能是邮箱问题,按照上面的文档进行修改
7 . gerrit 权限管理
参考 gerrit权限控制