系统与环境

  • ubuntu18.04
  • mysql5.7
  • ngnix
  • java-8-openjdk-amd64

安装基础环境工具

sudo apt-get install git-core wget

安装JDK

确认支持版本:
apt-cache search openjdksudo apt-get install openjdk-8-jre-headless或者安装 oracle-java8
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

安装数据库

安装mysql5.7

apt-cache search mysql-serversudo apt-get install mysql5.7其他参见mysql的安装文档
https://blog.csdn.net/chenclassyi/article/details/104231559

创建gerrit数据库

登录mysql
mysql -u root -p; 创建数据库CREATE USER 'gerrit'@'localhost' IDENTIFIED BY '密码,配置gerrit使用';
CREATE DATABASE reviewdb DEFAULT CHARACTER SET 'utf8';
GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost';
FLUSH PRIVILEGES;
quit;

CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'cvtegerrit';

数据设置

登录mysql  执行
set global explicit_defaults_for_timestamp=1;解决gerrit安装时如下报错:CREATE TABLE changes (
change_key VARCHAR(60) BINARY DEFAULT '' NOT NULL,
created_on TIMESTAMP NOT NULL,
last_updated_on TIMESTAMP NOT NULL,
owner_account_id INT DEFAULT 0 NOT NULL,
dest_project_name VARCHAR(255) BINARY DEFAULT '' NOT NULL,
dest_branch_name VARCHAR(255) BINARY DEFAULT '' NOT NULL,
status CHAR(1) DEFAULT ' ' NOT NULL,
current_patch_set_id INT DEFAULT 0 NOT NULL,
subject VARCHAR(255) BINARY DEFAULT '' NOT NULL,
topic VARCHAR(255) BINARY,
original_subject VARCHAR(255) BINARY,
submission_id VARCHAR(255) BINARY,
assignee INT,
is_private CHAR(1) DEFAULT 'N' NOT NULL  CHECK (is_private IN ('Y','N')),
work_in_progress CHAR(1) DEFAULT 'N' NOT NULL  CHECK (work_in_progress IN ('Y','N')),
review_started CHAR(1) DEFAULT 'N' NOT NULL  CHECK (review_started IN ('Y','N')),
revert_of INT,
note_db_state TEXT,
row_version INT DEFAULT 0 NOT NULL,
change_id INT DEFAULT 0 NOT NULL
,PRIMARY KEY(change_id)
)at com.google.gwtorm.jdbc.JdbcExecutor.execute(JdbcExecutor.java:44)at com.google.gwtorm.jdbc.JdbcSchema.createRelations(JdbcSchema.java:134)at com.google.gwtorm.jdbc.JdbcSchema.updateSchema(JdbcSchema.java:104)at com.google.gerrit.server.schema.SchemaCreator.create(SchemaCreator.java:142)at com.google.gerrit.server.schema.SchemaUpdater.update(SchemaUpdater.java:104)at com.google.gerrit.pgm.init.BaseInit$SiteRun.upgradeSchema(BaseInit.java:383)at com.google.gerrit.pgm.init.BaseInit.run(BaseInit.java:144)at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:61)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:226)at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:122)at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:66)at Main.main(Main.java:28)

安装gerrit

创建gerrit用户

sudo adduser gerrit
su gerrit

安装应用

  • 官方下载地址: https://www.gerritcodereview.com/releases-readme.html

  • 创建gerrit安装目录


提前下好mysql驱动( 安装时下载可能比较慢 )
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.jarmkdir gerrit_app
mkdir gerrit_app/libcp -f mysql-connector-java-5.1.43.jar   gerrit_app/lib/
  • 安装配置
