devops

gerrit集成gitlab

前提介绍

gerrit安装参考

gerrit安装

gerrit ldap配置参考

gerrit ldap配置

gitlab安装参考

gitlab安装

由于我后来换虚拟机安装了,所以地址换了

gerrit 地址:http://192.168.72.135:8802/

gitlab 地址:http://192.168.72.136/users/sign_in

gerrit中已经创建了test仓库

在文章:http://www.duozhi.online/2023/10/17/jenkins-%e9%9b%86%e6%88%90gerrit/ 中创建的

gitlab中创建test仓库,和gerrit中仓库同名

gerrit服务器中生成密钥,把公钥放到gitlab中

生成公钥的命令 ssh-keygen -m PEM

root@lili:~# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDK5Y9ELErYaW0TEVJRXuyXUkV1ihhlCK/KkcxsIZ/ZAX9KNAhnDXYqDmLJe5HAWFov61HBwy+hbr5mnpJjMSDJrVlCexDLkP9Woq3TPM6M5ohUVw6F+WTcaMnB2X1vpH8LioCuG/638xtZf5OAm1+AEgp3TIDANhgu4G+VdpzbSd0vtx6DpEvd1JMZtoiJZUTs+vLi6KGa3VhEYHG6Qzkht/kr6fnR4ycjYRV6Gn4adBQbr+i27eI/5Ev37K9CDEWQXSDyow604dtKjA6j2J8iH3x4R3kNo3iPiSfLxyYQgOjo9BUDab4NIEkAZ5dKSHdPMOGgHJI9MLxiCxIIgLSvGUudJlznEgwHbrj1A5qumUmwU+V19ZlCp0YW9gcFaO5Yib61qZJhP4zPAqJnLPDboS3RXzyZXq4ye5ugldE9VFXHrp3oy0jEc0LKcyGvfdgy7sBmA8sSMDcdLFIZ9X8Kh9UYkBOCJmISs9Hx/G1MNDPgV1n+EZbuYVQkzh61+0= root@lili
root@lili:~# 

把上面的公钥放到gitlab中

gerrit服务器中测试下与gitlab的连接

root@lili:~# ssh -T git@192.168.72.136
The authenticity of host '192.168.72.136 (192.168.72.136)' can't be established.
ECDSA key fingerprint is SHA256:yuoPMO7NAKRzN5oMvR2txoDRN7GuzAxXpV+3npoC2nk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.72.136' (ECDSA) to the list of known hosts.
Welcome to GitLab, @root!

第一次的时候,这里会有个yes/no的一个交互,这里交互输入yes后,replication同步的时候就不会有报错信息了

没有本步骤,replication进行同步代码的时候,会有如下报错

gerrit服务器中配置gerrit replication功能(复制具体项目)

root@lili:/opt/gerrit/review_site/etc# cat replication.config 
[remote "test"]
projects =  test
url = git@192.168.72.136:root/test.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3

复制所有项目的配置为

查看gerrit服务器replication插件状态

可以在任何一个机器上执行,但一定要吧该机器的公钥放到gerrit中

我把公钥放到了zhangsan这个用户中,所以命令如下

root@lili:/opt/gerrit/review_site/etc# ssh -p 29418 zhangsan@192.168.72.135 gerrit plugin ls |grep replication
replication                    v3.6.1     3.6.1            ENABLED  replication.jar
root@lili:/opt/gerrit/review_site/etc# ssh -p 29418 zhangsan@192.168.72.135 gerrit plugin reload replication
root@lili:/opt/gerrit/review_site/etc# ssh -p 29418 zhangsan@192.168.72.135 gerrit plugin ls |grep replication
replication                    v3.6.1     3.6.1            ENABLED  replication.jar
root@lili:/opt/gerrit/review_site/etc# 

重启gerrit

root@lili:/opt/gerrit/review_site# sh bin/gerrit.sh restart
Stopping Gerrit Code Review: OK
Starting Gerrit Code Review: OK

测试代码提交

新增文件

Jenkins被触发了

Jenkins和gerrit的集成,参考:http://www.duozhi.online/2023/10/17/jenkins-%e9%9b%86%e6%88%90gerrit/

此时gitlab中还没有同步进来

代码review

此时gitlab中同步进来了

如果没有同步,可查看日志,根据报错来搜索

如果服务器配置了代理,http_proxy,会报错,提示代理相关问题,需要把代理处理下,我是直接把代理去掉了

留言

您的邮箱地址不会被公开。 必填项已用 * 标注

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
转载请注明来源:gerrit集成gitlab - 多知在线