当前位置:   article > 正文

gerrit配置安装部署过程_gerrit搭建

gerrit搭建

#gerrit配置
Gerrit安装
Gerrit权限分配与群组创建
Gerrit代码下载和上库

Gerrit安装
1.环境准备
使用的ubuntu版本是22.04,gerrit的版本是gerrit-3.7.0.war

2,安装java-sdk —(数据库安装)
sudo apt-get install java-sdk 可以查看到当前支持的版本![在这里插入图片描述](https://img-blog.csdnimg.cn/d1df5769317d4e4fb7134dd897cf0f68.png
我自己安装的是sudo apt-get install openjdk-11-jdk 11.0.19+7us1-0ubuntu122.04.1

在这里插入图片描述

3,安装代理nginx
sudo apt-get install nginx

4,安装ssh 用于远程连接gerrit服务器
sudo apt-get install ssh
注意:由于OpenSSH8.8之后的ssh协议,不在默认支持rsa协议,需要修改下配置文件
vim /etc/ssh/sshd_config
在这个文件最后加上
HostKeyAlgorithms=+ssh-rsa,ssh-dss
KexAlgorithms=+diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

然后再重启ssh服务
systemctl restart sshd.service

5.安装gerrit

创建一个专门管理gerrt用户
su root 切换到root
adduser gerrit
按照提示输入密码
然后进入到这用户目录下
su gerrit
cd /home/gerrit

将安装包复制到这个路径下
如果是跨服务器的话,scp -v user@192.168.x.x:/home/user/gerrit-3.7.0.war ./
创建一个专门gerrit的安装目录
mkdir review_site

参考的安装步骤
zowee@machine:~$ java -jar gerrit-3.7.0.war init -d review_site/
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2023-06-01 14:29:29,410] [main] INFO com.google.gerrit.server.config.GerritServerConfigProvider : No /home/zowee/review_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 3.7.0


Create ‘/home/zowee/review_site’ [Y/n]? Y

*** Git Repositories


Location of Git repositories [git]: git

*** JGit Configuration


Auto-configured “receive.autogc = false” to disable auto-gc after git-receive-pack.

*** Index


Type [lucene]:

*** User Authentication


Authentication method [openid/?]: http
Get username from custom HTTP header [y/N]? N
SSO logout URL :
Enable signed push support [y/N]?
Use case insensitive usernames [Y/n]?

*** Review Labels


Install Verified label [y/N]? y

*** Email Delivery


SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [none/?]:
SMTP username :

*** Container Process


Run as [zowee]:
Java runtime [/usr/lib/jvm/java-11-openjdk-amd64]:
Copy gerrit-3.7.0.war to review_site/bin/gerrit.war [Y/n]? Y
Copying gerrit-3.7.0.war to review_site/bin/gerrit.war

*** SSH Daemon


Listen on address [*]:
Listen on port [29418]:
Generating SSH host key … rsa… ed25519… ecdsa 256… ecdsa 384… ecdsa 521… done

*** HTTP Daemon


