Centos下Gerrit 与 Gitlab的集成(安装及使用)

gitlab安装

	0,Git 安装
yum install git
	1,安装JRE(Gerrit暂不支持Java11以上版本)
yum -y install java
2,安装ssh
yum install -y curl policycoreutils-pythonopenssh-server
设置ssh开机自启动--	
systemctl enable sshd
启动ssh
systemctl start sshd
 3,安装postfix(邮件服务)
yum install postfix
    设置开机自启动
systemctl enable postfix
	启动postfix
systemctl start postfix
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。

4,安装vim
yum install vim -y
5,下载安装gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.4-ce.0.el7.x86_64.rpm
rpm -ivh "包名"
6,修改配置文件/etc/gitlab/gitlab.rb,指定服务器IP和端口(第14行 为域名访问方式)

第14行 为域名访问方式
重置并启动gitlab

gitlab-ctl reconfigure
gitlab-ctl restart

gitlab安装成功

gerrit安装

0,安装MySQL数据库
yum install mysql-server
1,启动MySQL
systemctl restart mysqld
2,查看初始密码
grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

3,配置MySQL,为gerrit用户新建一个数据库
#mysql –u root

-> CREATE USER '库名'@'localhost' IDENTIFIED BY '密码';

-> CREATE DATABASE reviewdb;

-> ALTER DATABASE reviewdb charset=latin1;

-> GRANT ALL ON reviewdb.* TO '库名'@'localhost';

-> FLUSH PRIVILEGES;
4,重启,自启动MySQL
systemctl restart mysqld
systemctl enable mysqld
5,安装Gerrit,安装过程可一路默认,重点在配置文件
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.3.2.war
java -jar gerrit-3.3.2.war init -d /home/gerrit/review_site
   [gerrit]
       basePath = git
       canonicalWebUrl = http://192.168.163.134:81
       serverId = 39843baf-01b7-49da-b211-d7593e1c3a39
   [database]
           type = mysql
           database = reviewdb
           hostname = localhost
           username = han
  [container]
      javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backe    nd.log4j.Log4jBackendFactory#getInstance"
      javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.loggin    g.LoggingContext#getInstance"
      user = root
      javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/    jre
  [index]
      type = lucene
  [auth]
      type = HTTP
  [receive]
      enableSignedPush = true
  [sendemail]
      enable = true
      smtpServer = smtp.163.com
      smtpServerPort = 465
      smtpEncryption = SSL
      sslVerify = true
      smtpUser = 15178928676@163.com
      smtpPass = zyh19990828
      from = CodeReview<15178928676@163.com>
  [sshd]
      listenAddress = *:29418
  [httpd]
      listenUrl = proxy-https://127.0.0.1:81/
  [cache]
      directory = cache

安装nginx服务

具体教程
https://www.runoob.com/linux/nginx-install-setup.html
配置文件
worker_processes  4;
events {
      worker_connections  65535;
  }
http {
      include       mime.types;
      default_type  application/octet-stream;
	  sendfile        on;
	  keepalive_timeout  65;
	  server {
          listen       82;
          server_name  192.168.163.134;
          location / {
            auth_basic             "Welcome to Gerrit Code Review";
            auth_basic_user_file       /home/gerrit/gerrit.password;
            proxy_pass                 http://127.0.0.1:81;
            proxy_set_header           X-Forwarded-For $remote_addr;
            proxy_set_header           Host $host;
          }
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
          }
      }

重启nginx
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

安装Apache服务

依赖环境安装
yum -y install zlib-devel
yum源安装
yum -y install httpd
修改配置文件    		/etc/httpd/conf/httpd.conf
 
  Listen 83
  <VirtualHost *:83>
      ServerName 192.168.163.134
      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 /etc/httpd/passwords
      </Location>
  
  
      AllowEncodedSlashes On
      ProxyPass / http://127.0.0.1:81/
  </VirtualHost>

用http-tools设置gerrit服务器的账户密码
语法
htpasswd(选项)(参数)
选项
-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。

实例
新建密码文件并创建管理员账户
htpasswd -bc /home/gerrit/passwd admin 123456
新加入用户
htpasswd -bm /home/gerrit/passwd han 123456
重启Apache服务
systemctl restart httpd

Gerrit与gitlab的联用

创建/home/gerrit/review_site/etc/replication.config 配置文件
内容如下,此为单一项目的配置文件
[remote "001"]
   projects = 001
   url = ssh://git@192.168.163.134:ZhaoYuHan/001.git
   push = +refs/heads/*:refs/heads/*
   push = +refs/tags/*:refs/tags/*
   push = +refs/changes/*:refs/changes/*
   timeout = 30
   threads = 4
   mirror = true
创建/home/gerrit/review_site/.ssh/config
内容如下
HOST 192.168.163.134
IdentityFile ~/.ssh/id_rsa
PreferredAuthenticationns publickey
1,生成ssh密钥,将gerrit服务器所在用户的公钥放到gitlab服务器上

先设置用户名和邮箱
git config --global user.name ""
git config --global user.email ""
生成秘钥,一直回车,秘钥路径在 ~/.ssh 下
ssh-keygen -t rsa -C "your email"
2,在gerrit web页面创建一个与gitlab上**同名**的项目
3,删除在/home/gerrit/review_site/git下的新建的项目,然后克隆gitlab上的项目到此路径
git clone ....
4,其他用户克隆gerrit上的项目
git clone "ssh://admin@192.168.163.134:29418/001" && scp -p -P 29418 admin@192.168.163.134:hooks/commit-msg "001/.git/hooks/"
5,提交步骤同gitlab
git add file_name
git commit -m "describe" file_name
git push 别名 分支名
如:git push origin HEAD:/refs/for/master
6,Gerrit web页面上此时会有changes消息,管理员review 2次后可submit

OVER!!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值