您的位置:首页 > 其它

Gerrit安装及复制到Gitlab

2017-07-27 17:18 519 查看
# 直接下载jar文件后
java -jar gerrit-2.14.1.war init -d /opt/gerrit

# 安装复制插件
unzip gerrit-2.14.1.war
ssh -p 29418 gerrit_admin_user@localhost gerrit plugin install -n replication.jar - < ./WEB-INF/plugins/replication.jar
# 如果安装时提示权限问题,要在gerrit.config 上添加 allowRemoteAdmin 参数,文件见下面
# gerrit IP: 192.168.5.2
# gitlab IP: 192.168.5.3

# 在gerrit 上,把下面的结果放到gerrit账号的 known_hosts 文件中
ssh-keyscan -t rsa 192.168.5.3 >> ~/.ssh/known_hosts
ssh-keyscan -t rsa gitlab.dns.name >> ~/.ssh/known_hosts
# 同时把gerrit用户的ssh-key 添加到gitlab仓库中,并设置为需要同步仓库的master
root@grt01:/opt/gerrit/etc# cat replication.config
[remote "git01"]
projects = grt_demo01
url = git@192.168.5.3:mobile/grt_demo01.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
timtout = 30
threads = 3
root@grt01:/opt/gerrit/etc# cat gerrit.config
[gerrit]
basePath = git
serverId = 822d309b-9f9b-478b-21c7-1ca14f92abcf
canonicalWebUrl = http://grt01.test.local:8080/ [database]
type = h2
database = /opt/gerrit/db/ReviewDB
[index]
type = LUCENE
[auth]
type = LDAP
gitBasicAuthPolicy = HTTP
[ldap]
server = ldap://ad.test.local
username = service@test.local
password = 8888888
accountBase = DC=test,DC=local
#        groupBase = DC=test,DC=local
accountPattern = (&(objectClass=person)(sAMAccountName=${username}))
accountFullName = displayName
accountEmailAddress = mail
accountSshUserName = sAMAccountName
#        groupMemberPattern = (sAMAccountName=${username})
#        groupName = cn
[receive]
enableSignedPush = false
[sendemail]
smtpServer = smtp.test.com
smtpServerPort = 25
smtpUser = gerrit@test.com
enable=true
[container]
user = gerrit
javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://*:8080/ [cache]
directory = cache
[plugins]
# allow install plugin
allowRemoteAdmin = true
上面使用的是域认证
root@grt01:/home/gerrit/.ssh# cat config
Host git01
IdentityFile ~/.ssh/id_rsa     #这里的证书,是在gitlab上有master权限的用户的证书
PreferredAuthentications publickey
#把gitlab相关项目clone到gerrit
git clone --mirrror .....
#更改权限
chown gerrit:gerrit -R .....
#移动到gerrit的仓库位置
mv src /opt/gerrit/git/
#重启gerrit,即可在gerrit看见相关项目
/opt/gerrit/bin/gerrit.sh restart
apache2 代理转发
<VirtualHost *>
ServerName grt01

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Proxy *>
Order deny,allow
Allow from all
# Use following line instead of the previous two on Apache >= 2.4
# Require all granted
</Proxy>

AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/ nocanon
</VirtualHost>
#replication时出现 "channel is not opened" 错误, 使用非ssh方式解决
root@grt01:/opt/gerrit/etc# cat replication.config
[remote "git01"]
projects = grt_demo01
#        url = git@192.168.5.3:mobile/grt_demo01.git
url = http://git:passwd@192.168.5.3/mobile/grt_demo01.git push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
timtout = 30
threads = 3


参考1
参考2
参考3
参考4
账号管理参考

config参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  replication gerrit gitlab