Gerrit代码管理服务器配置

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”就会有这样提示:


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


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

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

先关闭gerrit服务,然后登入H2:

wireShark@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,就具有管理员权限了。

发布了10 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/orgst/article/details/49026623