Gerrit服务器安装及配置


在这里插入图片描述

准备

java安装

切root账号: su root
gerrit账号 创建并使用:

sudo adduser gerrit         

–配置sudo 在root用户下 输入 visudo,并在# User privilege specification 下面添加 :

gerrit  ALL=(ALL:ALL) ALL

Ctrl + O :保存文件,再按 Enter键 确认并退出

sudo su gerrit
cd /home/gerrit

一、Gerrit安装

下载 最新版本 release version参考: Gerrit Releases site.

wget https://gerrit-releases.storage.googleapis.com/gerrit-3.10.1.war

安装:

java -jar gerrit-3.10.1.war init -d /home/gerrit

安装时初始参数:
auth方式输入 HTTP , 并使用反向代理;
url输入: http://172.29.50.78:8081 --本地wsl ip地址: 172.29.50.78
其他都默认,plugin插件都选y

配置用户:

htpasswd -c /home/gerrit/etc/gerrit.password admin      # 创建第一个用户admin,同时会生成一个gerrit.password文件
htpasswd -m /home/gerrit/etc/gerrit.password user1     # 在gerrit.password增加用户用 -m

htpasswd 是apache密码生成工具,安装apache2:

sudo apt-get install apache2

启动gerrit

cd /home/gerrit/bin
./gerrit.sh start	#启动
./gerrit.sh status	#查看状态
./gerrit.sh stop	#停止
./gerrit.sh restart	#重启

此时登录 http://172.29.50.78:8081 会报错,因为没有配置反向代理
gerrit报错

二、配置反向代理

可以用nginx 以及 apache ,以nginx为例

安装ngnix

sudo apt-get install nginx

设置nginx
sudo vi /etc/nginx/conf.d/gerrit.conf

server {
    listen 81;            # 代理监听81端口
    server_name localhost;
    allow all;
    deny all;

    auth_basic "Welcome to Gerrit Code Review Site!";
    auth_basic_user_file /home/gerrit/etc/gerrit.password;       # 代理使用 gerrit.password                                                                                                                                                                                                            
    location / {
        proxy_pass  http://172.29.50.78:8081;        # 代理指向gerrit本地服务url,这个url要和gerrit.config中的canonicalWebUrl相同
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;                                                                                        
    }
}  

ps: In common ‘proxy_pass’ should be localhost : http://127.0.0.1:8081

设置Gerrit
另外需要确保gerrit中etc目录的gerrit.config文件内容如下:

[gerrit]
        basePath = git
        canonicalWebUrl = http://172.29.50.78:8081
        serverId = 224279c5-76ca-4018-8de1-b6dd546be4e6
[container]
        javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
        javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
        user = gerrit
        javaHome = /usr/lib/jvm/java-17-openjdk-amd64
[index]
        type = lucene
[auth]
        type = HTTP
[receive]
        enableSignedPush = false
[sendemail]
        smtpServer = localhost
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://172.29.50.78:8081/
[cache]
        directory = cache

启动nginx:

sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl status nginx

登录gerrit

浏览器打开 http://172.29.50.78:81/ ,即可输入用户名密码登录
在这里插入图片描述

三、Gerrit其他配置

配置SSH
git config --global user.name admin
ssh-keygen -t rsa -C “admin”

配置 config文件

Host 10.4.64.150                           #修改成自己的gerrit服务器ip
HostName 10.4.64.150                  #修改成自己的gerrit服务器ip
User admin                                         #修改成自己的gerrit用户名
PubkeyAcceptedKeyTypes +ssh-rsa				#保持不变
IdentityFile ~/.ssh/id_rsa                               #保持不变
Port 29418                                               #保持不变

C:\Users{username}.ssh文件夹下:
config
id_rsa
id_rsa.pub
存储private key,将pub key 配置在gerrit设置中。

配置用户邮箱:
– 需要admin账号配置完sshkey。
ssh 172.29.50.78 gerrit set-account admin --add-email admin@admin.com

配置用户权限:
选择 project(或选择parent project) , 选择 Access, 点击Edit,添加reference,
注意gerrit 有 refs/head/master 和 refs/for/master的区别,这里可以分别设置,也可以设置 refs/*

android 源码仓库:
https://android.googlesource.com/

如何将整套Android源码上传至gerrit
https://www.jianshu.com/p/9d62b1f0fb0f

如何用Gerrit管理你的Android代码? - Fenn的文章 - 知乎
https://zhuanlan.zhihu.com/p/561099921

安卓代码(repo管理)完整导入Gerrit服务器和Gerrit代码迁移备份
https://blog.csdn.net/ITerated/article/details/122730922

将安卓代码导入gerrit
https://blog.csdn.net/automan12138/article/details/80889708
烤鸭的gerrit使用总结
https://blog.csdn.net/benkaoya/article/details/8680886

搭建android源代码repo仓库
https://www.jb51.net/article/254278.htm

FAQ

登录后出现500 error,查看nginx日志发现错误:

sudo cat /var/log/nginx/error.log
"/home/gerrit/etc/gerrit.password" failed (13: Permission denied),

表明nginx对此文件没有权限。
最直接的办法是,修改nginx的运行权限为root

vi /etc/nginx/nginx.conf
#user www-data;
user root;

注: 这种方式不推荐生产环境使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值