Gerrit的安装与使用说明(Ubuntu)

#本页面按192.168.60.148服务器举例进行安装配置

1.权限配置

## 使用root或者有sudo权限用户执行

# 创建gerrit用户

sudo useradd gerrit

# 设置gerrit用户的密码

sudo passwd gerrit

# 增加sudo权限

sudo visudo

在root ALL=(ALL:ALL) ALL行下添加如下内容

gerrit ALL=(ALL:ALL) ALL

如下图:

2.安装jdk

# 更新软件资源库

sudo apt update

# 安装jdk17

sudo apt install openjdk-17-jdk

# 查看java版本号

java -version

# 列出已安装的 JDK 版本:

sudo update-alternatives --list java

#设置默认 JDK 版本:

sudo update-alternatives --config java

3.下载gerrit.war包

cd

wget https://gerrit-releases.storage.googleapis.com/gerrit-3.9.1.war

4.安装gerrit

# 定义安装目录

export GERRIT_SITE="/data/gerrit/review_site"

# 安装gerrit

sudo java -jar ~/gerrit-3.9.1.war init -d ${GERRIT_SITE}

# 执行完输出如下,红色部分为修改点,其它的默认按回车,如下:

[sudo] gerrit 的密码:
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2024-07-17 15:04:40,058] [main] INFO com.google.gerrit.server.config.GerritServerConfigProvider : No /data/gerrit/review_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 3.9.1
***

