[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)

此文档为我工作中搭建安卓代码服务器时做的笔记。

 

Gerrit服务器的搭建

目录

Gerrit服务器的搭建

1、服务器信息:

2、开发环境:

3、JDK安装

4、安装gerrit

4.1、安装git

4.2、下载gerrit安装包

4.3、新建gerrit专用用户

4.4、安装gerrit

4.5、配置gerrit

4.6、重启gerrit

5、安装Nginx

5.1、为了安装更快和一次成功,先更换源:(可跳过)

5.2、安装Nginx依赖库

5.3、安装Nginx

5.4、修改Nginx默认配置

5.4.1、指定配置文件

5.4.2、修改配置文件

5.4.3、检查配置文件是否正确:

5.4.4、重新加载配置文件:

5.4.5 重启Nginx:

5.4.6 停止或启动 Nginx:

6、登录认证文件:

7、Nginx设置开机启动:


1、服务器信息:

IP: 172.16.1.227

ssh_port: 22

user: hopechart           user: root

passwd: Hopechart@227     passwd: Hopechart@227


2、开发环境

  1. ubuntu 16.04(64位)
  2. Java 1.7.0 (至少1.6以上)
  3. git 1.7,1   
  4. Nginx 1.10.2

3、JDK安装

因为整个gerrit的安装是依赖于Java。

首先:java -version确认是否安装。


4、安装gerrit

 

sudo apt-get install openjdk-8-jdk

4.1、安装git

$ /home/gerrit/gerrit_site/bin/gerrit.sh restart

4.2、下载gerrit安装包

gerrit的下载地址:https://www.gerritcodereview.com/releases/README.md

我使用的gerrit版本是2.13.4。 下载完成之后会发现是一个war的包。

4.3、新建gerrit专用用户

新建一个用户用来专门管理gerrit相关的内容。
root用户(或者使用sudo命令)下面输入下面的命令:

# adduser gerrit
# su gerrit

4.4、安装gerrit

gerrit用户的目录(/home/gerrit/)下面,执行下面的命令:

$ java -jar gerrit-2.13.4.war init -d ~/gerrit_site

这个命令的意思是执行安装gerrit,会在当前目录下新建一个文件夹gerrit_site用来作为gerrit的根目录,在这个目录中,会安装git仓库,以及gerritweb页面,还有gerritbinetc等文件夹。
    然后就开始安装过程了,安装的过程会询问很多问题,有一些判断性的问题会用[y/N]这样的形式,大写的字母表示默认,我们直接敲回车就表示采用默认的安装选项。

注意:我们安装的时候,可以只在Authentication method时输入http,其他全部回车用默认值,因为其他配置我们待会可以通过etc/gerrit.config文件进行修改。

## 用户认证方式,注意!!!!!这里一定要手动输入 http, 其他的就直接回车
*** User Authentication  
***  



Authentication method          [OPENID/?]: http  

4.5、配置gerrit

#vim  /home/gerrit2/gerrit/etc/gerrit.config

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第1张图片

说明:

  1. canonicalWebUrl 就是gerrit的主页地址。开篇时,我们假设gerrit服务器的ip地址是172.16.1.227,这里我们就需要设置成http://172.16.1.227:9092。

  2. auth的类型一定要是http,这是我们在安装的时候唯一需要手动设置的地方。

  3. sshd就是ssh监听的端口。

  4. httpd表示反向监听的端口,这里注意要修改成proxy-http://*:9093/,默认值是没有proxy的。

4.6、重启gerrit

完成上面的配置之后,我们重启一下gerrit

gerrit的可执行文件位于/home/gerrit/gerrit_site/bin目录下,我们直接执行。

$ /home/gerrit/gerrit_site/bin/gerrit.sh restart

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第2张图片


 

5、安装Nginx

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器。

5.1、为了安装更快和一次成功,先更换源:(可跳过)

cp /etc/apt/sources.list /etc/apt/sources.list.old

 

 vim /etc/apt/source.list

添加东北大学源:

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第3张图片

apt-get update

5.2、安装Nginx依赖库

apt-get install build-essential



apt-get install libtool



sudo apt-get install libpcre3 libpcre3-dev



apt-get install zlib1g-dev



apt-get install openssl

5.3、安装Nginx

下载最新版本:

wget http://nginx.org/download/nginx-1.11.3.tar.gz

解压:

tar -zxvf nginx-1.11.3.tar.gz

进入解压目录:

cd nginx-1.11.3

配置:

/configure --prefix=/usr/local/nginx 

编辑nginx:

make

注意:这里可能会报错,提示“pcre.h No such file or directory”,具体详见:

需要安装 libpcre3-dev,命令为:sudo apt-get install libpcre3-dev

安装nginx

sudo make install

启动nginx

sudo  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。

查看nginx进程:

ps -ef|grep nginx

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第4张图片

5.4、修改Nginx默认配置

5.4.1、指定配置文件

root@hopechart-pc:/usr/local/nginx/sbin# ./nginx -c /usr/local/nginx/conf/nginx.conf

-c表示configuration,指定配置文件

5.4.2、修改配置文件

