ubuntu16.04 + Gerrit + repo + gitweb

本文详细介绍了如何在Ubuntu16.04上安装和配置Gerrit代码审查系统、Repo工具以及Gitweb。包括添加Gerrit用户、安装Java、下载Gerrit、配置Apache2反向代理、安装Gitweb、设置用户邮箱和创建组等步骤。整个过程旨在建立一个完善的Git协作环境。

1.添加gerrit帐号并赋予sudo权限

sudo adduser gerrit

chmod u+w /etc/sudoers
sudo vi /etc/sudoers
找到如下内容:

# User privilege specification
root    ALL=(ALL:ALL) ALL
gerrit  ALL=(ALL:ALL) ALL     #添加这一行

sudo su gerrit


2.安装java

sudo apt-get install openjdk-8-jdk


3.下载gerrit,安装,全部默认

java -jar gerrit-2.13.6.war init -d review_site

PS:gerrit war下载地址请参考:

https://blog.csdn.net/mmh19891113/article/details/81013994      #谢谢原作者!


4.创建git仓库目录

mkdir /home/gerrit/repositories


5.修改gerrit配置文件

vi review_site/etc/gerrit.config

修改如下:

[gerrit]
    basePath = /home/gerrit/repositories
    serverId = 1547269b-5d3a-404e-b42b-7853003cac72
    canonicalWebUrl = http://192.168.10.117:9999/

[database]
    type = h2
    database = /home/gerrit/review_site/db/ReviewDB
[auth]
    type = HTTP
[receive]
    enableSignedPush = false
[sendemail]
        smtpServer = smtp.exmail.qq.com
        smtpServerPort = 465
        smtpEncryption = SSL
        smtpUser = XXXXX@qq.com
        smtpPass = xxx
        sslVerify = false
        from = XXXXX@qq.com
[container]
    user = gerrit
    javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[sshd]
    listenAddress = *:29418
[cache]
    directory = cache
[httpd]
    listenUrl = http://*:8888/

 

6.添加gerrit管理员账户,设置帐号密码

touch ./review_site/etc/passwd
htpasswd -b ./review_site/etc/passwd admin adminpassword


7.安装apache2和git

sudo apt-get install apache2 git


8.修改配置 新增端口

sudo vi /etc/apache2/ports.conf

新增9999端口

NameVirtualHost *:80
NameVirtualHost *:9999
Listen 80
Listen 9999
. . . . . .


9.配置反向代理

sudo vi /etc/apache2/httpd.conf
如下:

ServerName gerrit.com      #ServerName配置的是主机的域名或者ip,如果用localhost那就相当于只能本机访问
<VirtualHost *:9999>
    ProxyRequests Off  
    ProxyVia Off  
    ProxyPreserveHost On  
    AllowEncodedSlashes On  
    RewriteEngine On  
    RewriteRule ^/(.*) http://192.168.10.117:8888/$1 [NE,P]
 
    <Proxy *>  
          Order deny,allow  
          Allow from all  
    </Proxy>
 
    <Location /login/>  
        AuthType Basic  
        AuthName "Gerrit Code Review"  
        Require valid-user  
        AuthBasicProvider file  
        AuthUserFile /home/gerrit/review_site/etc/passwd  
    </Location>

    ProxyPass / http://192.168.10.117:8888/
 
</VirtualHost>


10.主配置文件中加入httpd.conf,使其生效

sudo vi /etc/apache2/apache2.conf
加一句:

Include httpd.conf


11.开启一些模块:

    sudo a2enmod proxy
    sudo a2enmod rewrite
    sudo a2enmod ssl
    sudo a2enmod proxy_balancer
    sudo a2enmod proxy_http


12.关掉gerrit服务

./review_site/bin/gerrit.sh stop

清空数据库
    cd review_site/bin/
    java  -jar ./gerrit.war gsql -d ../
    DROP ALL OBJECTS;

不这样做会有Server Error,Missing project All-Projects的错误
java.lang.IllegalStateException: Missing project All-Projects

 