Create '/data/gerrit/review_site' [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 [root]: gerrit
Java runtime [/usr/lib/jvm/java-17-openjdk-amd64]:
Copy gerrit-3.9.1.war to /data/gerrit/review_site/bin/gerrit.war [Y/n]?
Copying gerrit-3.9.1.war to /data/gerrit/review_site/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]: 8095
Canonical URL [http://169.254.95.120:8095/]:

*** Cache
***


*** Plugins
***

Installing plugins.
Install plugin codemirror-editor version v3.9.1 [y/N]? y
Installed codemirror-editor v3.9.1
Install plugin commit-message-length-validator version v3.9.1 [y/N]? y
Installed commit-message-length-validator v3.9.1
Install plugin delete-project version v3.9.1 [y/N]? y
Installed delete-project v3.9.1
Install plugin download-commands version v3.9.1 [y/N]? y
Installed download-commands v3.9.1
Install plugin gitiles version v3.9.1 [y/N]? y
Installed gitiles v3.9.1
Install plugin hooks version v3.9.1 [y/N]? y
Installed hooks v3.9.1
Install plugin plugin-manager version v3.9.1 [y/N]? y
Installed plugin-manager v3.9.1
Install plugin replication version v3.9.1 [y/N]? y
Installed replication v3.9.1
Install plugin reviewnotes version v3.9.1 [y/N]? y
Installed reviewnotes v3.9.1
Install plugin singleusergroup version v3.9.1 [y/N]? y
Installed singleusergroup v3.9.1
Install plugin webhooks version v3.9.1 [y/N]? y
Installed webhooks v3.9.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 /data/gerrit/review_site
Init complete, reindexing accounts,changes,groups,projects with: reindex --site-path /data/gerrit/review_site --threads 1 --index accounts --index changes --index groups --index projectsReindexed 0 documents in accounts index in 0.0s (0.0/s)
Index accounts in version 13 is ready
Reindexing groups: 100% (2/2)
Reindexed 2 documents in groups index in 0.3s (7.1/s)
Index groups in version 10 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 84 is ready
Reindexing projects: 100% (2/2)
Reindexed 2 documents in projects index in 0.1s (17.4/s)
Index projects in version 8 is ready
Executing /data/gerrit/review_site/bin/gerrit.sh start
Starting Gerrit Code Review:


OK
Waiting for server on 169.254.95.120:8095 ... OK
Please open the following URL in the browser: http://169.254.95.120:8095/#/admin/projects/

4. gerrit配置

cd $GERRIT_SITE

vim etc/gerrit.config

# 修改canonicalWebUrl和listenUrl,如需要配置邮箱请增加上[sendmail]部分,如下:

[gerrit]
        basePath = git
        canonicalWebUrl = http://192.168.60.148:8095/
        serverId = 0afe5cc3-9171-4ce4-8265-7c97d95a3ae1
[container]
        javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
        javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
        user = root
        javaHome = /usr/lib/jvm/java-17-openjdk-amd64
[index]
        type = lucene
[auth]
        type = HTTP
[receive]
        enableSignedPush = false
        maxObjectSizeLimit = 50g

[sendemail]
    enable = true
    smtpServer = smtp.mxhichina.com
    smtpServerPort = 25
    smtpEncryption = none
    smtpUser = cibot@xxx.com
    smtpPass = 123456qQ
    from = cibot@xxx.com
    sslVerify = false


[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = http://192.168.60.148:8095/
[cache]
        directory = cache

5. apache配置

# 安装apache

sudo apt install -y apache2

# 启用 mod_proxy 模块

sudo a2enmod proxy

sudo a2enmod proxy_http

5.1 配置端口映射,执行 sudo vim /etc/apache2/httpd.conf并写入以下内容(红色为根据自定义进行修改):

<VirtualHost *:8096>
    ServerName 192.168.60.148

    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On
    AllowEncodedSlashes On

    <Proxy *>
        Require all granted
    </Proxy>

    <Location "/login/">
        AuthType Basic
        AuthName "Gerrit Code Review"
        Require valid-user
        AuthBasicProvider file
        AuthUserFile /data/gerrit/review_site/passwords
    </Location>

    <Location "/">
        AuthType Basic
        AuthName "Gerrit Code Review"
        Require valid-user
        AuthBasicProvider file
        AuthUserFile /data/gerrit/review_site/passwords
        Options +FollowSymlinks
    </Location>

    ProxyPass / http://192.168.60.148:8095/ nocanon
    ProxyPassReverse / http://192.168.60.148:8095/

    <Proxy http://192.168.60.148:8095/*>
        AuthType Basic
        AuthName "Gerrit Code Review"
        Require valid-user
    </Proxy>
</VirtualHost>

5.2使httpd.conf生效,在 /etc/apache2/apache2.conf下面文件最后增加以下行

Include httpd.conf

5.3 监听端口,执行sudo vim /etc/apache2/ports.conf,在最后一行增加以下内容

Listen 8096

6.创建帐号密码

生成passwords的路径需要与/etc/apache2/httpd.conf中配置一致

htpasswd  /data/gerrit/review_site/passwords admin

7. 启动

sudo /data/gerrit/review_site/bin/gerrit.sh restart
sudo /etc/init.d/apache2 restart

8.登录

在浏览器中输入http://192.168.60.148:8096/进行访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 2019 配置VTK9.3.1

文章目录 参考博客1、 VTK下载和编译2、vs2019配置vtk9.3.1参考博客 Visual Studio 2022 配置VTK9.3.0 1、 VTK下载和编译 见博客 CMake编译VTK 2、vs2019配置vtk9.3.1 新建一个项目 写入以下代码 #include <vtkActor.h> #include <vtkAssembly.h> #include…

C++进阶——C++11_右值引用和移动语义_可变参数模板_类的新功能

目录 1、右值引用和移动语义 1.1 左值和右值 1.2 左值引用和右值引用 1.3 引用延长生命周期 1.4 左值和右值的参数匹配 1.5 右值引用和移动语义的使用场景 1.5.1 左值引用主要使用场景 1.5.2 移动构造和移动赋值 1.5.3 右值引用和移动语义解决传值返回问题 1.5.4 右值…

HTTP协议原理深度解析:从基础到实践

引言 在互联网技术体系中,HTTP(HyperText Transfer Protocol)协议如同数字世界的"通用语言",支撑着全球超50亿网民的日常网络交互。作为爬虫开发、Web应用构建的核心技术基础,理解HTTP原理是每个开发者必须掌握的技能。本文将从协议本质、技术演进、安全机制三…

Web品质 - 重要的HTML元素

Web品质 - 重要的HTML元素 在构建一个优秀的Web页面时,HTML元素的选择和运用至关重要。这些元素不仅影响页面的结构,还直接关系到页面的可用性、可访问性和SEO表现。本文将深入探讨一些关键的HTML元素,并解释它们在提升Web品质方面的重要性。 1. <html> 根元素 HTM…

【AI提示词】竞品分析专家

提示说明 对产品进行竞品分析&#xff0c;明确产品定位和优化营销策略。 提示词 # 角色:竞品分析专家## 背景: 需要对旗下产品A进行竞品分析,明确产品定位和优化营销策略。## 描述: - 作者:张三 - 版本:1.0 - 语言:中文## 注意事项: 保持客观公正态度,用数据说话,给出具体的…

4-6记录(B树)

找左边右下或者右边左下 转化成了前驱后继的删除 又分好几种情况&#xff1a; 1. 只剩25&#xff0c;小于2&#xff0c;所以把父亲拉到25旁边&#xff0c;兄弟的70顶替父亲 对于25&#xff0c;25的后继就是70&#xff0c;25后继的后继是71&#xff08;中序遍历) 2. 借左子树…

什么是RACI矩阵,应用在什么场景?

一、什么是RACI RACI矩阵是一种用于明确项目或任务中角色与责任的管理工具&#xff0c;通过定义不同人员在任务中的参与程度来避免职责不清的问题。以下是其核心要点&#xff1a; ‌RACI的含义‌ ● ‌R&#xff08;Responsible&#xff09;执行者‌&#xff1a;直接完成任务…

深入理解全排列算法:DFS与回溯的完美结合

全排列问题是算法中的经典问题&#xff0c;其目标是将一组数字的所有可能排列组合列举出来。本文将详细解析如何通过深度优先搜索&#xff08;DFS&#xff09;和回溯法高效生成全排列&#xff0c;并通过模拟递归过程帮助读者彻底掌握其核心思想。 问题描述 给定一个正整数 n&a…

在 Dev-C++中编译运行GUI 程序介绍(二)示例:祝福程序

在 Dev-C中编译运行GUI 程序介绍&#xff08;二&#xff09;示例&#xff1a;祝福程序 前期见&#xff1a; 在 Dev-C中编译运行GUI 程序介绍&#xff08;一&#xff09;基础 https://blog.csdn.net/cnds123/article/details/147019078 示例1、祝福程序 本文中的这个祝福程序是…

Stable Diffusion 四重调参优化——项目学习记录

学习记录还原&#xff1a;在本次实验中&#xff0c;我基于 Stable Diffusion v1.5模型&#xff0c;通过一系列优化方法提升生成图像的质量&#xff0c;最终实现了图像质量的显著提升。实验从基础的 Img2Img 技术入手&#xff0c;逐步推进到参数微调、DreamShaper 模型和 Contro…

Solidity智能合约漏洞类型与解题思路指南

一、常见漏洞类型与通俗解释 1. 重入攻击(Reentrancy) 🌀 通俗解释:就像你去银行取钱,柜台人员先给你钱,然后再记账。你拿到钱后立即又要求取钱,由于账还没记,柜台又给你一次钱,这样循环下去你就能拿走银行所有的钱。 漏洞原理:合约在更新状态前调用外部合约,允许…

Docker部署.NetCore8项目

在VS.net新建.netCore8项目&#xff0c;生成项目的发布文件&#xff0c;之后添加Dockerfile&#xff0c;内容如下&#xff1a; FROM mcr.microsoft.com/dotnet/aspnet:8.0 # 设置工作目录 WORKDIR /app # 挂载临时卷&#xff08;类似于 VOLUME /tmp&#xff09; VOLUME /tmp …

【C++】右值引用、移动语义与完美转发

左值、右值是C常见的概念&#xff0c;那么什么是右值引用&#xff0c;移动语义&#xff0c;完美转发呢&#xff1f;本UP带大家了解一下C校招常问的C11新特性。 左值与右值 左值&#xff1a;明确存储未知、可以取地址的表达式 右值&#xff1a;临时的、即将被销毁的&#xff…

艾尔登法环地图不能使用鼠标移动或点击传送点原因和设置方法

今天玩艾尔登法环突发发现地图不能用鼠标点击传送点了。 找了半天发现设置地图选单的游标移动方式只有键盘了&#xff0c;改成键盘与鼠标就好啦。

【算法】——一键解决动态规划

前言 动态规划是一种高效解决​​重叠子问题​​和​​最优子结构​​问题的算法思想。它通过​​分治记忆化​​&#xff0c;将复杂问题分解为子问题&#xff0c;并存储中间结果&#xff0c;避免重复计算&#xff0c;从而大幅提升效率。 ​​为什么重要&#xff1f;​ ​​优化…

uniApp开发微信小程序-连接蓝牙连接打印机上岸!

历经波折三次成功上岸&#xff01; 三次经历简单絮叨一下&#xff1a;使用uniAppvue开发的微信小程序&#xff0c;使用蓝牙连接打印机&#xff0c;蓝牙所有的接口都是插件中封装的&#xff0c;用的插件市场中的这个&#xff1a; dothan-lpapi-ble &#xff1b;所以&#xff0c…

软件系统安全设计方案,信息化安全建设方案(Word原件)

1.1 总体设计 1.1.1 设计原则 1.2 物理层安全 1.2.1 机房建设安全 1.2.2 电气安全特性 1.2.3 设备安全 1.2.4 介质安全措施 1.3 网络层安全 1.3.1 网络结构安全 1.3.2 划分子网络 1.3.3 异常流量管理 1.3.4 网络安全审计 1.3.5 网络访问控制 1.3.6 完…

wsl2+ubuntu22.04安装blenderproc教程

本章教程,介绍如何在windows操作系统上通过wsl2+Ubuntu22.04上安装blenderproc。 一、pipi安装方式 推荐使用minconda3安装Python环境。 pip install Blenderproc二、源码安装 1、下载源码 git clone https://github.com/DLR-RM/BlenderProc2、安装依赖 cd BlenderProc &am…

Blender 转 STL 文件全攻略:从基础到进阶

在 3D 建模与打印领域&#xff0c;Blender 凭借其强大的功能和开源特性&#xff0c;深受创作者喜爱。而 STL 文件格式&#xff0c;作为 3D 打印行业的通用标准&#xff0c;能被绝大多数 3D 打印软件和设备所识别。因此&#xff0c;将 Blender 模型转换为 STL 文件&#xff0c;是…

Ansys Electronics 变压器 ACT

你好&#xff0c; 在本博客中&#xff0c;我将讨论如何使用 Ansys 电子变压器 ACT 自动快速地设计电力电子电感器或变压器。我将逐步介绍设计和创建电力电子变压器示例的步骤&#xff0c;该变压器为同心组件&#xff0c;双绕组&#xff0c;采用正弦电压激励&#xff0c;并应用…