CentOS7详细搭建Gerrit服务

2023-05-16

文章目录

  • 0.环境准备
  • 1.安装Git
  • 2.下载Gerrit
  • 3.安装Java
    • 3.1 旧JDK卸载
    • 3.2 安装指定JDK
  • 4.安装MySQL
    • 4.1 卸载Mariadb
    • 4.2 安装MySQL
    • 4.3 创建数据库
  • 5.初始化Gerrit
  • 6.使用HTTP认证配置
    • 6.1 nginx服务认证
    • 6.2 httpd服务认证

服务版本
Git1.8.3.1
Gerrit3.5.1
Java11.0.13
MySQL5.7.27

0.环境准备

# 关闭防火墙
[root@gerrit ~]# systemctl stop firewalld
[root@gerrit ~]# systemctl disable firewalld

# 关闭SELINUX
[root@gerrit ~]# vim /etc/selinux/config
SELINUX=disabled
:wq! # 保存退出

# 使配置立即生效
[root@gerrit ~]# setenforce 0

1.安装Git

# 安装
[root@gerrit ~]# yum -y install git
# 验证
[root@gerrit ~]# git --version
git version 1.8.3.1

2.下载Gerrit

官网下载地址:https://www.gerritcodereview.com/
在这里插入图片描述

# 下载gerrit war包,在 /root 目录下
[root@gerrit ~]# wget https://gerrit-releases.storage.googleapis.com/gerrit-3.5.1.war

3.安装Java

3.1 旧JDK卸载

[root@gerrit ~]#  rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
rpm -qa:表示查询所有已经安装的软件包
grep -i:表示过滤时不区分大小写
xargs -n1:表示一次获取上次执行结果的一个值
rpm -e --nodeps:表示卸载软件

3.2 安装指定JDK

# 创建节点安装服务目录
[root@gerrit ~]#  mkdir /opt/software
# 解压JDK
[root@gerrit ~]# tar -zxvf jdk-11.0.13_linux-x64_bin.tar.gz -C /opt/software/
# 配置环境变量
[root@gerrit ~]# vim /etc/profile.d/jdk11.sh
export JAVA_HOME=/opt/software/jdk-11.0.13
export JRE_HOME=$JAVA_HOME
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@gerrit ~]# source /etc/profile
# 验证JDK安装
[root@gerrit ~]# java --version
java 11.0.13 2021-10-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.13+10-LTS-370)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.13+10-LTS-370, mixed mode)

4.安装MySQL

  • 部署完Gerrit之后,数据库中是空,好像数据库并没有用到

4.1 卸载Mariadb

# CentOS自带一些mariadb相关的依赖
[root@gerrit ~]# rpm -qa | grep mariadb
[root@gerrit ~]# rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

# 如果该节点安装过mysql数据库,请检查还是否有依赖包,并卸载
[root@gerrit ~]# rpm -qa | grep mysql
[root@gerrit ~]# rpm -e --nodeps mysql*

4.2 安装MySQL

# 在外网下载 MySQL的相关离线安装包,拷贝到内网进行安装
[https://dev.mysql.com/downloads/mysql/5.7.html#downloads]

# 安装命令如下
[root@gerrit ~]# rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm --force --nodeps
[root@gerrit ~]# rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm --force --nodeps
[root@gerrit ~]# rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm --force --nodeps
[root@gerrit ~]# rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm --force --nodeps
[root@gerrit ~]# rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm --force --nodeps
[root@gerrit ~]# rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm --force --nodeps

# 启动mysql服务
[root@gerrit ~]# systemctl start mysqld

# 查看密码
[root@gerrit ~]# cat /var/log/mysqld.log | grep password
2022-03-23T11:31:03.443772Z 1 [Note] A temporary password is generated for root@localhost: WF#CxnWW;8cF

# 修改root密码,密码登录:mysql -u root
# 首次登录必须先修改密码(强密码)
mysql>alter user user() identified by "Spark@V123";

mysql>SHOW variables LIKE 'validate_password%';
mysql>set global validate_password_policy=0;
mysql>set global validate_password_length=4;
# 可以修改为弱密码啦
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY "bigdata123";
mysql>flush privileges; # 更新权限

mysql>use mysql;
mysql>update user set host = '%' where user ='root'; # 配置可远程登录
mysql>flush privileges; # 更新权限
mysql>exit; # 退出

# 修改MySQL配置文件:vim /etc/my.cnf
# 在[mysqld]下添加
collation_server=utf8_general_ci
character_set_server=utf8
default-storage-engine=INNODB
# 在[client]下添加(如果没有[client],则创建)
default_character-set=utf8

# 启动mysql服务
[root@gerrit ~]# systemctl restart mysqld

# 设置开机启动
[root@gerrit ~]# systemctl enable mysqld

4.3 创建数据库

# 创建数据库
mysql>CREATE DATABASE reviewdb CHARACTER SET utf8;
mysql>set global validate_password_policy=0;
# 创建用户
mysql>CREATE USER 'gerrit'@'%'IDENTIFIED BY 'bigdata123';
# 赋权
mysql>GRANT ALL PRIVILEGES ON reviewdb.* TO 'gerrit'@'%';
# 刷线权限
mysql>FLUSH PRIVILEGES;

5.初始化Gerrit

# 创建用户
[root@gerrit ~]# adduser gerrit
# gerrit拷贝到gerrit用户的家目录
[root@gerrit ~]# cp gerrit-3.5.1.war /home/gerrit/
# 切换用户
[root@gerrit ~]# su - gerrit

# 初始化环境(需要联网下载插件,可以提前下载好放在code_review/lib/目录中)
[gerrit@gerrit ~]$ mkdir -p /home/gerrit/code_review
[gerrit@gerrit ~]$ java -jar gerrit-3.5.1.war init -d /home/gerrit/code_review

6.使用HTTP认证配置

[gerrit@gerrit ~]$ java -jar gerrit-3.5.1.war init -d /home/gerrit/code_review
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2022-03-23 18:27:08,050] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/code_review/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 3.5.1
***

