一 安装依赖环境
1 Java
Centos 系统安装命令 yum -y install java安装jdk后,概率性出现java javac冲突版本不一致不可使用java命令安装gerrit。安装选定版本 gerrit2.14对应1.8版本java gerrit3.0以上 java安装更高版本 ,版本保持相对一致否则安装不了gerrit
安装前准备工作
步骤一:查询系统是否以安装jdk
#rpm -qa|grep java
或 #rpm -qa|grep jdk
或 #rpm -qa|grep gcj
步骤二:卸载已安装的jdk
#rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
步骤三:验证一下是还有jdk
#rpm -qa|grep java
#java -version
1)直接rpm包安装jdk(官网下载最新版本)
将rpm包复制到centos服务器目录下/usr1/gerrit/
安装命令
rpm –ivh jdk-16.0.1_linux-x64_bin.rpm
2)yum安装
yum查询版本号
yum search java|grep jdk
选择对应版本安装
yum install java-1.8.0-openjdk.x86_64
2 安装apache(httpd)
yum install -y httpd
3 数据库安装(PostgresSQL)
1)安装rpm文件
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2) 安装客户端
yum install postgresql10
3) 安装服务端
yum install postgresql10-server
4) 初始化
/usr/pgsql-10/bin/postgresql-10-setup initdb
5) 设置自动启动并且启动postgresql服务
systemctl enable postgresql-10
systemctl start postgresql-10
创建用户和数据库
1)使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码)
su - postgres
2) 登录postgresql数据库
3) 创建用户和数据库并授权
create user yeshenjun with password '123456'; // 创建用户
create database reviewdb owner yeshenjun; // 创建数据库
4) 退出psql(输入 \q 再按回车键即可)
\q
修改/var/lib/pgsql/10/data/pg_hba.conf文件
二 gerrit安装
安装时注意jdk和gerrit的版本是否兼容如果有一个版本过于低会报错
Exception in thread "main" com.google.common.util.concurrent.UncheckedExec……
复制gerrit安装包到/usr1/gerrit/ 执行下面安装命令
java -jar gerrit-3.4.0.war init -d review_size(除了下面设置 其他都默认直接回车)
Create '/root/review_site' [Y/n]? y #程序会自动创建该文件,必须输入”Y“,如果输入"N"则程序会退出,默认就是"Y",因此我们直接回车应该也可以的
Database server type [h2]: postgresql
Server hostname [localhost]:
Server port [(postgresql default)]:
/*这里要和创建数据库输入的账户/密码一致*/
Database name [reviewdb]:
Database username [yeshenjun]:
gerrit2's password :
confirm password :
Location of Git repositories [git]: /haier/gerrit #指定Git存储库,最好指定一个不存在的目录,他会自动创建。
Authentication method [openid/?]: HTTP #认证方法输入HTTP,我们要使用反向代理
Copy gerrit-3.0.0.war to review_site/bin/gerrit.war [Y/n]? y #拷贝gerri安装包
Behind reverse proxy [y/N]? y #使用发向代理
Proxy uses SSL (https://) [y/N]? n #不适用SSL
Listen on port [8081]: 8888 #指定gerrit的服务端口
Installing plugins.
Install plugin codemirror-editor version v3.0.0 [y/N]? y #接下来就是询问我们是否安装插件,我们一路”y“ 即可~
/usr1/gerrit/review_site/ 这个命令(到gerrit目录的上一层) chmod -R o+x gerrit , 将gerrit文件夹变为可执行
三 配置代理
vi /etc/httpd/conf/httpd.conf
添加一下几行标注部分根据需要修改
Listen 8090
<VirtualHost *:8090>
ServerName 10.211.22.137
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthUserFile /etc/httpd/passwords
</Location>
AllowEncodedSlashes On
ProxyPass / http://10.211.22.137:8888/ nocanon
</VirtualHost>
启动httpd systemctl restart httpd
添加http用户
htpasswd -cb /etc/httpd/passwords admin admin
htpasswd -b /etc/httpd/passwords yeshenjun 123456
# htpasswd -m gerrit.password username
添加http用户后使用新用户登录后 gerrit自动添加到数据库然后可以在gerrit服务器上管理此账户
四 管理gerrit
./review_site/bin/gerrit.sh status
查看gerrit状态
./review_site/bin/gerrit.sh start
开启gerrit
./review_site/bin/gerrit.sh stop
停止gerrit
五 打开防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent
将需要的端口都打开 8090,8888和29418
更新防火墙策略
firewall-cmd --reload
六 操作SELinux、
为了解决打开首页显示配置错误 或者503 页面
[root@192 etc]# getenforce
Enforcing
设置宽容模式
[root@192 etc]# setenforce 0
[root@192 etc]# getenforce
Permissive
要解决这个问题,首先通过动态设置布尔值来测试(还不是永久性的):
/usr/sbin/setsebool httpd_can_network_connect 1
如果可行,您可以设置它以便更改默认策略,并且此设置将在重新启动后保持不变:
/usr/sbin/setsebool -P httpd_can_network_connect 1
七 登录gerrit网址
必须是登录apache软件的端口(使用Apache反向代理gerrit gerrit的端口登录不上)
八 异常处理
安装是出现异常请查询log
httpd log
/etc/httpd/logs/error_log
gerrit log
gerrit/review_site/log