默认的nginx只有一个default.conf文件,是nginx的默认配置文件,我们这里需要新建一个专门用来处理gerrit请求的配置文件。我这里新建了一个gerrit.conf文件,用来处理gerrit的反向代理。

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第5张图片

解释下里面的几个重点:

1、上面就是默认的配置,看到这里我把端口默认的监听端口设置成了9090

2、auth_basic 是用于登录时弹出验证登录对话框如图1。

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第6张图片

                                                    图1

3、auth_basic_user_file 是我们输入用户名和密码之后要去验证是否匹配的文件,看到路径是放在我们的gerrit用户目录下面。

4、location 部分指的的是当用户访问到172.16.1.227:9090时,要指向的内容,这里面的proxy_pass 字段表示要做的反向代理,指向的是9092,还记得9092端口是谁在用么?对的,就是我们之前新建好的gerritweb监听端口,也就是说,当用户访问9090端口时,nginx直接把这个请求代理到9092端口上去了,这个就是所谓的反向代理。

5.4.3、检查配置文件是否正确

root@hopechart-pc:/usr/local/nginx/sbin# ./nginx - t

5.4.4、重新加载配置文件:

root@hopechart-pc:/usr/local/nginx/sbin# ./sbin/nginx -s reload

5.4.5 重启Nginx:

root@hopechart-pc:/usr/local/nginx/sbin# ./nginx restart

5.4.6 停止或启动 Nginx:

停止:

root@hopechart-pc:/usr/local/nginx/sbin# ./nginx -s stop



root@hopechart-pc:/usr/local/nginx/sbin# ./nginx -s quit

启动:

root@hopechart-pc:/usr/local/nginx/sbin#./sbin/nginx 

6、登录认证文件:

这里我们需要用apach的 htpasswd工具来新建这个文件,这也是为什么我们虽然不用到apache的反向代理,仍然需要apache的原因。

 

我们通过下面的命令来在/home/gerrit/路径下创建认证文件

 htpasswd -c /home/gerrit/gerrit.password admin

这个命令的详细解释:

  • 1、-c表示create,也就是新建的意思
  • 2、接下来跟上文件要创建的目录以及文件名,我们直接用绝对路径,表示将在/home/gerrit目录下新建一个gerrit.password文件
  • 3、最后的admin表示要写入的用户名

 

接下来你需要在命令行中连续输入两次密码,我们就为admin用户设置好了密码,可以通过vim来查看下这个密码文件,会发现里面是经过加密的。

如果我们想新建别的用户,或者修改某个用户的密码,只需要把-c改成-m就好了,如果还是用-c并且路径不变的话,就会覆盖掉原来的文件。
例如:我们想要新增一个用户,master,允许其通过页面登录,只需要执行下面的命令就好了。

 htpasswd -m /home/gerrit/gerrit.password admin

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第7张图片

[Gerrit服务器]gerrit服务器的搭建(用于安卓代码管理)_第8张图片


 

 

7、Gerrit设置开机启动:

1.通过如下步骤设置gerrit服务开机自启动:

sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh

sduo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit

sduo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit

2.服务自动启动脚本/etc/init.d/gerrit.sh需要通过 /etc/default/gerritcodereview(该申明被卸载gerrit.sh脚本里面)文件来提供一些配置。该文件的内容为:

GERRIT_SITE=/home/gerrit/review_site

NO_START=0

3.如果不能启动,可能需要查看下权限

update-rc.d gerrit2 defaults

8、Nginx设置开机启动:

/etc/init.d/目录下创建名为nginx的文件:

sudo touch /etc/init.d/nginx

编辑如下内容:

//-------------------------------------------------------

#!/bin/bash



set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DESC="nginx daemon"

NAME=nginx

DAEMON=/usr/local/nginx/sbin/$NAME

SCRIPTNAME=/etc/init.d/$NAME





# If the daemon file is not found, terminate the script.

test -x $DAEMON || exit 0



d_start() {

        $DAEMON || echo -n " already running"

}



d_stop() {

        $DAEMON –s quit || echo -n " not running"

}



d_reload() {

        $DAEMON –s reload || echo -n " could not reload"

}



case "$1" in

    start)

    echo -n "Starting $DESC: $NAME"

    d_start

    echo "."

    ;;

stop)

    echo -n "Stopping $DESC: $NAME"

    d_stop

    echo "."

    ;;

reload)

    echo -n "Reloading $DESC configuration..."

    d_reload

    echo "reloaded."

    ;;

restart)

    echo -n "Restarting $DESC: $NAME"

    d_stop

# Sleep for two seconds before starting again, this should give the

# Nginx daemon some time to perform a graceful stop.

    sleep 2

    d_start

    echo "."

    ;;

*)

    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2

    exit 3

    ;;

esac

exit 0

//-------------------------------end----------------------



2.

sudo touch /etc/init.d/nginx

3.在rc.local文件的最后中添加如下的一行: /etc/init.d/ngistartnx

最后,nginx可以通过 /etc/init.d/nginx start或者 service nginx start进行启动。

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(------运维------,子类___Gerrit服务器,gerrit,安卓代码管理)