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权限
将对应用户组添加到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.