前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu下安装部署Gerrit

Ubuntu下安装部署Gerrit

作者头像
项勇
发布2019-12-13 16:41:42
2.9K0
发布2019-12-13 16:41:42
举报
文章被收录于专栏:项勇项勇项勇

1.简单介绍

1.之前 git add-->git commit-->git push如图中橙色的线

2.gerrit就是上图中的那只鸟,普通成员的代码是被先push到gerrit服务器上,然后由代码审核人员,就是左上角的integrator在web页面进行代码的审核( review),当代码审核通过( approve)之后,这次代码才会被提交( submit)到代码仓库( repo)中去。

3.代码审核通过或被拒绝,代码提交者( Contributor)和所有的相关代码审核人员( Integrator)都会收到邮件提醒

4.gerrit还有自动测试的功能,和主线有冲突或者测试不通过的代码,是会被直接拒绝掉的,这个功能似乎就是右下角那个老头( Jenkins)的任务

5.当进行 commit时,必须要生成一个 Change-Id,否则,push到gerrit服务器时,会收到一个错误提醒

6.提交者不能直接把代码推到远程的 master主线(或者其他远程分支)上去。这样就相当于越过了gerrit了。gerrit必须依赖于一个 refs/for/*的分支。

假如我们远程只有一个master主线,那么只有当你的代码被提交到 refs/for/master分支时,gerrit才会知道,我收到了一个需要审核的代码推送,需要通知审核员来审核代码了。

当审核通过之后,gerrit会自动将这条分支合并到master主线上,然后邮件通知相关成员,master分支有更新,需要的成员再去pull就好了。而且这条 refs/for/master分支,是透明的,也就是说普通成员其实是不需要知道这条线的,如果你正确配置了 sourceTree,你也应该是看不到这条线的

2.安装流程

2.1 ubuntu系统

为求方便,我使用的是在VMware Workstation Pro虚拟机上安装,ubuntu直接去官网下载就行. 安装步骤直接琢磨一下,安装好后修改语言为中文,Ubuntu的终端支持中文显示,还有切换输入法;

2.2 root

当系统准备好之后,首先要 root,便于安装后续的支持包/程序/创建用户等

sudo passwd
# [sudo] tw 的密码:sudo其实就是Ubuntu的一个root权限指令,输入你的密码回车就行
#新建好之后
su - #切换到root用户
# root@ubuntu:~# 就是切换成功

我先贴一下后续会常用到的指令

sudo apt-get update  更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-get upgrade 更新安装的包
mkdir -p code/string  #新建一个string文件夹  加上-p是指可以夸目录操作 不加就是在当前目录增加
touch code/string/lesson.js  #新建lesson.js文件
sudo rm -rf  + 需要删除的文件
vim 编辑指令,当你需要编辑一个文本时使用  
      i  + Esc + Shift ZZ  保存编辑
      i + Esc + :+! 不保存编辑
cat 查看
whereis + 要查询的文件名  # 搜索

#重要,每次开启需要启动#
            /home/gerrit/gerrit_site/bin/gerrit.sh restart    重启gerrit
            service nginx restart  重启nginx
#重要#
2.3 安装程序/包
2.3.1 git
sudo apt-get update
sudo apt-get install git
2.3.2 vim
sudo apt install vim
2.3.3 JDK辅助
apt-cache search openjdk
sudo apt-get install openjdk-8-jdk
vim ~/.bashrc
java -versionjava
2.3.4 Nginx
sudo apt install nginx
sudo systemctl status nginx
service nginx restart

nginx需要新建一个配置文件 /etc/nginx/conf.d/gerrit.conf

server {
     listen *:81;
     server_name gerrit.microwu.com;
     allow   all;
     deny    all;
     auth_basic "Welcomme to Gerrit Code Review Site!";
     auth_basic_user_file /home/gerrit/gerrit.password;
     location / {
        proxy_pass  http://127.0.0.1:8080;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
     }
   }
2.3.5 C环境
sudo apt-get install gcc-5
sudo apt-get install g++-5
sudo apt-get install build-essential
2.3.6 make
sudo apt-get install ubuntu-make
2.3.7 netstat
sudo apt-get install net-tools
2.3.8 Apache
sudo apt install apache2
sudo apt install apache2-utils
2.3.9 php
sudo apt-get install libxml2-dev
sudo apt-get install libbz2-dev

下载自建目录解压

cd php-5.5.13
./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-inline-optimization
--disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm
--with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring
--with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap
--with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem
--enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2
--with-readline --without-sqlite3 --without-pdo-sqlite --with-pear
2.4.gerrit安装
adduser gerrit
su gerrit

下载地址安装包拷贝到 /home/gerrit/

java -jar gerrit-2.13.4.war init -d ~/gerrit_site  #解压安装

安装过程只需要看到配置 Authenticationmethod时输入 http其他的一概回车;在目录 /home/gerrit/新建用户

$ htpasswd -c /home/gerrit/gerrit.password admin
$ htpasswd -m /home/gerrit/gerrit.password master

修改gerrit配置文件 /home/gerrit/gerrit_site/etc/gerrit.config 我配置文件供参考对比

[gerrit]
    basePath = git
    serverId = bd3a7d07-58c8-42ac-8a0d-5d8d205ed3fb
    canonicalWebUrl = http://http://192.168.96.130:8080/
[database]
    type = h2
    database = /home/gerrit/gerrit_site/db/ReviewDB
[noteDb "changes"]
    disableReviewDb = true
    primaryStorage = note db
    read = true
    sequence = true
    write = true
[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-8-openjdk-amd64/jre
[index]
    type = LUCENE
[auth]
    type = HTTP
[receive]
    enableSignedPush = false
[sendemail]
    smtpServer = smtp.ym.163.com
    smtpServerPort = 25
    smtpEncryption = SSL
    smtpUser = xiangy@topwayandroid.com
    smtpPass = xiangy1234
    from = xiangy@topwayandroid.com
[sshd]
    listenAddress = *:29418
[httpd]
    listenUrl = http://*:8080/
[cache]
    directory = cache

如果是安装我的步骤一步一步安装下,其实只需要修改sendemail内容,此处是配置邮箱的内容,因为我们部门用的的163邮箱,就根据163的stmp内容配置;配置好之后重启gerrit和nginx;

/home/gerrit/gerrit_site/bin/gerrit.sh restart    重启gerrit
            service nginx restart  重启nginx

重启之后 查看端口信息,供参考

netstat -ltpn
 PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      26246/nginx: master
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      26246/nginx: master
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      107306/systemd-reso
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      25265/cupsd
tcp6       0      0 :::29418                :::*                    LISTEN      26454/GerritCodeRev 
tcp6       0      0 :::8080                 :::*                    LISTEN      26454/GerritCodeRev 
tcp6       0      0 :::80                   :::*                    LISTEN      26246/nginx: master
tcp6       0      0 ::1:631                 :::*                    LISTEN      25265/cupsd

确认gerrit和nginx有端口信息后,打开游览器输入你的 ip:81,会先显示一个登录窗口

输入admin的账号和密码

显示这个界面就说明gerrit环境部署完成了!

#附删除方法#

/home/gerrit/gerrit_site/bin/gerrit.sh stop
然后直接删除/home/gerrit/gerrit_site/整个文件夹
$ ps -ef | grep gerrit
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 项勇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简单介绍
  • 2.安装流程
    • 2.1 ubuntu系统
      • 2.2 root
        • 2.3 安装程序/包
          • 2.4.gerrit安装
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档