一, 安装gerrit需要的环境
1. 安装Apache2
sudo apt-get install apache2
2. 安装php5
sudo apt-get install php5 libapache2-mod-php5
3. 安装java
$ wget http://openlinux.amlogic.com:8000/deploy/java/sun-java6-bin_6.26-2lucid1_amd64.deb
$ wget http://openlinux.amlogic.com:8000/deploy/java/sun-java6-jdk_6.26-2lucid1_amd64.deb
$ wget http://openlinux.amlogic.com:8000/deploy/java/sun-java6-jre_6.26-2lucid1_all.deb
$ sudo dpkg -i sun-java6*
$ apt-get -f install
二, 安装gerrit
1. 新建一个linux账号,用于管理gerrit代码
$ sudo adduser gerrit
$ sudo su gerrit
$ cd ~
2. 下载gerrit安装包
$ wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc3.war
3. 安装下载包
$ java -jar gerrit-2.8-rc3.war init -d review
在安装过程中,需要注意以下几点:
Database server type [H2/?]: //可改成MYSQL,根据自己的喜好来选数据库, 我这里选H2默认的
Authentication method [OPENID/?]: HTTP //默认是用google的OPENID, 这里我改为HTTP认证
SMTP server hostname [localhost]: mail.pptv.com //自己改成自己的邮箱smtp
SMTP username [?]: laibinluo //自己改成自己的邮箱
Listen on port [29418]: //如果同一个用户下建多个gerrit,请不用都公用29418这个端口号 如39418 49418
Behind reverse proxy [y/N]? y //使用反向代理的话必须选择y来配置,默认是N
Proxy uses SSL (https://) [y/N]? n
Subdirectory on proxy server [/]: /gerrit/ //可以选择直接跳过,那样你的gerrit最后的URL是 http://192.168.33.11:80
Listen on port [8081]: //切记,此端口号一定不要和apache2占用相同的端口号,多个gerrit可以8082 8083 8084
由于我们这里是选择HTTP认证,需要反向代理, 所以我们要配置Apache。
三, 配置Apache
1. 创建编辑apache配置文件,添加如下内容(下面以Ubuntu系统为例请注意不同操作系统apache配置文件的区别)也可配置 apache2.conf httpd.conf,我们这里配置的是/etc/apache2/sites-available/gerrit
$sudo vi /etc/apache2/sites-available/gerrit //该文件为自己新建, 默认是该文件是不存在
这个配置文件的意思是,当访问任意(*)时,进行代理,代理到/gerrit/login/目录,并根据AuthUserFile请求用户名及密码,最终代理为http://127.0.0.1:8081/gerrit/
2. /home/gerrit/review/etc/gerrit.passwd该文件是不存在的,我们要创建它并保存新建的用户名及密码
$ touch /home/gerrit/review/etc/gerrit.passwd
$ htpasswd /home/gerrit/review/etc/gerrit.passwd bingluo
或
$sudo htpasswd -cb /home/gerrit/review/etc/gerrit.passwd bingluo 123456
第二次添加其他用户时,不要加-c了:
$sudo htpasswd -b /home/gerrit/review/etc/gerrit.passwd test test
3. 由于 /etc/apache2/sites-available/gerrit是自己新建的, 默认是无效的,为了让它生效,要做以下几步:
$cd /etc/apache2/sites-enabled/
$sudo ln ../sites-available/gerrit .
$sudo vi /etc/apache2/http.conf //该文件是自己新建,在文件中加入以下内容
ServerName localhost
$cd /etc/apache2/mods-enabled
$sudo ln -s /etc/apache2/mods-available/proxy.conf proxy.conf
$sudo ln -s /etc/apache2/mods-available/proxy.load proxy.load
$sudo ln -s /etc/apache2/mods-available/proxy_http.load proxy_http.load
四, 启动服务
1. 重启或启动Apache
$ sudo /etc/init.d/apache2 restart
2. 重启或启动gerrit服务器
$review_site_project/bin/gerrit.sh start
五, 登陆gerrit
在浏览器地址栏中输入: 192.168.33.11/gerrit/
配置正常,用之前设置的用户名及密码应该是可以登陆到gerrit界面, 如下
六, 添加git项目到gerrit中
1. 配置ssh
$ ssh - keygen
在.ssh文件夹里添加新文件config, 内容如下:
测试连接
$ ssh gerritTest
如果出现 ,
1. 新建一个linux账号,用于管理gerrit代码
$ sudo adduser gerrit
$ sudo su gerrit
$ cd ~
2. 下载gerrit安装包
$ wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc3.war
3. 安装下载包
$ java -jar gerrit-2.8-rc3.war init -d review
在安装过程中,需要注意以下几点:
Database server type [H2/?]: //可改成MYSQL,根据自己的喜好来选数据库, 我这里选H2默认的
Authentication method [OPENID/?]: HTTP //默认是用google的OPENID, 这里我改为HTTP认证
SMTP server hostname [localhost]: mail.pptv.com //自己改成自己的邮箱smtp
SMTP username [?]: laibinluo //自己改成自己的邮箱
Listen on port [29418]: //如果同一个用户下建多个gerrit,请不用都公用29418这个端口号 如39418 49418
Behind reverse proxy [y/N]? y //使用反向代理的话必须选择y来配置,默认是N
Proxy uses SSL (https://) [y/N]? n
Subdirectory on proxy server [/]: /gerrit/ //可以选择直接跳过,那样你的gerrit最后的URL是 http://192.168.33.11:80
Listen on port [8081]: //切记,此端口号一定不要和apache2占用相同的端口号,多个gerrit可以8082 8083 8084
由于我们这里是选择HTTP认证,需要反向代理, 所以我们要配置Apache。
三, 配置Apache
1. 创建编辑apache配置文件,添加如下内容(下面以Ubuntu系统为例请注意不同操作系统apache配置文件的区别)也可配置 apache2.conf httpd.conf,我们这里配置的是/etc/apache2/sites-available/gerrit
$sudo vi /etc/apache2/sites-available/gerrit //该文件为自己新建, 默认是该文件是不存在
这个配置文件的意思是,当访问任意(*)时,进行代理,代理到/gerrit/login/目录,并根据AuthUserFile请求用户名及密码,最终代理为http://127.0.0.1:8081/gerrit/
2. /home/gerrit/review/etc/gerrit.passwd该文件是不存在的,我们要创建它并保存新建的用户名及密码
$ touch /home/gerrit/review/etc/gerrit.passwd
$ htpasswd /home/gerrit/review/etc/gerrit.passwd bingluo
或
$sudo htpasswd -cb /home/gerrit/review/etc/gerrit.passwd bingluo 123456
第二次添加其他用户时,不要加-c了:
$sudo htpasswd -b /home/gerrit/review/etc/gerrit.passwd test test
3. 由于 /etc/apache2/sites-available/gerrit是自己新建的, 默认是无效的,为了让它生效,要做以下几步:
$cd /etc/apache2/sites-enabled/
$sudo ln ../sites-available/gerrit .
$sudo vi /etc/apache2/http.conf //该文件是自己新建,在文件中加入以下内容
ServerName localhost
$cd /etc/apache2/mods-enabled
$sudo ln -s /etc/apache2/mods-available/proxy.conf proxy.conf
$sudo ln -s /etc/apache2/mods-available/proxy.load proxy.load
$sudo ln -s /etc/apache2/mods-available/proxy_http.load proxy_http.load
四, 启动服务
1. 重启或启动Apache
$ sudo /etc/init.d/apache2 restart
2. 重启或启动gerrit服务器
$review_site_project/bin/gerrit.sh start
五, 登陆gerrit
在浏览器地址栏中输入: 192.168.33.11/gerrit/
配置正常,用之前设置的用户名及密码应该是可以登陆到gerrit界面, 如下
六, 添加git项目到gerrit中
1. 配置ssh
$ ssh - keygen
在.ssh文件夹里添加新文件config, 内容如下:
测试连接
$ ssh gerritTest
如果出现 ,
- Connection to 192.168.5.102 closed.
表示连接成功,
如果遇到错误:1) Agent admitted failure to sign using the key .
2) Permission denied ( publickey , password ) .
请在 .bashrc 中设置环境变量并重启bashrc:
1)export SSH_AUTH_SOCK=0
2. 新建/检出GIT仓库
1) 新建git仓库
$ ssh gerritTest gerrit create-project -n testProject //该命令会创建review/git/testProject.git工程, 也可以在gerrit界面查看
2) 查看本人仓库权限
$ ssh gerritTest gerrit ls-projects
3) 检出仓库
$ git clone gerritTest:testProject
七, 用户权限的开通
八, 提交gerrit的代码,jenkins自动的进行编译打包
九, 提交本地git仓库到gerrit仓库
脚本如下:
#!/bin/bash -x
set -e
3、重启gerrit
4. 修改权限
九, 提交本地git仓库到gerrit仓库
脚本如下:
#!/bin/bash -x
set -e
#PROJECT=${REPO_PROJECT}
终端命令: ~/bin/repo forall -c $(pwd)/create.sh
十,提交代码:
git push --no-thin orgin HEAD:google_r4.3
十一,添加gitweb
1. 安装gitweb
sudo apt-get install gitweb
vi /etc/gitweb.conf
cd /home/gerrit/sourceCode/${REPO_PATH}/
git checkout -b master HEAD || true
#ssh gerrit gerrit create-project --name ${REPO_PROJECT}
git remote add jidou ssh://gerrit/${REPO_PROJECT}.git || true
git push jidou refs/heads/*:refs/heads/*
cd -
终端命令: ~/bin/repo forall -c $(pwd)/create.sh
十,提交代码:
git push --no-thin orgin HEAD:google_r4.3
十一,添加gitweb
1. 安装gitweb
sudo apt-get install gitweb
修改 $projectroot = "/home/git"
将$projectroot设置为git代码库所在的文件夹
2、编辑配置文件,让gerrit能找到gitweb的安装目录就行了
vim /data/gerrit/etc/gerrit.config
添加
[gitweb]
cgi = /var/www/git/gitweb.cgi
4. 修改权限
Reference: |
refs/meta/config // 添加read权限
|