java -jar gerrit-2.16.8.war init -d /home/gerrit/gerrit_app/Using secure store: com.google.gerrit.server.securestore.DefaultSecureStoreassuming defaults*** Gerrit Code Review 2.16.8
****** Git Repositories
***Location of Git repositories   [git]:*** SQL Database
***Database server type           [h2]: mysql
Server hostname                [localhost]:
Server port                    [(mysql default)]:
Database name                  [reviewdb]:
Database username              [gerrit]:
gerrit's password              :confirm password :*** 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]?*** 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                   [/usr/lib/jvm/java-8-openjdk-amd64/jre]:
Copy gerrit-2.16.8.war to /home/gerrit/gerrit_app/bin/gerrit.war [Y/n]?
Copying gerrit-2.16.8.war to /home/gerrit/gerrit_app/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              [*]: 127.0.0.1
Listen on port                 [8080]: 8086
Canonical URL                  [http://127.0.0.1:8086/]:*** Cache
****** Plugins
***Installing plugins.
Install plugin codemirror-editor version v2.16.8 [y/N]?
Install plugin commit-message-length-validator version v2.16.8 [y/N]?
Install plugin download-commands version v2.16.8 [y/N]?
Install plugin hooks version v2.16.8 [y/N]?
Install plugin replication version v2.16.8 [y/N]?
Install plugin reviewnotes version v2.16.8 [y/N]?
Install plugin singleusergroup version v2.16.8 [y/N]?
Initializing plugins.
No plugins found with init steps.
  • 启动gerrit
./gerrit_app/bin/gerrit.sh start查看运行端口
netstat -ltpn | grep -i gerrit
==>
tcp        0      0 :::29418  :::*  LISTEN  49513/GerritCodeRev
tcp        0      0 :::8080   :::*  LISTEN  49513/GerritCodeRev
  • gerrit.config文件
vim gerrit_app/etc/gerrit.config
==>
[gerrit]basePath = gitserverId = 1a3cdccd-a508-4a1b-bbb7-c2f44cc674becanonicalWebUrl = http://127.0.0.1:8086/
[database]type = mysqlhostname = localhostdatabase = reviewdbusername = gerrit
[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 = gerritjavaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
[index]type = LUCENE
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[sshd]listenAddress = *:29418
[httpd]listenUrl = http://127.0.0.1:8086/
[cache]directory = cachecanonicalWebUrl 就是gerrit的主页地址

安装ngnix

安装应用

sudo apt-get install nginx apache2-utils

配置ngnix

sudo vim /etc/nginx/site-enable/default添加:
server {listen *:8085;    ## 配置登录端口号, 输入网址时需要使用server_name localhost;allow   all;deny    all;location / {auth_basic              "Gerrit Code Review";# http登录密码文件auth_basic_user_file    /home/gerrit/htpasswd.conf;# 跳转到gerrit应用, 端口号匹配gerrit安装设置的监听端口proxy_pass              http://127.0.0.1:8086;proxy_set_header        X-Forwarded-For $remote_addr;proxy_set_header        Host $host;}location /login/ {proxy_pass              http://127.0.0.1:8086/;proxy_set_header        X-Forwarded-For $remote_addr;proxy_set_header        Host $host;}}重启服务
sudo service nginx restart

配置登录密码

sudo chmod 755 /home/gerrit/cd /home/gerrit/
sudo htpasswd -c htpasswd.conf admin
输入密码: 123456  sudo chmod 755 htpasswd.conf

大工告成

  • http://localhost:8085

参考文章

  • https://blog.csdn.net/Cailand/article/details/93205089
  • https://blog.csdn.net/peterxiaoq/article/details/73330314
  • https://blog.csdn.net/allhaillouis/article/details/46374959
  • http://blog.sina.com.cn/s/blog_6e05157f0102wr0l.html

部署gerrit+mysql+ngnix相关推荐

  1. CI持续集成系统环境---部署gerrit环境完整记录

    转载自: http://www.cnblogs.com/kevingrace/p/5624122.html 开发同事提议在线上部署一套gerrit代码审核环境,废话不多说,部署gerrit的操作记录如 ...

  2. Linux服务集群部署实战--MySQL、Redis、ES、RocketMQ、Zookeeper

    部署架构 部署计划 MySQL服务部署 架构 规划 部署pxc集群 部署MySQL主从架构 部署mycat集群 创建表以及测试 部署HAProxy redis集群部署 redis集群采用3主3从的架构 ...

  3. docker mysql 生产环境_如何部署Docker MySQL生产环境?

    1 前言 Docker容器原则上是短暂的,如果容器被删除或损毁,数据或配置将丢失,所以上个章节部署的MySQL只适合于测试环境,由于生产的需求,本章将使用Docker卷机制持久保存Docker容器中创 ...

  4. Docker部署Django+Mysql+uWSGI+Nginx Web应用 - 笔记更新2022-01-04

    Docker 部署Django+Mysql+uWSGI+Nginx Web应用 Change logs更新记录 2022/1/4 fixed web access problem of wide ar ...

  5. Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。

    Nginx下网站部署实战 题目:部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站. 一. 搭建Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理we ...

  6. 网络云盘项目——Redis部署、MySQL部署、MySQL表设计

    一.本文目的 本项目分为6篇博客文章完成: 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393. 2.Redis部 ...

  7. docker 服务应用部署集合 tomcat ngnix redis mysql mongodb

    文章目录 docker的资料 1 docker 安装与配置 1.0 简介 1.0.1 容器与虚拟机比较 1.0.2 docker 的优势和特点 1.1 docker的安装 1.2 docker 常命令 ...

  8. docker部署tomcat+mysql服务

    mysql服务 以sql文件clock_in.sql为例 当然也可以选择直接先起一个mysql容器,用数据库管理工具建.这边主要是为了自动部署. clock_in.sql /* Navicat MyS ...

  9. ubuntu系统下安装docker并部署Springboot+mysql+redis

    目录 安装Docker Docker常用命令 构建mysql容器 构建Redis容器 构建Springboot应用镜像及容器 (1)springboot使用maven将程序打成jar包,接着编写Dok ...

最新文章

  1. C#设置本地网络(DNS、网关、子网掩码、IP)
  2. 项目管理(一)计时计件
  3. 五大经典算法之回溯法
  4. MTK Android 编译命令
  5. frp 后台地址_Frp后台自动启动的几个方法
  6. ORM框架之Mybatis(五)mybatis生成器配置文件说明以及生成的类的说明
  7. [转载] python中断响应_用Python脚本监测.py脚本的进程状态,并实现中断重启。
  8. spring aop示例_具有AOP事务管理的Spring ORM示例
  9. 设计模式学习笔记(3)装饰器
  10. ORA-27101: shared memory realm does not exist 错误的处理(ORA-01034 - Oracle not available )
  11. C#获取C# DLL中的指定接口的所有实现实例 - qq_19759475的博客 - CSDN博客
  12. 性能测试知多少----性能测试分类之我见
  13. 怎么添加group_家居装修时,自由装修怎么进行设计,室内怎么改造更合适?
  14. 服务器压力测试知识集锦
  15. 学python的网课_python网课学习笔记--4
  16. 第三十九期:1024特别版:向“程序媛们”致敬!
  17. poj入门水题整理1--按刷题顺序解释
  18. github在线修改文章
  19. 国际上的三大标准组织
  20. DNS信息查询综合实验

热门文章

  1. 《Xcode基本用法》手机App图标与开机动画图片的设置
  2. 经典图像复原算法的matlab实现汇总
  3. gitee与github使用有感
  4. 渗透测试之DNS域名信息探测实验
  5. macOS Homebrew 安装 OpenCV 及切换版本【转】
  6. JZOJ 4230. 【五校联考4day1】淬炼神体
  7. 【嗜血GO笔记】操作符及一些写法汇总
  8. No enclosing instance of type xxx is accessible
  9. c语言中的atof函数
  10. SQL Server列存储实现方案