热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7搭建gerrit服务总结

CentOS7搭建gerrit服务总结一、写在前面二、具体步骤1.先下载安装jdk2.下载gerrit3.为gerrit创建单独操作系统帐号,用来管理gerrit,具体操作如下:4

CentOS 7 搭建gerrit服务总结

  • 一、写在前面
  • 二、具体步骤
    • 1. 先下载安装jdk
    • 2. 下载gerrit
    • 3. 为gerrit创建单独操作系统帐号,用来管理gerrit,具体操作如下:
    • 4. 安装gerrit 配置gerrit配置
    • 5. 编辑配置文件(根据实际情况进行调整)
    • 6. root帐户下添加gerrit用户,可以添加多个,这个用户是作为web页面的登陆用户使用的,下面第一行命令,创建文件并添加管理员帐户,第二行命令,创建一个普通用户:
    • 7.root帐户下启动、关闭、重启gerrit
    • 8.配置反向代理服务(Nginx)
    • 9.访问: http://192.168.15.20 ,用admin用户登录
    • 10.使用ssh-keygen生成密钥对,后续需要用到
    • 11. 将前面生成的私钥id_rsa放到/home/gerrit/.ssh目录下,将公钥添加到gitlab对应的帐户下。
    • 12.在Gerrit创建一个空项目并同步GitLab
    • 13.配置Grerrit与GitLab的同步
      • 13.1 replication插件
      • 13.2 配置插件
    • 14. clone代码
    • 15.提交改动
  • 三、其他说明
    • 1.检查ssh通道方式问题出在哪里:(20200805 14:04)
    • 2.确保本地配置的git邮箱,和服务器端配置的邮箱保持一致,否则有可能无法push代码。(20200805 15:02)
    • 3.调整文件“/home/gerrit/review_site/etc/secure.config”中sendemail部分的smtpPass配置,可修改发送邮箱的密码。(20200805 17:19)
    • 4.更新gerrit缓存


一、写在前面

尝试着在CentOS 7.6系统下面搭建gerrit服务,诸多尝试,终于顺利搭建,下面将能想起来的过程进行总结,有些可能不大准确,还请包涵。


二、具体步骤


1. 先下载安装jdk

细节这里就不详细描述了。


2. 下载gerrit

后面的路径就是gerrit 在电脑下载弹出的地址

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

3. 为gerrit创建单独操作系统帐号,用来管理gerrit,具体操作如下:

sudo adduser gerritsudo passwd gerrit

并将gerrit加入sudo权限,修改/etc/sudoers 文件,找到下面这行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
gerrit ALL=(ALL) ALL

修改完毕,现在可以用gerrit帐号登录,然后用命令 su - ,即可获得root权限进行操作。


4. 安装gerrit 配置gerrit配置

root帐户下安装,先创建好安装目录,如/home/gerrit/review_site,一并创建好代码存放目录,如/home/gerrit/git_repo,然后再运行具体命令,例子如下:

java -jar /home/work/download/gerrit-3.2.2.war init -d /home/gerrit/review_site

具体初始化配置选项的选择可以参考下面链接。
https://www.cnblogs.com/yinzhengjie/p/11007383.html


5. 编辑配置文件(根据实际情况进行调整)

安装完毕,可在root帐户下运行下面的命令,修改安装目录所有者为gerrit帐户:

chown -R gerrit:gerrit /home/gerrit/review_site

切换到gerrit帐户,运行下面的的命令编辑gerrit配置文件:

vim ~/review_site/etc/gerrit.config

参考例子如下:

