1 安装环境
- VMware15.5.2 build-15785246
- CentOS7:CentOS-7-x86_64-DVD-2003.iso
- Java: 1.8.0_251
- mysql: 5.6.50 MySQL Community Server (GPL)
- Gerrit: gerrit-2.14.6.war
2 安装前提
2.1 关闭selinux
修改selinux:
# vim /etc/selinux/config
SELINUX=disabled
# reboot
2.2 安装git
# yum -y install git
2.3 配置反向代理
- 安装httpd
# yum install httpd
- 添加配置
# vim /etc/httpd/conf/httpd.conf
#增加监听端口
Listen 8090
#在文件末尾增加以下内容
<VirtualHost 192.168.80.142:8090>
ServerName 192.168.80.142
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
AuthType Basic
AuthName "Gerrit Code Review"
AuthUserFile /home/gerrit/gerrit.passwd
Require valid-user
</Location>
AllowEncodedSlashes On
ProxyPass / http://192.168.80.142:8081/
ProxyPassReverse / http://192.168.80.142:8081/
</VirtualHost>
- 创建http认证用户
# touch /home/gerrit/gerrit.passwd
# htpasswd -cb /home/gerrit/gerrit.passwd "admin"
New password: xxxxxx
Re-type new password: xxxxxx
Adding password for user admin
- 测试启动httpd,将监听8090端口(反向代理到8081端口)
systemctl start httpd
2.4 配置数据库
- 安装mysql
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-server mysql-client libmysqlclient-dev mysql-devel MySQL-python
- 检查mysql是否安装成功
# systemctl status mysqld // 检查mysql服务状态
- 数据库配置
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.50 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>CREATE USER 'gerrituser'@'localhost' IDENTIFIED BY '123456'; // 创建账号,并设置密码
mysql>create database gerritdb CHARACTER SET utf8; // 创建数据库
mysql>GRANT ALL ON gerritdb.* TO 'gerrituser'@'localhost'; // 赋予远程连接权限
mysql>flush privileges;
mysql>exit
NOTE:
- 手动启动mysql:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
# service mysqld start // 没有启动service则报错
# mysql
- mysql使用前f非root账号前,先测试连接,若失败则先检查账号,以及密码:
# mysql -u gerrituser -p // 指定账号登陆mysql
Enter password:
ERROR 1045 (28000): Access denied for user 'gerrituser'@'localhost' (using password: YES)
- 修改账号密码方法:
# mysql -u root -p // 使用root账号登陆mysql
mysql>set password for 'gerrituser'@'localhost' = password('123456'); // 修改新建账号密码
mysql>flush privileges;
mysql>exit
3 安装Gerrit
- 添加Gerrit账号
# useradd gerrit
# su gerrit
- 创建Gerrit工作目录
$ cd ~
$ mkdir gerrit-site
- 下载Gerrit安装包
$ wget https://www.gerritcodereview.com/download/gerrit-2.14.6.war
- 安装Gerrit
[gerrit@localhost ~]$ java -jar gerrit-2.14.6.war init -d gerrit_site/
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
*** Gerrit Code Review 2.14.6
***
*** Git Repositories
***
Location of Git repositories [git]:
*** SQL Database
***
Database server type [mysql]: // mysql
Server hostname [localhost]:
Server port [(mysql default)]:
Database name [gerritdb]: // gerritdb
Database username [gerrituser]: // gerrituser,提前测试
Change gerrituser's password [y/N]? y // 密码与mysql账号密码保持一致
gerrituser's password :
confirm password :
*** Index
***
Type [lucene/?]:
*** User Authentication
***
Authentication method [http/?]: // http
Get username from custom HTTP header [y/N]?
SSO logout URL :
Enable signed push support [y/N]?
*** Review Labels
***
Install Verified label [y/N]? // y
*** Email Delivery
***
SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [none/?]:
SMTP username :
*** Container Process
***
Run as [gerrit]:
Java runtime [/opt/jdk1.8.0_251/jre]:
Upgrade gerrit_site/bin/gerrit.war [Y/n]?
Copying gerrit-2.14.6.war to gerrit_site/bin/gerrit.war
*** SSH Daemon
***
Listen on address [*]: Listen on port [29418]:
*** HTTP Daemon
***
Behind reverse proxy [y/N]?
Use SSL (https://) [y/N]?
Listen on address [*]:
Listen on port [8081]:
Canonical URL [http://localhost:8081/]:
*** Cache
***
*** Plugins
***
Installing plugins.
Install plugin commit-message-length-validator version v2.14.6 [y/N]?
Install plugin download-commands version v2.14.6 [y/N]?
Install plugin hooks version v2.14.6 [y/N]?
Install plugin replication version v2.14.6 [y/N]?
Install plugin reviewnotes version v2.14.6 [y/N]?
Install plugin singleusergroup version v2.14.6 [y/N]?
Initializing plugins.
No plugins found with init steps.
Initialized /home/gerrit/gerrit_site
[gerrit@localhost ~]$
- 检查Gerrit配置文件
配置好的gerrit.config:
$ vim gerrit-site/etc/gerrit.config
[gerrit]
basePath = git
serverId = 7f209e09-7673-4c13-bb1d-980f7f145149
canonicalWebUrl = http://192.168.80.142:8090
[database]
type = mysql
hostname = localhost
database = gerritdb
username = gerrituser
[index]
type = LUCENE
[auth]
type = HTTP
[receive]
enableSignedPush = false
[sendemail]
smtpServer = localhost
[container]
user = gerrit
javaHome = /opt/jdk1.8.0_251/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://192.168.80.142:8081/
[cache]
directory = cache
4 测试启动与配置
- 配置防火墙端口
$ firewall-cmd --zone=public --add-port=8090/tcp --permanent
$ firewall-cmd --zone=public --add-port=8081/tcp --permanent
$ firewall-cmd --zone=public --add-port=29418/tcp --permanent
$ firewall-cmd --reload //重新加载防火墙策略
- 启动Gerrit
$ ./gerrit_site/bin/gerrit.sh start //启动gerrit
$ systemctl start httpd //启动httpd
$ netstat -ltnp 查看监听状态
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 934/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1388/master
tcp6 0 0 :::22 :::* LISTEN 934/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1388/master
tcp6 0 0 :::8090 :::* LISTEN 3781/httpd
tcp6 0 0 :::29418 :::* LISTEN 2192/GerritCodeRevi
tcp6 0 0 :::3306 :::* LISTEN 1238/mysqld
tcp6 0 0 192.168.80.142:8081 :::* LISTEN 2192/GerritCodeRevi
- 设置开机启动
sudo cp gerrit_site/etc/gerrit.config /etc/init.d/gerrit
sudo ln -snf /etc/init.d/gerrit /etc/rc2.d/S90gerrit
sudo ln -snf /etc/init.d/gerrit /etc/rc3.d/S90gerrit