Behind reverse proxy [y/N]? y
Proxy uses SSL (https://) [y/N]?
Subdirectory on proxy server [/]:
Listen on address [*]:
Listen on port [8081]:
Canonical URL [http://machine/]:

*** Cache


*** Plugins


Installing plugins.
Install plugin codemirror-editor version v3.7.0 [y/N]? y
Installed codemirror-editor v3.7.0
Install plugin commit-message-length-validator version v3.7.0 [y/N]? y
Installed commit-message-length-validator v3.7.0
Install plugin delete-project version v3.7.0 [y/N]? y
Installed delete-project v3.7.0
Install plugin download-commands version v3.7.0 [y/N]? y
Installed download-commands v3.7.0
Install plugin gitiles version v3.7.0 [y/N]? y
Installed gitiles v3.7.0
Install plugin hooks version v3.7.0 [y/N]? y
Installed hooks v3.7.0
Install plugin plugin-manager version v3.7.0 [y/N]? y
Installed plugin-manager v3.7.0
Install plugin replication version v3.7.0 [y/N]? y
Installed replication v3.7.0
Install plugin reviewnotes version v3.7.0 [y/N]? y
Installed reviewnotes v3.7.0
Install plugin singleusergroup version v3.7.0 [y/N]? y
Installed singleusergroup v3.7.0
Install plugin webhooks version v3.7.0 [y/N]? y
Installed webhooks v3.7.0
Initializing plugins.

============================================================================
Welcome to the Gerrit community

Find more information on the homepage: https://www.gerritcodereview.com
Discuss Gerrit on the mailing list: https://groups.google.com/g/repo-discuss

Initialized /home/zowee/review_site
Init complete, reindexing accounts,changes,groups,projects with: reindex --site-path review_site --threads 1 --index accounts --index changes --index groups --index projects --disable-cache-statsReindexed 0 documents in accounts index in 0.0s (0.0/s)
Index accounts in version 12 is ready
Reindexing groups: 100% (2/2)
Reindexed 2 documents in groups index in 0.4s (4.7/s)
Index groups in version 9 is ready
Reindexing changes: Slicing projects: 100% (2/2), done
Reindexed 0 documents in changes index in 0.5s (0.0/s)
Index changes in version 79 is ready
Reindexing projects: 100% (2/2)
Reindexed 2 documents in projects index in 0.2s (11.4/s)
Index projects in version 5 is ready
Executing /home/zowee/review_site/bin/gerrit.sh start
** ERROR: Cannot find git in PATH
error: cannot start Gerrit: exit status 1
Waiting for server on machine:80 … OK
Opening http://machine/#/admin/projects/ …OK

创建gerrit用户,用于登录访问
先再/home/gerri/路径下创建一个存放账号密码的文件
touch gerrit.password
创建用户
sudo htpasswd -m gerrit.password userName

默认第一个用户就是超级用户(累加的方式)
sudo htpasswd -m gerrit.password admin

修改gerrit配置文档,需要修改位置 绿色标记
[gerrit]
basePath = git
canonicalWebUrl = http://10.26.1.105/
serverId = b4041bdf-e539-4b51-98a7-e0e2c51b8037
[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 = zowee
javaHome = /usr/lib/jvm/java-11-openjdk-amd64
[index]
type = lucene
[auth]
type = HTTP
userNameCaseInsensitive = true
[receive]
enableSignedPush = false
[sendemail]
smtpServer = localhost
[sshd]
listenAddress = :29418
[httpd]
listenUrl = proxy-http://
:8081/
[cache]
directory = cache

修改nginx配置文档
cd /etc/nginx/conf.d
创建代理的配置文件 这里需要root权限
sudo touch gerrit.conf

修改内容
sudo vim gerrit.con.f
内容如下:标记位置对应修改即可
server {

listen *:85;
server_name 10.26.1.105;
allow all;
#deny all;

auth_basic “Welcomme to Gerrit Code Review Site!”;
auth_basic_user_file /home/gerrit/gerrit.password;

location /{
proxy_pass http://10.26.1.105:8081/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}

修改nginx访问权限
需要将nginx的默认用户修改为root,否则无法访问/home/gerrit目录下的gerrit.passwd
和修改记录
cd /etc/nginx/
sudo vim nginx.conf
第一行的默认用户修改为user root;

重启nginx服务
systemctl stop nginx
nginx
如果出现了端口没有被清除的报错,则需要关闭对应的进程,然后再拉起nginx进程
端口查询
lsof -i:端口

删除进程
kill -9 pid

启动gerrit
su gerrit
cd /home/gerrit/review_site/bin
拉起服务
./gerrit.service restart或
./gerrit.service start

如果gerrit或者nginx拉起失败,这两个路径下的出错日志,可以作为具体参考
/home/gerrit/review_site/logs/error_log
/var/log/nginx/error.log

验证登录
输入ip+端口号 nginx的监听端口
在这里插入图片描述

验证通过后,再登录gerrit监听端口
http://10.26.1.105:8081/
在这里插入图片描述

Gerrit权限分配与群组创建
创建gerrit一般用户
sudo htpasswd -m gerrit.password userName
创建用户后,需要网页上登录一次,初始化,保证后面添加用户的操作中能找到这个新用户

群组创建
登录admin关于账户
在这里插入图片描述

创建:这里可以按照具体的工作需求创建不同的分组
在这里插入图片描述

添加分组成员
进入分组:
在这里插入图片描述
选择成员
在这里插入图片描述

添加成员:(这里的新成员需要是登录过gerrit网页的)
在这里插入图片描述

创建分支(权限分配)
创建分支
在这里插入图片描述

初始化
在这里插入图片描述

生成下载连接

在这里插入图片描述

点击Access,进行权限分配
在这里插入图片描述

Gerrit代码下载和上库

gerrit的admin账户添加公钥key
由于需要通过admin账户给普通账号添邮箱,所以需要在gerrit服务端,gerrit账户下
su gerrit
cd /home/gerrit
添加sshkey
rsa协议和ed25519协议都可以试试
ssh-keygen -t ed25519 -C[你的邮箱] 全部回车
或者
ssh-keygen -t rsa -C [你的邮箱] 全部回车

将/home/gerrit/.ssh/id_ed25519.pub
或者/home/gerrit/.ssh/id_rsa.pub中的内容添加到
在这里插入图片描述

admin管理员账户给普通用户添加邮箱
在gerrit服务端,gerrit账户下
su gerrit
cd /home/gerrit
通过命令给普通用户添加邮箱
ssh -p 29418 admin@10.26.1.105 gerrit set-account --add-email liys2@aaaa.com.cn liys

gerrit的普通用户添加公钥key
在客户端linux下,切换为普通用户,进入用户目录下

添加git用户
git config --global user.name [你的用户名] eg:usr1(gerrit账户同名)
git config --global user.email [你的邮箱] 注意:真实邮箱 eg:1224@qq.com

生成ssh密钥
ssh-keygen -t rsa -C [你的邮箱] 全部回车
或者ssh-keygen -t ed25519 -C[你的邮箱] 全部回车
将/home/gerrit/.ssh/id_ed25519.pub
或者/home/gerrit/.ssh/id_rsa.pub中的内容添加到
gerrit这个用户的sshkey配置中(这里与admin账户添加的方法是一样的)

下拉代码
在这里插入图片描述

注意git配置的用户名必须与gerrit上用户名一致

上库代码:
下拉更新代码
git pull origin master
git add ./ 提交修改
git commit -m ‘上库信息’

将本地代码推送到gerrit服务器上
git push origin HEAD:refs/for/master
由于第一次上库,没有生成change-id,需要添加change-id生成脚本。
在这里插入图片描述

再次推送代码git push origin HEAD:refs/for/master

代码视验和推送到主分支
打开gerrit服务器ip,在changes选项下就会有自己上库的修改了
在这里插入图片描述

点击进入:完成verified code-review submit(+1,+2,推送) 及完成了上库
在这里插入图片描述

补充:
代码仓移植
git镜像迁移到gerrit

  1. 克隆原有的仓库
    git clone --bare xxxxxx.git
  2. 在gerrit上新建一个仓库,记住不能选择init empty commit
    3.为新建的仓库,设置一些特殊权限
    reference: refs/*
    权限:create reference,Forge Author Identity,Forge Committer Identity,
    Forge Server Identity,Push,Push Merge Commit,Push Annotated Tag

refs/for/refs/*
权限:Push Merge Commit
4. push 到新的库
在第一步clone的目录下面运行
git push --mirror xxxx新的仓库url.git

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/527554
推荐阅读
相关标签
  

闽ICP备14008679号