13 安装配置gitweb

sudo apt-get install gitweb

查看相关配置文件安装路径:    
dpkg -L gitweb

得到输出如下:
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/gitweb
/usr/share/doc/gitweb/examples
/usr/share/doc/gitweb/examples/index.aux-generation
/usr/share/doc/gitweb/README.Debian
/usr/share/doc/gitweb/copyright
/usr/share/doc/gitweb/README
/usr/share/doc/gitweb/NEWS.Debian.gz
/usr/lib
/usr/lib/cgi-bin
/etc
/etc/apache2
/etc/apache2/conf.d
/etc/apache2/conf.d/gitweb
/etc/gitweb.conf
/usr/share/doc/gitweb/changelog.Debian.gz
/usr/lib/cgi-bin/gitweb.cgi

根据上面的地址在gerrit.conf中添加如下配置:

    [gitweb]
    type = gitweb
    cgi = /usr/lib/cgi-bin/gitweb.cgi

相关说明:

gitweb集成gerrit后,默认只有管理员用户才能查看gitweb超链接,普通用打开链接后页面显示Not Found。如果想给普通的用户查看gitweb超链接的权限,则必须对项目设置refs/meta/config 的read权限。而这个权限在All-Projects的ACL里只对Administrators用户和Project Owners开放。


14.重新安装一遍gerrit

java -jar gerrit-2.13.6.war init -d review_site


15.启动服务

./review_site/bin/gerrit.sh start
sudo /etc/init.d/apache2 restart

客户端可通过http://192.168.10.117:9999/访问,请登陆管理员账户


16. config ssh

vi .ssh/config

Host gerrit1
    HostName localhost
    User admin
    IdentityFile ~/.ssh/id_rsa
    port 29418

 

17. gerrit添加新用户和密码

htpasswd -b ./review_site/etc/passwd sfr sfrpassword
Then, login sfr  account to setting the fullname and ssh key


18.设置用户邮箱

ssh gerrit1 gerrit set-account admin --add-email XXXXXX@qq.com
ssh gerrit1 gerrit set-account sfr --add-email XXXX@163.com

 

19.create group and add the new user to this group

ssh gerrit1 gerrit set-members home(group name) -a sfr


20.download and config repo

克隆repo裸版本库

cd repositories

git clone --bare https://code.csdn.net/kangear/git-repo.git -b stable

记得修改repo文件中以下内容并提交:

REPO_URL = 'ssh://XXXXXXXX'
REPO_REV = 'stable'

将其中的repo脚本文件拷贝到本地bin文件夹中,配置repo工具,请参考我的另一篇博客:

https://mp.csdn.net/postedit/81117932

ps:其他获取repo的网址:
http://yun.baidu.com/xcloud/csdn/pan/share/link?shareid=1166081275&uk=627255378

 

21. config manifests

新建manifests仓库,用于提交清单文件
 

22.set static IP

作为server一般是要用静态IP的,以下方法没有试过,仅供参考

sudo vi /etc/network/interfaces
如下:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
####add following lines####
auto wlo1
iface wlo1 inet static
address 192.168.10.117
netmask 255.255.255.0
gateway 192.168.10.1    # netstat -rn


sudo /etc/init.d/networking restart


 

23. 设置开机启动

sudo vi /etc/rc.local
添加下面两行:

sudo /etc/init.d/apache2 start
/home/gerrit/review_site/bin/gerrit.sh start

exit 0

 

参考了以下文档,谢谢:

install gerrit:
https://blog.csdn.net/twilightdream/article/details/72953282    : 主要参考这个,但这个gerrit.conf 好像有点问题
https://www.cnblogs.com/eastnapoleon/p/6497802.html        :主要参考这个
http://www.hovercool.com/en/Gerrit%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA

https://blog.csdn.net/mmh19891113/article/details/77196399   :比较详细

install gitosis:
https://www.cnblogs.com/serv/archive/2017/06/10/6980085.html

gerrit war:

https://blog.csdn.net/mmh19891113/article/details/81013994 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值