Gerrit代码管理服务器配置
2015-10-10 17:39
218 查看
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,就具有管理员权限了。
(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,就具有管理员权限了。
相关文章推荐
- C语言:typedef struct与指针
- php5.2与sqlserver2005、sqlserver2008的连接
- Django开发之south详解
- C# 错误!!容量超出了最大容量。参数名: capacity 这个是什么问题呢?
- java二叉树 TreeMap集合测试
- 用java来写一个猜数字游戏,要用到界面
- ASP.NET中MVC传递数据的几种形式总结
- java代码获知该方法被哪个类、哪个方法、在哪一行调用
- PHP语音SDK接口开发经验及具体开发实现
- php 继承
- 编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现。
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
- Java编程思想(一) —— 一切都是对象及内存分配
- ubuntu 15 QT错误异常处理汇总
- aspx 弹框
- [JAVA]定时任务之-Quartz使用篇
- 模拟银行用户三次密码输入
- c++的this指针与空指针类成员函数访问
- Python标准库之collections.Counter
- c++ virtual关键字详解