centos默认安装是没有网络的,需要配置一下。
=====================
网络配置
=====================
# 使用管理员登录
#su
#vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
#把其中onboot改为yes ,原值为no
ONBOOT=yes
#如需要使用固定IP请进行如下配置
BOOTPROTO=static
IPADDR=192.168.20.129 #自定义的IP
NETMASK =255.255.255.0
GATEWAY=192.168.20.2
DNS1=192.168.20.2
#最后重启网络服务就行了
# service network restart
========================
安装apache
========================
yum -y install httpd
======================================
安装MySQL(也可不装使用gerrit默认的h2也行)
======================================
centos 7开始mysql 不作为默认的数据库服务了,改为mariadb ,和mysql是一样一样的也就是名称不同是完全兼容的
yum -y install mariadb*
systemctl start mariadb.service #启动mariadb
systemctl enable mariadb.service #设置mariadb开机启动
mysql -u root -p #登录mysql, 默认密码为空
show databases; #显示database信息
========================================
=========================================
# yum -y install git
安装完成后看一下版本
[root@192 httpd]# git version
git version 1.8.3.1
==============================================
安装gerrit
==============================================
gerrit没有办法通过yum直接下载安装
只能手动下载一下 本人使用的是2.10版本
先要做一下准备工作在mysql中配置一下gerrit要用的
# 创建用户
mysql> CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'qwer1234';
Query OK, 0 rows affected (0.00 sec)
# 创建gerrit要用的数据表
mysql> CREATE DATABASE reviewdb;Query OK, 1 row affected (0.00 sec)
# 设定编码为latin1, 中文不支持 设为utf8会有其它问题
mysql> ALTER DATABASE reviewdb charset=latin1;Query OK, 1 row affected (0.00 sec)
# 把reviewdb的所有权限赋给gerrit2
mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';Query OK, 0 rows affected (0.00 sec)
# 刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
新建Linux 用户gerrit2
adduser gerrit2
转换到用户
su gerrit2
下面开始安装gerrit
把准备好的gerrit war包copy到可访问的目录
Java -jar gerrit-2.10.war ini -d ~/code_review
安装配置请参考如下内容,也可打开 vim ~/code_review/etc/gerrit.config
[gerrit]
basePath = git
canonicalWebUrl = http://192.168.20.129:8080/gerrit2/ #需要给外部访问的地址可自定义
[database]
type = mysql #使用mysql作为默认数据库
hostname = localhost
database = reviewdb # 数据库名就是刚才创建的数据库名称
username = gerrit2
[index]
type = LUCENE
[auth]
type = HTTP # 使用http认证,可在内部局域网进行配置,默认的openid需要google的共网帐号,在国内不可能做到了
[sendemail]
smtpServer = localhost
[Container]
user = gerrit2
javaHome = /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://192.168.20.129:8081/gerrit2/ #这个很重要,不要和canonicalWebUrl节配置的端口重覆用于apache反向代理
[cache]
directory = cache
==========================================
配置apache
==========================================
创建 /etc/httpd/conf.d/gerrit2.conf
输入如下内容
<VirtualHost 192.168.20.129:8080>
ServerName 192.168.20.129
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /gerrit2/ http://192.168.20.129:8081/gerrit2/ #必须和gerrit配置文件中的listenUrl值一致
ProxyPassReverse /gerrit2/ http://192.168.20.129:8081/gerrit2/
<Location /gerrit2/login/>
AuthType Basic
AuthName "Gerrit Code Review"
AuthBasicProvider file
AuthUserFile /etc/httpd/passwords #用于登录验证的密码文件
Require valid-user
</Location>
</VirtualHost>
生成登录密码文件/etc/httpd/passwords
htpasswd -c /etc/httpd/passwords mmx
# mmx 为新加的用户名 (注第一个加入的用户默认为管理员)
加多个用户名可用
htpasswd /etc/httpd/passwords mmx1
htpasswd /etc/httpd/passwords mmx2
最后为httpd加上安全许可 否则 会报无法访问网络的错误
setsebool -P httpd_can_network_connect 1
systemctl restart httpd.service #重启apache
systemctl enable httpd.service #设置apache开机启动
sh ~/code_review/bin/gerrit.sh restart #重启一下gerrit
为了其它服务器能访问本机的gerrit,需配置一下centos的防火墙
这里偷懒一下,直接关防火墙
systemctl status firewalld.service
systemctl disable firewalld.service
然后就能直接访问http://192.168.20.129:8080/gerrit2/
本文参考了http://wenku.baidu.com/link?url=0OmPyFN8u740Zh69nFxbsw1qvv_uNI4k--_Nb2r34r5nJNdgO2YBUJKOolBDGAmRGl5rHvPaHdM07MXrEHtSST4LJbSbMaMOligR2Y82CW3