ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]

一、安装 Java 和 Apache 


        1、如文章下文章中一所示

http://blog.csdn.net/dfhuang09/article/details/54730119

        2、安装 apache

sudo apt-get install apache2
        安装完成启动是若出现如下警告:(并不存在实际问题,可以选择忽略)

* Starting web server apache2                                                                                                                                   

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

        通过编辑下面的文件,在文件末尾添加一行内容sudo vim /etc/apache2/apache2.conf

ServerName localhost    #添加的内容
        再重启 apache 服务即可消除该警告。管理apache服务的常用命令如下:
sudo service apache2 start/stop/restart    #启动/停止/重启apache2

二、安装gerrit


        1、新建 gerrit 专用账号

sudo adduser gerrit    #这一步根据提示输入密码并确认信息
sudo su gerrit  
cd

        2、下载安装包并安装 

        可以自己选择安装包版本,这里以"gerrit-2.13.8.war"为例

wget http://gerrit-releases.storage.googleapis.com/gerrit-2.13.8.war
java -jar gerrit-2.13.8.war init -d review_site
        这里我们可以一路回车,以默认的配置完成安装。后面可以对相关文件修改进行配置操作。

        期间可能会出现一些下载文件失败的错误,可以根据提示手动下载后放至相应的位置完成。

        3、修改文件“gerrit.config”

vim ~/review_site/etc/gerrit.config
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第1张图片

         关于认证方式,还可以有 openid, LDAP 等方式,这里采用了 http 方式。这种认证方式下,登陆 gerrit 后会发送邮件至用户邮箱来确认邮箱地址。其缺点是口令文件管理需手动维护;另外登陆成功后切换用户或退出比较麻烦,无法直接退出,除非使用 http://nobody:worngpass@localhost:port/ (假设原本登陆地址是http://localhost:port/)。

        若出现以下错误,很可能是其中的“sendemail”配置存在问题

ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第2张图片


        4、创建 passwd 文件,添加 gerrit 登陆用户

        安装所需的一些工具

sudo apt-get install  apache2.2-bin apache2-utils apache2-mpm-worker
        创建口令文件,并添加 gerrit 登陆用户

sudo htpasswd -cb  /etc/apache2/passwords gerrit gerrit      #其中-c参数加路径用于在指定位置创建口令文件,仅第一次建用户需-c
        后续再添加其他用户时,可用下面的命令

sudo htpasswd /etc/apache2/passwords    #注意文件的位置要与上面的对应,然后按提示设置密码

        5、配置 Apache 反向代理访问 Gerrit

        编辑下面文件,新增监听端口(“Listen 1998”)

sudo vim /etc/apache2/ports.conf
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第3张图片


        打开所需的 module

cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/proxy.conf proxy.conf 
ln -s /etc/apache2/mods-available/proxy.load proxy.load 
ln -s /etc/apache2/mods-available/proxy_http.load proxy_http.load

        配置 Apache 服务器

sudo vim /etc/apache2/sites-enabled/000-default.conf
        添加以下内容至该文件:(后面遇到问题后做了一定的修改)
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第4张图片

        这里若出现下面的问题,则很可能就是这个方向代理没有配置好
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第5张图片

        6、重启 apache 和 gerrit 服务

        (1)、设置 gerrit 服务开机自启动:
sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
sudo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
sudo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
         自启动脚本需要一些缺省配置,故需创建下面的文件
sudo /etc/default/gerritcodereview
        并添加下面两行内容:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
        (2)、重启相关服务
sudo service apache2 restart
~/review_site/bin/gerrit.sh start    #此命令在gerrit用户下执行

        7、访问 Gerrit

        现在就可以通过 http://10.239.54.6:1998 来访问 gerrit 服务器了,第一次登陆的账号会成为管理员,后续登陆的账号可由管理员分配相应的权限。
        首次登陆需要添加邮箱地址,确认后再添加 ssh key 等信息 (这里以 test 用户为例)
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第6张图片

        生产 ssh key ,并配置好如下 ~/.gitconfig 以及 ~/.ssh/config 
vim /home/test/.ssh/config
vim /home/test/.gitconfig
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第7张图片

        接下来就可以验证 ssh 连接和 ssh key 是否正确了
ssh -p 29418 10.239.54.6 gerrit ls-projects    #没有问题就会列出所有的project
git clone ssh://[email protected]:29418/REPOSITORY_NAME.git    #没有问题就可以以此命令获取gerrit上的 project 了

        8、访问 H2 数据库,管理 gerrit 账号

        若用户名和 linux 用户名一致,可以省略,这里的用户名 gerrit 是第一次登陆的管理员账号
gerrit@husanlim:~$ ssh -p 29418 [email protected] gerrit gsql
         如果出现如下错误:
fatal: gerrit does not have "Access Database" capability.
        需在 gerrit 上做如下红框中的权限配置:
ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第8张图片

        另外还可以通过终止 gerrit 服务,运行下面的命令访问 H2 数据库:
gerrit@husanlim:~$ ~/review_site/bin/gerrit.sh stop
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war gsql -d ./review_site/
        常用的一些数据库管理命令:
gerrit> show tables;
gerrit> show columns from system_config;
gerrit> select * from ACCOUNTS;
gerrit> delete from ACCOUNT_EXTERNAL_IDS where email_address='[email protected]';
gerrit> update accounts set full_name='admin' where full_name='gerrit';


三、配置gerrit 插件


        1、安装插件

http://builds.quelltextlich.at/gerrit/nightly/master/latest-ok/index.html

        停掉 gerrit 服务,运行下面的命令即可:(建议不要直接下载插件包放到 plugins 目录,很容易会出现问题)

gerrit@husanlim:~$ review_site/bin/gerrit.sh stop
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war init -d review_site/ --batch --install-plugin commit-message-length-validator
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war init -d review_site/ --batch --install-plugin download-commands
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war init -d review_site/ --batch --install-plugin hooks
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war init -d review_site/ --batch --install-plugin replication
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war init -d review_site/ --batch --install-plugin reviewnotes
gerrit@husanlim:~$ java -jar gerrit-2.13.8.war init -d review_site/ --batch --install-plugin singleusergroup

        2、查看已经安装的插件

ssh -p 29418 [email protected] gerrit plugin ls

        3、卸载插件

ssh -p 29418 [email protected] gerrit plugin remove download-commands
        这里可能会遇到下面的错误:

fatal: remote plugin administration is disabled

        需要在 gerrit.config 中添加如下配置


四、过程中出现的问题


        1、create project 的问题

        网页上 create project 不能创建多级目录,报错 “404 Not Found” ;或者命令创建 project 后无法访问, 报错 “The page you requested was not found, or you do not havepermission to view this page.” 。

        这主要是由 URL 路径编码的问题造成的,需要 apache 服务器允许对 URL 中路径分隔符进行编码,修改 apache2 的配置

sudo vim /etc/apache2/sites-available/000-default.conf

ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]_第9张图片

        重启 apache 后问题就能解决了。




五、Reference


        http://www.worldhello.net/gotgit/05-git-server/055-gerrit.html

你可能感兴趣的:(SCM)