ubuntu下apache反向代理gerrit

ubuntu下apache反向代理gerrit


搭建环境:Ubuntu 16
遇到问题总结:
删除review_site文件夹下所有文件重新安装,可以修复All-project误删导致的管理员权限失效的问题(最好不要这样,因为其他仓库是依赖all-project的,有重要文件的可以参考https://www.cnblogs.com/lyongyong/p/11989759.html);
推荐使用jdk8,因为升级最新版本gerrit需要jdk支持,2.16、3.0在https://gerrit-ci.gerritforge.com/可以找到对应版本的插件
一、环境准备

1.Java环境
gerrit依赖,用于安装gerrit环境。
jdk下载:链接: https://pan.baidu.com/s/1_x24QIBggf9T2Meq-DJ3TQ 提取码: mnn2
安装:sudo tar zxvf ./jdk-7u79-linux-x64.tar.gz -C /opt
配置:vim ~/.bashrc(针对当前用户) or vim /etc/profile(针对所有用户,推荐)
下面展示一些 内联代码片

export JAVA_HOME=/opt/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

验证:java -version

2.git环境
gerrit依赖,用来操作git repository。
安装:sudo apt-get install git
验证:git --version

3.gerrit环境
gerrit下载:链接: https://pan.baidu.com/s/1MISymf-A_bczaVQSpILXzw 提取码: 2bv9

4.apache2环境
安装:sudo apt-get install apache2
验证:sudo /etc/init.d/apache2 start
停止:sudo /etc/init.d/apache2 stop

5.gerrit管理帐号(可选,使用独立账号配置gerrit)
gerrit依赖,用来管理gerrit。
sudo adduser gerrit
sudo passwd gerrit
并将gerrit加入sudo权限
sudo visudo
gerrit ALL=(ALL:ALL) ALL

二、安装与配置gerrit

默认安装:java -jar gerrit-2.12.4.war init --batch -d ~/review_site
更新配置文件:sudo vim ~/review_site/etc/gerrit.config
下面展示一些 内联代码片

[gerrit]
        basePath = git
        canonicalWebUrl = http://192.168.5.xx:10000/
[database]
        type = h2
        database = /home/yu/review_site/db/ReviewDB
[index]
        type = LUCENE
[auth]
        type = HTTP
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = false
[container]
        user = root
        javaHome = /opt/jdk1.7.0_79/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = http://*:10000/
[cache]
        directory = cache

2.配置apache2反向代理
a.第一步,要在Apache上新增端口9999,用户监听网络事件。修改配置文件/etc/apache2/ports.conf

NameVirtualHost *:80  
Listen 80  
Listen 9999  

b.第二步,如果apache目录结构如下:

[username@hostname apache2]$ ls 
apache2.conf conf-enabled magic mods-enabled ports.conf sites-enabled conf-available envvars mods-available sites-available


cd /etc/apache2/mods-enabled

sudo ln -s ../mods-available/proxy.load
sudo ln -s ../mods-available/proxy.conf
sudo ln -s ../mods-available/proxy_http.load
sudo ln -s ../mods-a vailable/proxy_balancer.conf
sudo ln -s ../mods-available/proxy_balancer.load
sudo ln -s ../mods-available/rewrite.load
sudo ln -s ../mods-available/ssl.conf
sudo ln -s ../mods-available/ssl.load
sudo ln -s ../mods-available/socache_shmcb.load #
sudo ln -s ../mods-available/slotmem_shm.load #

增加反向代理的配置。/etc/apache2/sites-enabled/000-default

<VirtualHost *:9999>
    ServerName 192.168.5.xx
    ProxyPreserveHost On
    ProxyRequests Off
    <Proxy *>
        Order deny,allow  
        Allow from all  
    </Proxy>
    <Location />
      AuthType Basic
      AuthName "Welcomme to Gerrit Code Review Site!"
      Require valid-user
      AuthUserFile /etc/apache2/passwords
    </Location>
    ProxyPass / http://192.168.5.xx:10000/
    proxyPassReverse / http://127.0.0.1:10000/
    </VirtualHost>

3.配置gerrit账户密码
touch /etc/apache2/passwords
htpasswd -b /etc/apache2/passwords admin 123456(管理员)
htpasswd -b /etc/apache2/passwords gerrit1 123456(普通用户)

4.启动gerrit&启动apache2
sudo ~/review_site/bin/gerrit.sh start
sudo /etc/init.d/apache2 start

5.访问gerrit 管理界面 http://localhost:8080/

添加ssh
ssh -keygen -t rsa
本地生成ssh公钥和私钥,将公钥添加到
在这里插入图片描述
测试ssh,出现以下问题

$ ssh -p 29418 gerrit1@192.168.x.x
Unable to negotiate with 192.168.x.x port 29418: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

在本地/home/.ssh/路径下添加或者修改ssh配置config
host 192.168.x.x port 29418 KexAlgorithms +diffie-hellman-group1-sha1

配置gitweb

sudo apt-get install gitweb

配置gitweb相关

dpkg -L gitweb

得到以下

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/gitweb
/usr/share/doc/gitweb/examples
/usr/share/doc/gitweb/examples/index.aux-generation
/usr/share/doc/gitweb/README.Debian
/usr/share/doc/gitweb/copyright
/usr/share/doc/gitweb/README
/usr/share/doc/gitweb/NEWS.Debian.gz
/usr/lib
/usr/lib/cgi-bin
/etc
/etc/apache2
/etc/apache2/conf.d
/etc/apache2/conf.d/gitweb
/etc/gitweb.conf
/usr/share/doc/gitweb/changelog.Debian.gz
/usr/lib/cgi-bin/gitweb.cgi

在gerrit.conf中添加

[gitweb]
	type = gitweb
	cgi = /usr/lib/cgi-bin/gitweb.cgi

重启服务器
可以看到出现gitweb连接
点击访问gitweb
在这里插入图片描述

添加用户访问gitweb权限
将对应用户组添加到All-project 下配置read权限
在这里插入图片描述
增加邮箱相关配置

[sendemail]
    #smtpServer = localhost
    enable = true
    smtpServer = smtp.163.com
    smtpServerPort = 465
    smtpEncryption = SSL
    sslVerify = true
    smtpUser = **@163.com
    smtpPass = 邮箱密码或者授权码
    from = CodeReview<**@163.com>

git常用命令

git查看全局设置
git config --list
配置全局用户名
git config --global user.name

git钩子
scp -p -P 29418 gerrit1@10.190.xx.xx:hooks/commit-msg Hello/.git/hooks/

1.创建一个新分支:
git branch name
2.检查分支是否创建成功:
git branch
3.切换到新的分支上:
git checkout name

回滚到上次提交
git stash
4.将代码添加并提交到新的分支:
git add .
git commit -m 新分支

建立远程分支ab
git push origin ab

5.git status 检查是否成功:
git status
6.切换到主分支:
git checkout master 
7.将新分支提交的代码合并到主分支上面:
git merge name
8.push代码:
git push origin master
9.看自己的情况可以删除分支:
git branch -D name

查看commit缓存
git log
回滚到上次add之前
git reset HEAD^
git push origin HEAD:refs/for/master &&topic=xx ,r=admin<xxx@163.com>
                                     添加主题     添加审核者 reviewer
创建现场版本库
git init
添加文件并提交
git add -A
git commit -m "initialized"
添加提交里程碑:"v1"
git tag v1
导出工作成果为补丁文件
git format=patch v1..HEAD
通过邮件将补丁文件发出
git send-email *.patch

添加label verified

git init cfg
cd cfg
git remote add origin ssh://user@address:29418/All-Projects
git pull origin refs/meta/config
vim project.config

配置project.config

[label "Verified"]
       function = MaxWithBlock
       value = -1 Fails
       value =  0 No score
       value = +1 Verified

重新提交

git commit -a -m 'Updated permissions'
git push origin HEAD:refs/meta/config 

官方文档链接: https://review.opendev.org/Documentation/config-labels.html#label_Verified.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值