NeoKylin_Desktop_personal搭建代码仓库服务器

作者: halazi100 2014-11-17 15:42:56
[i=s] 本帖最后由 halazi100 于 2014-11-18 13:30 编辑 [/i]

首先要安装git, openjdk-6-jdk(NeoKylin_Desktop_personal默认已安装), postfix(email服务);
# yum install git
# yum install postfix
配置数据库
在NeoKylin_Desktop_personal上安装mysql数据库服务
# yum install mysql
重启数据库服务
# /etc/init.d/mysqld restart
初始化设置mysql数据库的root密码
$ /usr/bin/mysqladmin -u root password ‘password_of_root'
为gerrit2创建帐户和数据表格
$ mysql -u root -p

CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'Gerrit2_passwd';
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset = latin1;
GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
FLUSH PRIVILEGES;
exit;



安装gerrit Server
创建用户组和用户
# groupadd gerrit2
# useradd -r -m -d /home/gerrit2 -s /bin/bash -g gerrit2 gerrit2
安装gerrit server
# sudo su gerrit2
$ cd
$ wget http://gerrit.google.com/files/gerrit-full-2.5.2.war
可以到以下地址直接下载 http://pan.baidu.com/s/1qWr0wxA 密码:u5lz
直接将该文件复制到对应目录,并将bcprov-jdk16-144.jar和mysql-connector-java-5.1.10.jar复制到gerrit server将要安装的目录的lib文件夹

$ java -jar gerrit-full-2.5.2.war init -d /home/gerrit2/

*** Gerrit Code Review 2.5.2
***
*** Git Repositories
***
Location of Git repositories [git]:
*** SQL Database
***
Database server type [h2]: MYSQL
Server hostname [localhost]:
Server port [(mysql default)]:
Database name [reviewdb]:
Database username [gerrit2]:
gerrit2's password :
confirm password :
*** Index
***
Type [LUCENE/?]:
The index must be rebuilt before starting Gerrit:
java -jar gerrit.war reindex -d site_path
*** User Authentication
***
Authentication method [OPENID/?]: HTTP
Get username from custom HTTP header [y/N]?
SSO logout URL :
*** Review Labels
***
Install Verified label [y/N]?
*** Email Delivery
***
SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username :
*** Container Process
***
Run as [gerrit2]:
Java runtime
[/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre]:
Upgrade /home/gerrit2/bin/gerrit.war [Y/n]?
Copying gerrit-full-2.5.2.war to /home/gerrit2/bin/gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Generating SSH host key ... rsa(simple)... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]? y
Proxy uses SSL (https://) [y/N]?
Subdirectory on proxy server [/]:
Listen on address [*]:
Listen on port [8081]: 8080
Canonical URL [http://localhost/]:
*** Plugins
***
Install plugin replication version v1.0 [y/N]? y
Initialized /home/gerrit2


安装完成注意检查配置文件/home/gerrit2/etc/gerrit.config
[gerrit]
basePath = git
canonicalWebUrl=http://localhost/
[database]
type = MYSQL
hostname = localhost
database = reviewdb
username = gerrit2
[auth]
type = HTTP
[sendemail]
smtpServer = localhost
[container]
user = gerrit2
javaHome = /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://*:8080/
[cache]
directory = cache



创建空白文件/etc/default/gerritcodereview并写入一句"GERRIT_SITE=/home/gerrit2"
# echo "GERRIT_SITE=/home/gerrit2" > /etc/default/gerritcodereview

检查gerrit server是否可以启动
# sudo su gerrit2
gerrit2@localhost $ ~/bin/gerrit.sh start
Starting Gerrit Code Review: OK
gerrit2@localhost $
如果看到以上信息,说明gerrit server已经可以启动

配置web服务
# yum install httpd
# touch /etc/httpd/conf.d/gerrit_proxy.conf
# vim /etc/httpd/conf.d/gerrit_proxy.conf
ServerName localhost

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

Order deny,allow
Allow from all


AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthBasicProvider file
AuthUserFile /etc/httpd/.passwords

ProxyPass / http://localhost:8080/


重启apache服务
# /etc/init.d/httpd restart
设置SELinux安全等级
# /usr/sbin/setsebool -P httpd_can_network_connect 1

为http认证添加帐户
为http认证添加帐户,否则登录时将看到"Internal server error"
创建密码文件/etc/httpd/.passwords并添加第一个帐户Admin和密码admin123
# htpasswd -cb /etc/httpd/.passwords Admin admin123
向密码文件/etc/httpd/.passwords添加帐户test1和密码test
# htpasswd -b /etc/httpd/.passwords username2 userpasswd
-c 选项表示要创建新文件
-b 表示立即输入密码

打开浏览器输入http://localhost测试
使用刚刚创建的帐户和密码登录,填写fullname;验证通过的用户将被自动添加到gerrit帐户中,第一个登录的帐户将默认为管理员帐号;
如果有什么问题请检查日志文件/etc/httpd/logs/error_log
[attach]41416[/attach]
[attach]41417[/attach]

手动添加gerrit用户的email address
如果只是本地测试的gerrit server因处在局域网中,无法验证用户邮件,因此需要手动添加用户的邮件;其实用户验证邮箱的过程就是向数据库添加对应邮箱地址的过程;
$ sudo su gerrit2
$ cd
$ java -jar bin/gerrit.war gsql
gerrit> select * from account_external_ids;
gerrit> update account_external_ids set email_address = 'email@xx.com' where account_id = your_acc_id ;
gerrit> select * from account_external_ids;
gerrit> \q

$
$
整个配置过程的ppt指导附件[attach]41418[/attach]
$
$
如果无法连接请注意防火墙配置问题
$

相关资讯