Centos 安装配置gerrit

关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream,或者使用这个命令:

setsebool -P httpd_can_network_connect 1

关闭selinux:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

reboot

首先安装jdk

yum install java java-devel,如果直接yum install java会自动找到相应的包的,我这里安装的是openjdk的1.7.0版本,目录可以自己看到。

配置java环境变量:

vim /etc/profile

1
2
3
4
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99-2.6.5.0.el7_2.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后source /etc/profile

javac有输出说明安装成功

安装mysql,请看http://www.cnblogs.com/juandx/p/5208613.html

然后给gerrit建一个库,并且授权

mysql> create database gerritdb;
Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON gerritdb.* TO 'gerrituser'@'localhost' IDENTIFIED BY 'gerritpass';
Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON gerritdb.* TO 'gerrituser'@'%' IDENTIFIED BY 'gerritpass';

下载gerrit的java包https://www.gerritcodereview.com/download/gerrit-2.12.2.war

然后安装就行啦,这里会提示你很多选择

[gerrit@gerrit ~]$ java -jar gerrit-2.12.2.war init -d review_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore *** Gerrit Code Review 2.12.2
*** *** Git Repositories
*** Location of Git repositories [/home/gerrit/git]: 这里一定要写git放的目录,没有的话自己会创建的 *** SQL Database
*** Database server type [mysql]: db这个不用说吧
Server 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的header
SSO logout URL :
Enable signed push support [y/N]? n *** Email Delivery
*** SMTP server hostname [smtp.163.com]: 25端口是163的smtp
SMTP server port [25]:
SMTP encryption [NONE/?]:
SMTP username [littlexiaowen@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.war [Y/n]? y
Copying gerrit-2.12.2.war to review_site/bin/gerrit.war *** SSH Daemon
*** Listen on address [*]:
Listen on port [29418]: *** HTTP Daemon
*** Behind reverse proxy [Y/n]? y
Proxy uses SSL (https://) [y/N]? n
Subdirectory on proxy server [/]:
Listen on address [127.0.0.1]:
Listen on port [8081]:
Canonical URL [http://gerrit.wenbin.com]: *** Plugins
*** Installing plugins.
Install plugin singleusergroup version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin commit-message-length-validator version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin reviewnotes version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin replication version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Install plugin download-commands version v2.12.2 [Y/n]? y
version v2.12.2 is already installed, overwrite it [Y/n]? y
Initializing 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 restart
Stopping Gerrit Code Review: OK
Starting Gerrit Code Review: OK
[gerrit@gerrit ~]$

没办法,报错了很多,遇到了很多问题,但是也知道了反向代理的原理,httpd和nginx的设置,知道了原来nginx这么好用, 并发量还这么好,以后要多多了解,单线程解决并发速度更快,算法很好,错的越多学的越多吧,一定要多看log啊

/review_gerrit/etc/gerrit.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[gerrit]
        basePath = /home/gerrit/git
        canonicalWebUrl = http://gerrit.wenbin.com
[database]
        type = mysql
        hostname = localhost
        database = gerritdb
        username = gerrituser
[index]
        type = LUCENE
[auth]
        type = HTTP
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = smtp.163.com
        smtpServerPort = 25
        smtpUser = littlexiaowen@163.com<br>        from=CodeReview<littlexiaowen@163.com>       这行是自己加的,不然注册的时候会提示失败,这里不用写密码,密码是写在security里的另一个文件里
[container]
        user = gerrit
        javaHome = /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99-2.6.5.0.el7_2.x86_64/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://127.0.0.1:8081/
[cache]
        directory = cache

看到网上有一种修改邮件发送方式的方法:ssh ha gerrit set-account --add-email user99@163.com user99,还没有试过 

先生存一个http的认证文件,创建admin用户

# htpasswd -c /passwords admin

然后会提示输入密码

安装nginx  yum install nginx

/etc/nginx/nginx.conf

...
# for more information.
include /etc/nginx/conf.d/*.conf; server {
listen 80;
server_name gerrit.wenbin.com;
root /usr/share/nginx/html; # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; location / {
auth_basic "Gerrit Code Review";
auth_basic_user_file /passwords;
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

systemctl restart nginx就可以了

如果使用apache,那么yum install httpd,更改配置文件

/etc/httpd/httpd.conf

# Defaults if commented: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
EnableSendfile on # Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
#增加下面这些
<VirtualHost *:80>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthUserFile /passwords
</Location>
ProxyPass / http://127.0.0.1:8081/
</VirtualHost>

systemctl resatrt httpd

如果nginx报错不能连接到8081端口,可能是selinux没有关

设置开机启动

sudo cp etc/gerrit.config /etc/init.d/gerrit

sudo ln -snf /etc/init.d/gerrit /etc/rc2.d/S90gerrit

sudo ln -snf /etc/init.d/gerrit /etc/rc3.d/S90gerrit

这样就安装成功了,哎。。。遇到的问题是gerrit repository not found: All-Projects,这样是发现没有在第二个回答中写git目录,如果再次出现这个错误,那就先在mysql中drop再create一遍db就好了。。。

在/review_gerrit/bin/gerrit.sh中实际代码第一行加入

GERRIT_SITE=/home/gerrit/review_site

执行/home/gerrit/review_site/bin/gerrit.sh就可以启动gerrit了

这样在浏览器中访问域名或者ip地址就ok了,输入admin的用户名和密码就可以看到界面了。

会提示注册邮箱,自己注册个就行了,

在右上角点击用户,选setting设置ssh-key

在主机上执行 ssh-keygen -C ***@163.com

把公钥放进页面的sshkey

这样就可以了,下面就需要把gitlab,gerrit,jenkins配置起来

收获不会与付出成反比 by juandx
 

安装配置gerrit的更多相关文章

  1. Centos 安装配置gerrit

    关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting ...

  2. gerrit+nginx+centos安装配置

    安装环境 centos 6.8 gerrit-full-2.5.2.war 下载地址:https://gerrit-releases.storage.googleapis.com/gerrit-ful ...

  3. Gerrit - 安装配置GitWeb

    1 - GitWeb简介 GitWeb是一个支持在Web页面上查看代码以及提交信息的工具. 安装GitWeb工具并且集成到Gerrit中,就可以直接在Gerrit的项目列表中查看项目的代码信息. 2 ...

  4. gerrit安装配置记录

    gerrit安装配置 java -jar gerrit-2.13.5.war init -d gerrit Authentication method [OPEN/?]: htt Install Ve ...

  5. Centos7安装配置gitlab

    Centos7安装配置gitlab 这篇文字我会介绍在Centos7上安装gitlab,配置gitlab的smtp,并且创建项目demo. sudo yum install openssh-serve ...

  6. Gerrit2安装配置

    我主要根据下面这个文章而安装,遇到一些小问题,记录如下:2016.4.30 安装 2.12.2,要将加密的东东全装上!!!注意                      1) 由于新的git-bash ...

  7. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  8. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  9. ADFS3.0与SharePoint2013安装配置(原创)

    现在越来越多的企业使用ADFS作为单点登录,我希望今天的内容能帮助大家了解如何配置ADFS和SharePoint 2013.安装配置SharePoint2013这块就不做具体描述了,今天主要讲一下怎么 ...

随机推荐

  1. WM_PAINT与WM_ERASEBKGND(用户操作和API这两种情况产生消息的顺序有所不同)

    1)当WM_PAINT不是由InvalidateRect产生时,即由最大化,最小化等产生时,或者移动产生(移动有时只会产生WM_ERASEBKGND消息)系统先发送WM_ERASEBKGND消息,再发 ...

  2. Android开发okhttp,retrofit,android-async-http,volley?

    okhttp, retrofit,android-async-http,volley这四个框架适用的场合?优缺点?各位大大,请给一些建议.我准备开发一个新的APP 如果是标准的RESTful API, ...

  3. Git 使用规范流程(转)

    团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是ThoughtBot 的Git使用规范流程.我从中 ...

  4. OCA读书笔记(3) - 使用DBCA创建Oracle数据库

    Objectives: •Create a database by using the Database Configuration Assistant (DBCA) •Generate databa ...

  5. 微信公众平台应用开发框架sophia设计不足(1)

    设计一个小框架考虑的东西真不少,每一样都不easy: 1.既要解决当前技术的不足: 2.又要方便他人使用(基本的目的). 3.同一时候又要设计得优雅.easy扩展. sophia一開始设计用来支持智能 ...

  6. HTML 页面载入 Flash 插件的几种方法

    前言 之所以写这篇文章,主要是由于组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了非常多资料,由于这样那样的原因,终于选择了使用flash插件来调用pc的摄像头. ...

  7. UNIX下改动时间简单一例

    UNIX下改动时间简单一例 仅仅输入date就显示当前的工作站时间,假设有root超级用户权限,加上參数能够改动 工作站的时间. 格式:date mmddHHMM[cc]yy mm--月份,dd--日 ...

  8. IP分类地址——a,b,c 类是如何划分的

    今天IP网络使用32位地址,点分十进制格式,如172.16.0.0.地址格式:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址. IP地址类型 当互联网最初的设计,为了便于网络 ...

  9. java学习笔记05--字符串 .

    java学习笔记05--字符串 . 一.String类 由字符所组成的一串文字符号被称之为字符串.在java中字符串不仅仅是字符数组,而且是String类的一个实例,可以使用String类来构建. 字 ...

  10. sort如何按指定的列排序·百家电脑学院

    sort如何按指定的列排序·百家电脑学院 sort如何按指定的(9php.com)列排序 0000            27189           41925425065f           ...