1
2
3
4
5
6
7
|
# 直接下载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 参数,文件见下面
|
1
2
3
4
5
6
7
|
# 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
|
1
2
3
4
5
6
7
8
9
|
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
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
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
|
上面使用的是域认证
1
2
3
4
|
root@grt01:
/home/gerrit/
.
ssh
# cat config
Host git01
IdentityFile ~/.
ssh
/id_rsa
#这里的证书,是在gitlab上有master权限的用户的证书
PreferredAuthentications publickey
|
1
2
3
4
5
6
7
8
|
#把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 代理转发
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<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
>
|
1
2
3
4
5
6
7
8
9
10
11
|
#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
|
本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1951504,如需转载请自行联系原作者