Gerrit安装及复制到Gitlab

  1. 云栖社区>
  2. 博客>
  3. 正文

Gerrit安装及复制到Gitlab

技术小阿哥 2017-11-27 14:27:00 浏览1532
展开阅读全文
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


参考1

参考2

参考3

参考4

账号管理参考

config参数



本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1951504,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注