Gerrit搭建过程
来源:互联网 发布:周鸿祎谈网络战争 编辑:程序博客网 时间:2024/05/21 18:45
Gerrit搭建过程
搭建环境 : CentOS 6.5 Gerrit 2.12版本
搭建前的准备工作:
安装JDK,我安装的JDK7,直接yum install java
验证是否安装完成:java -version
注意,如果不是通过yum安装,而是下载的tar.gz,解压安装的,不要忘了配置JAVA_HOME和环境变量
安装git, yum install git
验证是否安装完成:git –version
安装MySql数据库
然后给gerrit建一个库,并且授权
mysql> create database gerritdb;Query OK, 1 row affected (0.00 sec)mysql> GRANT ALL PRIVILEGES ON gerritdb.* TO 'gerrit'@'localhost' IDENTIFIED BY 'password';Query OK, 0 rows affected (0.00 sec)mysql> GRANT ALL PRIVILEGES ON gerritdb.* TO 'gerrit'@'%' IDENTIFIED BY 'password';
Gerrit 安装
下载:Gerrit 2.12.4 https://www.gerritcodereview.com/download/gerrit-2.12.4.war
创建一个目录,讲gerrit.war放在里面
创建gerrit目录:mkdir ~/gerrit
cd 到该目录下:cd ~/gerrit
然后在终端运行: java -jar gerrit-2.12.4.war init -d review_site
[gerrit@gerrit ~]$ java -jar gerrit-2.12.4.war init -d review_siteUsing secure store: com.google.gerrit.server.securestore.DefaultSecureStore*** Gerrit Code Review 2.12.4*** *** Git Repositories*** Location of Git repositories [/home/gerrit/git]: 这里一定要写git放的目录,没有的话自己会创建的*** SQL Database*** Database server type [mysql]: 支持很多种数据库,我这儿写mysqlServer hostname [localhost]: Server port [(mysql default)]: Database name [gerritdb]: Database username [gerrituser]: Change gerrituser's password [y/N]? *** Index*** Type [LUCENE/?]: 默认就好,直接回车The index must be rebuilt before starting Gerrit: java -jar gerrit.war reindex -d site_path*** User Authentication*** Authentication method [HTTP/?]: 一定要写http,不然就不是反向代理了,写development_become_any_account就随意登陆了Get username from custom HTTP header [Y/n]? n 一定要n,不然反向代理gerrit报错为缺少一个y的headerSSO logout URL : Enable signed push support [y/N]? n*** Email Delivery*** SMTP server hostname [smtp.163.com]: 25端口是163的smtpSMTP server port [25]: SMTP encryption [NONE/?]: SMTP username [wykeithwang@163.com]: Change littlexiaowen@163.com's password [y/N]? *** Container Process*** Run as [gerrit]: 这是用户,root也可以Java runtime [/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99-2.6.5.0.el7_2.x86_64/jre]: Upgrade review_site/bin/gerrit-2.12.war [Y/n]? yCopying gerrit-2.12.4.war to review_site/bin/gerrit.war*** SSH Daemon*** Listen on address [*]: Listen on port [29418]: *** HTTP Daemon*** Behind reverse proxy [Y/n]? yProxy uses SSL (https://) [y/N]? nSubdirectory on proxy server [/]: Listen on address [127.0.0.1]: Listen on port [8081]: Canonical URL [http://gerrit.huanle.com]: *** Plugins*** Installing plugins.Install plugin singleusergroup version v2.12.4 [Y/n]? yversion v2.12.4 is already installed, overwrite it [Y/n]? yInstall plugin commit-message-length-validator version v2.12.4 [Y/n]? yversion v2.12.4 is already installed, overwrite it [Y/n]? yInstall plugin reviewnotes version v2.12.4 [Y/n]? yversion v2.12.4 is already installed, overwrite it [Y/n]? yInstall plugin replication version v2.12.4 [Y/n]? yversion v2.12.4 is already installed, overwrite it [Y/n]? yInstall plugin download-commands version v2.12.4 [Y/n]? yversion v2.12.4 is already installed, overwrite it [Y/n]? yInitializing plugins.No plugins found with init steps.Initialized /home/gerrit/review_site[gerrit@gerrit ~]$ vim review_site/etc/gerrit.config [gerrit@gerrit ~]$ vim sshd_log ^C[gerrit@gerrit ~]$ ./review_site/bin/gerrit.sh restartStopping Gerrit Code Review: OKStarting Gerrit Code Review: OK[gerrit@gerrit ~]$
安装nginx,利用nginx作反向代理
添加一个反向代理的配置文件,如下图所示,添加了一个gerrit.conf文件
文件内容如下,具体怎么配置可以google或者百度一下nginx怎样配置:
server { listen *:80; server_name gerrit.huanle.com; allow all; deny all; auth_basic "Welcomme to Gerrit Code Review Site!"; auth_basic_user_file /var/log/nginx/htpasswd.conf; location / { proxy_pass http://127.0.0.1:8081; } }
注意这一行配置:auth_basic_user_file /var/log/nginx/htpasswd.conf; 需要创建这个文件,需要创建好,这个文件是用来配置登录网站的用户名和密码,如下图所示,登录的时候需要用到
安装htpasswd ,通过这个工具生成上面所述的用户和密码
htpasswd -b /var/log/nginx/htpasswd.conf username password
重启nginx服务器sudo /etc/init.d/nginx restart
并且启动gerrit: ./gerrit.sh start
用户名和密码就会生效,注意这个登录成功后,gerrit才会将用户名存储到数据库中,登录后如下所示:
注意,如果输入用户名和密码报 500 Internal Server Error错误的话:就去看一下nginx的错误日志,我出现过,后来看日志发现是htpasswd.conf没有读权限。
Gerrit配置
登录后去Settings配置SSH Public KEY,就可以使用啦
遇到的问题:克隆代码成功但是无法提交代码
git clone ssh://wangjie@gerrit.huanle.com:29418/huanle-android
git push origin HEAD:refs/for/master
原因是没有在gerrit配置邮箱地址,用于没有搭建邮件服务器,没法再gerrit网页上为用户添加邮箱
只能修改数据库,添加邮箱,重启gerrit服务器:
update account_external_ids set email_address = 'yourmail@xx.com' where account_id = your_acc_id
还有另外一个错误:
remote: ERROR: missing Change-Id in commit message footerremote: Suggestion for commit message:remote: 12.2 commitremote: remote: Hint: To automatically insert Change-Id, install the hook:remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 yaoshine@192.168.1.101:hooks/commit-msg ${gitdir}/hooks/remote: remote:
解决方式:
1). 检查仓储.git/hook下面是否有 commit-msg 文件,如果没有, 在gerrit服务器的网址后面加上 /tools/hooks/commit-msg 即可下载。
添加后,每次执行git commit 都会自动在log里面生成 Change-Id,用于gerrit code review。
创建远程分支:
git push origin local_branch:remote_branch
- Gerrit搭建过程
- 新手linux 搭建gerrit过程。
- 【Gerrit】gerrit server搭建
- gerrit 搭建
- gerrit搭建
- gerrit的搭建
- gerrit环境搭建
- gerrit 搭建和使用
- Gerrit 服务器搭建
- Gerrit 服务器搭建
- inux搭建gerrit服务器
- Gitolite+Gerrit服务器搭建
- gerrit服务器搭建总结
- ubuntu搭建Gerrit平台总结
- git 服务器搭建之gerrit
- Gerrit代码审核服务器搭建
- Gerrit代码审核服务器搭建
- gerrit代码评审服务器搭建
- mysql数据库数据表的相关操作
- HashSet HashTable HashMap的区别
- AndroidStudio打包jar包
- epoll
- git使用大全,强大的项目管理工具
- Gerrit搭建过程
- 行人检测(Pedestrian Detection)资源与更新
- Spring那些事(2)-关于maven至少得知道这些事儿吧
- DWZ(JUI)查找带回再次点击已选择的自动勾选
- 详解List、Iterator
- QTCreator 更改代码高亮主题为 VS+VA助手
- Oracle 11g体系结构
- 从头来
- Android 在项目中引入另一个项目作为依赖(引入Module)