红联Linux门户
Linux帮助

Gerrit代码管理服务器配置

发布时间:2015-10-11 11:07:31来源:linux网站作者:中心世界

ubuntu15.04中 Gerrit代码管理服务器配置,安全认证开始图简单选择的DEVELOPMENT_BECOME_ANY_ACCOUNT,后来觉得不行,得要有密码管理,就在配置文件gerrit.config中重新改为HTTP,并配置apache的反向代理,这个网上相关资料比较多,我就说下我这里用的了;


(1)安装gerrit

使用下载好的.war包,这里全都回车就行了,配置稍后可以改;最后改为数据库使用H2,安全认证选择HTTP,反向代理Y

这里提前要安装好java,我安装的jdk1.6
java -jar gerrit-full-2.5.2.war init -d review_site


(2)配置gerrit,配置文件是gerrit.config

admin$ vim review_site/etc/gerrit.config  我的配置文件如下,主要修改[auth]和[httpd]

ss@ss-HP-Z228-Microtower-Workstation:~/gerrit/review_site/etc$ cat gerrit.config
[gerrit]
basePath = git  #代码存放位置,默认
canonicalWebUrl = http://192.168.0.106:8080/      #使用局域网搭建
[database]
type = h2
database = db/ReviewDB
[auth]
type =  HTTP
[sendemail]
smtpServer = localhost
[container]
user = ss
javaHome = /usr/lib/jvm/jdk-6u45/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://*:8080/
[cache]
directory = cache
[gitweb]
cgi =/home/ss/gerrit/gitweb.cgi


(3)安装apache2服务器
sudo apt-get install --reinstall apache2  apache2.2-common


(4)设置反向代理
(4.1)在mods-enabled中创建软链接:
cd /etc/apache2/mods-enabled
ln -s ../mods-available/proxy.load
ln -s ../mods-available/proxy.conf
ln -s ../mods-available/proxy_http.load

(4.2)在/etc/apache2/sites-enabled/000-default.conf中添加代理配置(红字部分)
ss@ss-HP-Z228-Microtower-Workstation:/etc/apache2/sites-enabled$ cat 000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
###
ServerName 192.168.0.106
ProxyRequests Off 
ProxyVia Off 
ProxyPreserveHost On 

<Proxy *> 
Order deny,allow 
Allow from all 
</Proxy> 

<Location />
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthBasicProvider file
AuthUserFile /home/ss/gerrit/review_site/etc/passwd
</Location>

ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/

###
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


(6)使用htpasswd设置一个gerrit用户帐号和密码
可能要先安装下htpasswd :   sudo apt-get install htpasswd

$: touch /home/ss/review_site/etc/passwd
$: htpasswd -b /home/ss/gerrit/review_site/etc/passwd admin 123456789

(再添加gerrit用户可使用: $: htpasswd -b /home/user/gerrit/review_site/etc/passwd UserName Passwd )


(7)重启服务
启动apache2和gerrit服务
$ sudo /etc/init.d/apache2 restart
$ sudo /home/gerrit2/review_site/bin/gerrit.sh restart

到这里,在浏览器地址栏中输入”http://192.168.0.106”就会有这样提示:

Gerrit代码管理服务器配置

图1.登录提示
这里只有输入预先认证后的密码,才能够登录;第一个登录账户默认具有管理员权限, 退出登录的话只能关闭浏览器。


(8)服务器数据库中帐号权限修改

这个主要是从DEVELOPMENT_BECOME_ANY_ACCOUNT切换到HTTP认证方式后,管理员账号没有密码无法登录,所以给htpasswd创建的账号添加管理员权限

先关闭gerrit服务,然后登入H2:
jiqiren@java -jar /home/ss/gerrit/review_site/bin/gerrit/war gsql

*查看帮助: gerrt> \h
*列出所有表: gerrit>\d

将htpasswd生成的账户设置为管理员账户;
我的账户是user2,需要修改的表有两个:
1. 将登录账户的account_id改为1000000(系统管理员账户),表:accounts
update accounts set account_id=1000000 where account_id=1000003;

2. 登录账户名对应的account_id权限, 表:account_external_ids
update account_external_ids set account_id=1000000 where external_id='username:user2';

update account_external_ids set account_id=1000000 where external_id='gerrit:user2';

然后重新用user2登录gerrit,就具有管理员权限了。


Gerrit在Ubuntu 11.04上的安装与配置:http://www.linuxdiyf.com/linux/6186.html

Gerrit在Fedora上的安装配置:http://www.linuxdiyf.com/linux/6153.html