Create '/home/gerrit/code_review' [Y/n]?

*** Git Repositories
***

Location of Git repositories   [git]:

*** JGit Configuration
***

Auto-configured "receive.autogc = false" to disable auto-gc after git-receive-pack.

*** Index
***

Type                           [lucene]:

*** User Authentication
***

Authentication method          [openid/?]: HTTP
Get username from custom HTTP header [y/N]?
SSO logout URL                 :
Enable signed push support     [y/N]? 
Use case insensitive usernames [Y/n]?

*** 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                         [gerrit]:
Java runtime                   [/opt/software/jdk-11.0.13]:
Copy gerrit-3.5.1.war to /home/gerrit/code_review/bin/gerrit.war [Y/n]?
Copying gerrit-3.5.1.war to /home/gerrit/code_review/bin/gerrit.war

*** SSH Daemon
***

Listen on address              [*]:
Listen on port                 [29418]:
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done

*** HTTP Daemon
***

Behind reverse proxy           [y/N]?
Use SSL (https://)             [y/N]?
Listen on address              [*]:
Listen on port                 [8080]:
Canonical URL                  [http://gerrit:8080/]: http://192.168.120.11:8080/

*** Cache
***


*** Plugins
***

Installing plugins.
Install plugin codemirror-editor version v3.5.1 [y/N]? y
Installed codemirror-editor v3.5.1
Install plugin commit-message-length-validator version v3.5.1 [y/N]? y
Installed commit-message-length-validator v3.5.1
Install plugin delete-project version v3.5.1 [y/N]? y
Installed delete-project v3.5.1
Install plugin download-commands version v3.5.1 [y/N]? y
Installed download-commands v3.5.1
Install plugin gitiles version v3.5.1 [y/N]? y
Installed gitiles v3.5.1
Install plugin hooks version v3.5.1 [y/N]? y
Installed hooks v3.5.1
Install plugin plugin-manager version v3.5.1 [y/N]? y
Installed plugin-manager v3.5.1
Install plugin replication version v3.5.1 [y/N]? y
Installed replication v3.5.1
Install plugin reviewnotes version v3.5.1 [y/N]? y
Installed reviewnotes v3.5.1
Install plugin singleusergroup version v3.5.1 [y/N]? y
Installed singleusergroup v3.5.1
Install plugin webhooks version v3.5.1 [y/N]? y
Installed webhooks v3.5.1
Initializing plugins.

============================================================================
Welcome to the Gerrit community

Find more information on the homepage: https://www.gerritcodereview.com
Discuss Gerrit on the mailing list: https://groups.google.com/g/repo-discuss
============================================================================
Initialized /home/gerrit/code_review
Init complete, reindexing accounts,changes,groups,projects with: reindex --site-path /home/gerrit/code_review --threads 1 --index accounts --index changes --index groups --index projects --disable-cache-statsReindexed 0 documents in accounts index in 0.0s (0.0/s)
Index accounts in version 11 is ready
Reindexing groups:      100% (2/2)
Reindexed 2 documents in groups index in 0.2s (8.4/s)
Index groups in version 8 is ready
Reindexing changes: Slicing projects: 100% (2/2), done
Reindexed 0 documents in changes index in 0.0s (0.0/s)
Index changes in version 71 is ready
Reindexing projects:    100% (2/2)
Reindexed 2 documents in projects index in 0.0s (44.4/s)
Index projects in version 4 is ready
Executing /home/gerrit/code_review/bin/gerrit.sh start
Starting Gerrit Code Review: WARNING: Could not adjust Gerrit's process for the kernel's out-of-memory killer.
         This may be caused by /home/gerrit/code_review/bin/gerrit.sh not being run as root.
         Consider changing the OOM score adjustment manually for Gerrit's PID=6996 with e.g.:
         echo '-1000' | sudo tee /proc/6996/oom_score_adj
OK
Waiting for server on 192.168.120.11:8080 ... OK
Opening http://192.168.120.11:8080/#/admin/projects/ ...OK

  • 如果没有启动,需要手动启动
[gerrit@gerrit ~]$ /home/gerrit/code_review/bin/gerrit.sh restart

在这里插入图片描述

  • 此时,访问8080端口,显示需要认证设置。HTTP认证有两种服务认证方式:ngin、httpd
    在这里插入图片描述

6.1 nginx服务认证

# 安装
[root@gerrit ~]# yum install epel-release
[root@gerrit ~]# yum -y install nginx httpd

# 要保证httpd服务关闭
[root@gerrit ~]# systemctl stop httpd
[root@gerrit ~]# systemctl disable httpd

# 配置
[root@gerrit ~]# vim /etc/nginx/nginx.conf
location / {
  auth_basic              "Gerrit Code Review";
  auth_basic_user_file    /passwords;
  proxy_pass              http://127.0.0.1:8080;
  proxy_set_header        X-Forwarded-For $remote_addr;
  proxy_set_header        Host $host;
}

# 启动nginx(httpd服务必须停止)
[root@gerrit ~]# systemctl start nginx
# 设置开机启动
[root@gerrit ~]# systemctl enable nginx

# Gerrit创建管理员用户(Gerrit默认第一个登录的用户名为超级管理员)
[root@gerrit ~]# touch /passwords # 和nginx配置对应
[root@gerrit ~]# htpasswd -m /passwords admin
New password:		# 密码设置为 admin
Re-type new password:
Adding password for user admin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 httpd服务认证

# 要保证nginx服务停止
[root@gerrit ~]# systemctl stop nginx
[root@gerrit ~]# systemctl disable nginx

[root@gerrit ~]# vim /etc/httpd/conf/httpd.conf
## 在最后一行追加如下内容
<VirtualHost 192.168.120.11:80>
    ServerName 192.168.120.11
    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 /gerrit.password
    </Location>
    ProxyPass / http://192.168.120.11:8080/
 </VirtualHost>

[root@gerrit ~]# systemctl start httpd
[root@gerrit ~]# systemctl enable httpd

[root@gerrit ~]# touch /gerrit.password
[root@gerrit ~]# htpasswd -m /gerrit.password admin
New password:		# 密码admin
Re-type new password:
Adding password for user admin

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS7详细搭建Gerrit服务 的相关文章

随机推荐

  • 简单的命令快速下载远程各种docker 镜像 github 库,各种软件资料。

    做研究开发和项目实战中经常要下载国外的docker镜像和软件源代码 xff0c 软件安装包 xff0c 这个过程如果子国外的服务器上执行 xff0c 一般不会超过10秒 xff0c 如果在中国境内的机器上执行 xff0c 一般要5分钟甚至几
  • 字节序(byte order)、比特序(bit order)、MSB/LSB、大端模式/小端模式 概念误混淆

    发现之前概念一直混淆 xff0c 今天就理清楚以作备忘 前提 xff1a 内存的读写永远从低地址开始读 写 xff0c 从低到高 xff01 从低到高 xff01 从低到高 xff01 内存的读写永远从低地址开始读 写 xff01 xff0
  • 蓝牙协议栈(六、芯片组)

    在本章中 xff0c 我们首先解释蓝牙芯片组如何物理连接 xff0c 然后提供有关流行的蓝牙芯片组及其与BTstack一起使用的信息 HCI接口 主机 xff08 计算机或MCU xff09 与主机控制器 xff08 实际蓝牙芯片组 xff
  • 【C++深度解析】16、类的静态成员

    文章目录 1 静态成员变量2 静态成员函数3 小结 1 静态成员变量 静态成员变量属于整个类 xff0c 所有对象共享类的静态成员变量可直接通过对象名 类名访问静态成员变量的生命期不依赖于任何对象 特性 xff1a 静态成员变量需要在类外单
  • catkin init/build 遇到catkin:command not found 的解决办法。

    背景 xff1a 安装ROS环境点击打开链接后 xff0c catkin make可以跑 xff0c 但是如果跑catkin init或者catkin build就会遇到catkin xff1a command not found 原因 x
  • 矩形检出算法介绍

    背景 矩形检出算法即从一副图像中找出候选矩形 xff0c 不同于hough找圆等算法在opencv中有现成接口 xff0c 矩形检出算法需要自己手动实现 其常见用途是移动端拍摄文档进行矫正等 xff0c 近期开发二维码识别时也用到了矩形检出
  • www-authenticate

    www authenticate是一种简单的用户身份认证技术 很多验证都采用这种验证方式 尤其在嵌入式领域中 优点 方便 缺点 xff1a 这种认证方式在传输过程中采用的用户名密码加密方式为BASE 64 其解码过程非常简单 如果被嗅探密码
  • 【无人驾驶系列】光学雷达(LiDAR)在无人驾驶技术中的应用

    作者 xff1a 刘博聪 xff0c 刘少山 xff0c James Peng 责编 xff1a 周建丁 xff08 投稿请联系zhoujd 64 csdn net xff09 声明 xff1a 程序员 原创文章未经允许不得转载 xff0c
  • 小程序内嵌webview无法使用JSAPI调起支付

    需求背景 xff1a 原本做了在H5页面浏览器环境 xff08 H5方式调起支付 xff09 及微信环境 xff08 微信JSAPI调起支付 xff09 xff0c 有需要在小程序中发起微信支付 调研 xff1a 在小程序内嵌webview
  • 轻松玩转Makefile | 基础用法

    前言 本文通过几个简单的示例 xff0c 可以快速了解Makefile的基本使用方法 xff0c 适用于编译我们平时练习所编写的小量代码 1 make命令 Makefile文件内容 all为目标 xff0c 这里没有依赖的文件 xff0c
  • CentOS7使用Selenium截图时中文乱码

    文章目录 1 问题2 CentOS7安装中文字体3 解决 1 问题 在CentOS7环境下 xff0c 使用Selenium进行Web自动化测试 xff0c 页面截图时 xff0c 遇到中文乱码 xff0c 中文显示为小框框 xff0c 问
  • CentOS7 Selenium设置窗口最大模式

    文章目录 1 问题2 解决 1 问题 在CentOS7环境下 xff0c Selenium进行截图时 xff0c 发现 xff0c 截图比较小 xff0c 窗口最大化 driver maximize window 没有生效 xff0c 截图
  • CentOS7安装Selenium

    文章目录 1 安装Chrome2 配置chromedriver3 验证4 运行程序 1 安装Chrome 下载地址 xff1a 链接 xff1a https pan baidu com s 1Kfe tch MOQK8nHydBNEvA 提
  • Linux-Jenkins添加Windows节点并执行Python脚本

    文章目录 1 Jenkins添加节点2 Win 启动3 Jenkins在Windows执行Python脚本 1 Jenkins添加节点 系统管理 节点管理 新建节点 填写节点名称 xff08 WinSelf xff0c 中间不要带段横杠 x
  • CentOS7离线安装Zabbix4.4

    文章目录 1 安装MySQL1 1 卸载Mariadb1 2 准备MySQL离线安装包 2 安装HTTPD服务2 1 HTTPD离线安装包准备2 2 HTTPD离线安装 3 安装PHP3 1 PHP离线安装包准备3 2 PHP离线安装 4
  • Gazebo 详细介绍

    Gazebo is a 3D multi robot simulator with dynamics It is capable of simulating articulated robot in complex and realisti
  • CentOS7安装Firefox-Selenium

    文章目录 1 下载并安装2 执行Python 1 下载并安装 创建目录 mkdir firefox 下载Firefox 在Linux的安装包 https ftp mozilla org pub firefox releases wget h
  • Pytest+Allure安装

    文章目录 1 Pytest 环境安装2 Window环境下Allure安装3 Linux环境下Allure安装 1 Pytest 环境安装 span class token comment 在线安装 span pip3 install py
  • CentOS7搭建Gerrit服务

    文章目录 1 环境准备2 下载Gerrit3 安装并初始化4 更新监听URL5 重启Gerrit6 访问Gerrit 1 环境准备 Linux xff08 CentOS7 span class token punctuation span
  • CentOS7详细搭建Gerrit服务

    文章目录 0 环境准备1 安装Git2 下载Gerrit3 安装Java3 1 旧JDK卸载3 2 安装指定JDK 4 安装MySQL4 1 卸载Mariadb4 2 安装MySQL4 3 创建数据库 5 初始化Gerrit6 使用HTTP