[gerrit]basePath = /home/gerrit/git_repocanOnicalWebUrl= http://192.168.15.20:80/serverId = 33af9814-8fc6-4dc7-a2ec-47f4ab7a13f0
[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 = rootjavaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64/jre
[index]type = lucene
[auth]type = HTTP
[receive]enableSignedPush = true
[sendemail]enable = truesmtpServer = smtp.mxhichina.comsmtpServerPort = 465smtpEncryption = SSLsmtpUser = myemail@company.comsslVerify = falsefrom = CodeReview
[sshd]listenAddress = *:29418
[httpd]listenUrl = proxy-http://*:8080/
[cache]directory = cache

6. root帐户下添加gerrit用户,可以添加多个,这个用户是作为web页面的登陆用户使用的,下面第一行命令,创建文件并添加管理员帐户,第二行命令,创建一个普通用户:

htpasswd -cb /etc/httpd/passwd admin 123456
htpasswd -b /etc/httpd/passwd tom 123456

7.root帐户下启动、关闭、重启gerrit

配置完成之后,调用启动命令开启服务,相关命令可参见下面内容。

# /home/gerrit/review_site/bin/gerrit.sh start
# /home/gerrit/review_site/bin/gerrit.sh stop
# /home/gerrit/review_site/bin/gerrit.sh restart

8.配置反向代理服务(Nginx)

特别说明:强烈建议server配置listen为80端口,上面gerrit配置文件中的canonicalWebUrl也相应配置为80端口,否则可能会出现一些莫名其妙的问题。
配置nginx:

vim /usr/local/nginx/conf/nginx.conf

配置文件内容例子如下:

user root;worker_processes 1;events {worker_connections 1024;}server {listen 80;server_name 192.168.15.20;#charset koi8-r;#access_log logs/host.access.log main; location / {#root html;#index index.html index.htm;auth_basic "Gerrit Code Review";auth_basic_user_file /etc/httpd/passwd;proxy_pass http://127.0.0.1:8080;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}

9.访问: http://192.168.15.20 ,用admin用户登录


10.使用ssh-keygen生成密钥对,后续需要用到

ssh-keygen -C "tom@company.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vvIxj5KlWfnsIE5yCqzeTSAeRtD0OarGeR+9Lv1ZA/A tom@company.com
The key's randomart image is:
+---[RSA 2048]----+
| . .. |
| o .o |
| . .. .. |
| .. o |
| .oo. S. E |
| .o=+. o+. . |
| ++o.=*Bo. o |
| .o.o**+ Xo o . |
|o. ....+*o+o |
+----[SHA256]-----+

11. 将前面生成的私钥id_rsa放到/home/gerrit/.ssh目录下,将公钥添加到gitlab对应的帐户下。

本地gerrit系统帐户下运行下面命令配置git信息:

git config --global user.name "tom"
git config --global user.email "tom@company.com"

12.在Gerrit创建一个空项目并同步GitLab

假设在gitlab上有一个项目testrepo,则在gerrit相应创建一个testrepo项目。
在/home/gerrit/git_repo下,执行下面命令删除自动创建的目录:

sudo rm -rf testrepo.git/

重新从GitLab复制:

git clone --bare git@192.168.15.202:test/testrepo.git

13.配置Grerrit与GitLab的同步


13.1 replication插件

通过Gerrit的replication插件来实现。
确认插件状态:已安装、已启用。

ssh -p 29418 admin@192.168.15.20 gerrit plugin ls |grep replication

13.2 配置插件

在/home/gerrit/review_site/etc目录下创建replication.config文件用于代码同步。
特别注意:以后每创建一个新的项目,都要在该配置文件中添加对应的配置。

[remote "testrepo"]
projects = testrepo
url = git@192.168.15.202:test/testrepo.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3

特别说明:如果不小心在配置上述内容后,又删除了对应的项目,则可能引发问题,需要先删除上述的内容,再执行恢复项目的操作。(20200824 11:01)

执行下面命令重新加载:(当前系统已经配置了私钥,并且相应公钥已经添加到了gerrit的admin帐户SSH Keys下面)

ssh -p 29418 admin@192.168.15.20 gerrit plugin reload replication

14. clone代码

从testrepo项目下面SSH项下面复制完整的clone命令,然后在git bash下面执行,即可将代码克隆下来,并且生成产生COMMIT_MSG的hook。

git clone "ssh://tom@192.168.20.12:29418/testrepo" && scp -p -P 29418 tom@192.168.13.12:hooks/commit-msg "tom/.git/hooks/"

15.提交改动

git push -u origin HEAD:refs/for/master

三、其他说明


1.检查ssh通道方式问题出在哪里:(20200805 14:04)

ssh -vv -p 29418 admin@192.168.13.12

2.确保本地配置的git邮箱,和服务器端配置的邮箱保持一致,否则有可能无法push代码。(20200805 15:02)


3.调整文件“/home/gerrit/review_site/etc/secure.config”中sendemail部分的smtpPass配置,可修改发送邮箱的密码。(20200805 17:19)


4.更新gerrit缓存

ssh -p 29418 admin@192.168.13.12 gerrit flush-caches --all

参考文档
https://www.cnblogs.com/yinzhengjie/p/11007383.html
https://www.cnblogs.com/anliven/p/12019974.html


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
author-avatar
Edward2502873903
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有