2、Gerrit配置--用户配置

前面一章已经搭建好了Gerrit服务器,下面介绍如何创建Gerrit用户,并使用用户登录已经改配用户设定

环境:

Gerrit Server:172.16.206.133

Client:172.16.206.129

1、在Gerrit服务器上创建用户

Gerrit服务器使用的是HTTP认证类型,并用httpd做反向代理,创建用户使用以下命令

#cd  /home/gerrit2/gerrit/etc

[[email protected] etc]# htpasswd -m passwords user2

New password:

Re-type new password:

Adding password for user user2

根据提示输入密码即可(密码设置为123456),这样账号就创建好了。创建完成,httpd和gerrit服务不需要重启。

2、登录gerrit用户

用创建的user2账号访问gerrit,在浏览器地址栏输入:

http://172.16.206.133:8080

输入登录的账号密码,账号为user2,密码为123456

3、修改gerrit用户配置

登录后,在网页右上角点击自己的用户名,在点击“settings”。

settings中就是用户的配置相关信息,需要注册邮箱和提交服务器上的公钥

1、提交公钥

注意:为什么要提交公钥文件到gerrit服务器?如果不提交公钥,则不能使用git push命令将本地代码提交到gerrit服务器。公钥是一个认证方式。

在客户端172.16.206.129这台服务器上创建公、私钥对,具体命令如下:

[[email protected] root]$ ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user2/.ssh/id_rsa): 
Created directory ‘/home/user2/.ssh‘.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user2/.ssh/id_rsa.
Your public key has been saved in /home/user2/.ssh/id_rsa.pub.
The key fingerprint is:
fd:da:fa:c5:ec:6c:82:60:1f:39:15:bc:62:ec:51:15 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|           . .E. |
|            +    |
|         . . o   |
|         .= o    |
|        So.=     |
|        o =. o   |
|       . o +. +  |
|          oo.+.  |
|          ooooo  |
+-----------------+

生成的密钥文件如下:

[[email protected] ~]$ ls .ssh/

id_rsa  id_rsa.pub

id_rsa.pub为公钥文件,将该文件中的内容,复制并粘贴到settings==>SSH Public Keys中,并点击Add

测试SSH key是否提交成功,在client 172.16.206.129服务器上执行以下命令:

#ssh -p 29418  [email protected]

29418为gerrit上SSH服务器监听的端口,user2为登录的gerrit账号,注意这里我们使用哪个账号登录gerrit就使用哪个账号测试,并且该账号已经登录了gerrit服务器,而且公钥已经上传。172.16.206.133为gerrit服务器的IP

[[email protected] .ssh]$ ssh -p 29418 [email protected]
The authenticity of host ‘[172.16.206.133]:29418 ([172.16.206.133]:29418)‘ can‘t be established.
RSA key fingerprint is 93:d3:47:c2:15:32:f0:41:d9:e6:7f:88:66:01:f3:9b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[172.16.206.133]:29418‘ (RSA) to the list of known hosts.
  ****    Welcome to Gerrit Code Review    ****
  Hi user2, you have successfully connected over SSH.
  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:
  git clone ssh://[email protected]:29418/REPOSITORY_NAME.git
Connection to 172.16.206.133 closed.

可以看到连接成功,说明SSH Public Key上传成功。

为user2注册邮箱

点击Register后,登录你刚才注册的邮箱,激活即可。

4、创建用户组并创建一个项目

注意,只有管理员组的用户才能创建group和Project

登录Gerrit管理员账号admin,创建一个新的组为group2。并将user2账号加入该组

新建一个Project,名为Project2

5、gerrit代码审核流程

前面都是准备工作,接下来演示gerrit如何做代码审核的

a、将172.16.206.129服务器的公钥上传到admin用户下的SSH Public Keys中,为什么前面上传到user2用户中,这里又需要上传到admin用户中?因为我们的项目是管理员admin创建的(只有管理员有权限创建)。所以每个项目的地址里面的用户都是admin,以Project2项目为例:

git clone ssh://admin@172.16.206.133:29418/Project2

如果admin用户将user2账户加入到administratos组中,则user2也可以创建项目,那么其项目地址中的用户为user2。所以我们需要从哪个用户下clone项目就需要将服务器的公钥上传到哪个账户下。

b、client server( 172.16.206.129)的git初始配置

配置用户名和邮箱

#git config --global user.name "user2"

#git config --global user.email "YOUR EMAIL-ADDRESS"

c、clone一个项目

[[email protected] ~]$ git clone ssh://[email protected]:29418/Project2
[[email protected] ~]$ ls
Project2
[[email protected] ~] cd Project2

d、拷贝commit-msg文件

注意这里如果漏掉这一步,可能会在使用git push命令时报以下错误

ERROR: missing Change-Id in commit message footer

[[email protected] Project2]$scp -p -P 29418 [email protected]:hooks/commit-msg  ./.git/hooks/

注意:c、d两步可以用Clone with commit-msg hook里面的命令来实现

#git clone ssh://[email protected]:29418/Project2 && scp -p -P 29418 [email protected]:hooks/commit-msg Project2/.git/hooks/

通常需要向服务器提交代码时,需要使用这个命令,如果不需要提交代码,如你只需要clone代码并编译打包,则不需要使用这个命令,而只需要使用

git clone ssh://[email protected]:29418/Project2

或者git clone http://[email protected]:8081/a/Project2

e、创建一个文件,并提交到gerrit服务器端

[[email protected] Project2]$ vim test.sh 
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc

用git add 和git commit命令将文件保存到git仓库中

[[email protected] Project2]$ git add test.sh 
[[email protected] Project2]$ git commit -m "创建了test.sh文件"
[master 16462e9] 创建了test.sh文件
 1 files changed, 3 insertions(+), 0 deletions(-)
 create mode 100644 test.sh

用git push命令将代码从本地传到gerrit服务器对象项目下的master分支

[[email protected] Project2]$ git push origin master:refs/for/master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 341 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Processing changes: new: 1, refs: 1, done    
remote: 
remote: New Changes:
remote:   http://172.16.206.133:8081/5 创建了test.sh文件
remote: 
To ssh://[email protected]:29418/Project2
 * [new branch]      master -> refs/for/master

origin:远程仓库的名称,用git remote 可以查看所有的远程仓库名称

[[email protected] Project2]$ git remote 
origin
master:refs/for/master 表示将代码从本地的master分支传到远端的master分支,固定格式就是这样

f、看看Gerrit服务器上是否有code review的信息

登录gerrit管理员账号admin,在ALL下面点击“Open”,看到“创建了test.sh”这条记录。

这里“创建了test.sh文件”就是git commit -m "创建了test.sh文件" 这条命令产生的

点开这条记录,看到以下信息

我们可以点开test.sh文件看到里面的内容

还可以看到提交者的信息:

这里显示的用户名和邮箱地址其实是在client server上初始化git时,用以下命令配置的

#git config --global user.name "user2"

#git config --global user.email "YOUR EMAIL-ADDRESS"

点击上上图中的code review和replay进行代码审核

-2 表示不通过,+2表示代码ok可以通过审核,目前还没有深究这个,我理解的就是这样子的。

审核后可以看到审核的日志

以上就是gerrit代码审核的流程,gerrit仓库是纯粹的代码仓库,不存在work tree这个说法。所以在gerrit仓库里面执行git命令都会报错:

[[email protected] Project2.git]# git status
fatal: This operation must be run in a work tree

但是,如果用git clone将gerrit仓库里面的项目clone下来后,就自动变成了一个git仓库。

PS:本人是运维新手,很多东西还没有来得及深入学习了解,如果文章有错误的地方请见谅。

git相关知识请参考:https://git-scm.com/book/zh/v2/

gerrit相关知识请参考官方文档:

http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/intro-quick.html

时间: 2024-09-28 23:41:49

2、Gerrit配置--用户配置的相关文章

TestDirector自定义管理:用户配置

一.进入Customize 1.打开TD,点击TestDirector,进入登录界面,在TD登录页面右上角点击“CUSTOMIZE(自定义)”. 2.选择要登录的域和项目,输入用户帐号和密码,点击确定,进入用户配置界面. 二.用户配置 用户配置界面如下图: 1.点击“Change Password”链接,修改管理员密码,输入旧密码.新密码.重新输入新秘密,确保新密码与重新输入新密码一样,单击“确定”按钮即修改成功. 2.点击“Change user Properties”链接,修改管理员帐号信息

Gitlab+Gerrit+Ldap+nginx+mysql 之Gerrit搭建与配置(一)

公司之前一直用gitlab来存放项目代码 ,目前因为业务需要(代码bug太多)需要引入gerrit来进行code review. 最初用的是centos 7.4,但是安装完成后,GerritResource中没有ALL_Project.git和All_Users.git生成,日志中一直在报错,反复装了几次后发现,在centos7上的兼容性不是太完美,所以采购了centos6.8 服务器进行安装,还是比较顺利的完成了安装. 另外本文采用LDAP认证,LDAP的配置本文不做讲解,参考其他文章. 已经

Centos 6.5 x64 vsftpd本地用户配置使用

线上游戏服务器目录/data/s5 [[email protected] s5]# ll 总用量 12 drwxr-xr-x 2 root root 4096 8月  17 16:44 20160815 drwxr-xr-x 2 root root 4096 8月  17 16:44 20160816 drwxr-xr-x 2 root root 4096 8月  17 16:44 20160817 开发人员需要将新增的游戏文件上传到对应的日期目录中 需要使用ftp 因为虚拟用户配置过于复杂 下

View6.2中viewPM和微软用户配置漫游的应用

由于view需要在域环境中,于是用户配置文件的集中管理就成了一个绕不过的话题,尤其是使用了linkclone模式的虚拟桌面,如果在创建过程中没有启用persistent磁盘存放用户配置文件,那么后期无论是recompose.refresh.rebalance都会导致用户配置文件的丢失,针对用户配置文件可选用vmware的viewPM策略或微软的用户配置漫游,下面就两种方法做详细的说明. vmwarePM策略 1.我们去vmware网站下载他的策略模板 2.在要集中存放用户配置的文件服务器或NAS

vsftp 虚拟用户配置

我的系统是centos6.5 64位 目的是用虚拟用户访问ftp,传输文件.不同用户限定在自己的目录.下面开始配置: 一.安装vsftpd和db4-utils #yum -y install vsftpd  #vsftpd软件 #yum -y install db4-utils  #生成虚拟用户认证数据文件命令 二.配置vsftpd #vim /etc/vsftpd/vsftpd.conf listen_port=21                      #端口 listen=YES  

LTE Module User Documentation(翻译11)——配置用户测量

LTE用户文档 (如有不当的地方,欢迎指正!) 17 Configure UE measurements 仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法.用户可能需要添加自己的配置,有以下几种方式: 在基站 RRC 实体中直接配置: 配置现有的切换算法:并 开发一种新的切换算法. 本节只讲述第一种方法.第二种方法在章节 Automatic handover trigger 中,第三种方法在设计文档的 Handover algorithm 中有讲. 在基站 RRC 直接

Office 365管理员指引 7 ——Lync 用户配置

使用 Lync Online,您可以通过即时消息.音频和视频会议以及 Lync 会议之类的功能与同事.合作伙伴和客户保持联系. 在为组织中的每个人设置 Lync Online 之前,请在您自己的计算机上安装 Lync,完成适合您的组织的规划和配置任务. 在 Lync 管理中心的"用户"页面上,您可以更改一个或多个用户的设置.选择其姓名,然后单击"编辑" . 1) 配置常规设置 1. 单击"用户",然后执行下列操作之一: l 要选择单个用户,请单击

[IOS:OC]数据存储:文件/用户配置/归档的作用以及用法实例

首先得了解SandBox沙盒 本质就是一个提供给我们app的专用文件夹我们可以获取到沙盒的path:NSString *home = NSHomeDirectory(); 打印出来复制可以通过Finder-前往-前往文件夹就看可以找到在mac下该项目沙盒的位置了各位刚接触ios的童鞋应该知道在Bundle中包含了所有的资源文件和可执行文件在沙盒目录下我们可以看到三个文件夹Documents. Library以及tmp,其中Library下还包含两个目录: Documents:保存应用运行时生成的

怎么为用户配置漫游文件?

怎么为用户配置漫游文件   在企业中,用户通过客户端访问服务器上的资源,既提高了网络安全性,又方便了管理员对大型网络中计算机的集中管理和控制. 将用户的配置文件存储在服务器的共享文件夹内,实现用户配置文件的漫游,从而使配置文件跟随着用户,用户无论登录域中哪一台计算机都会有统一的工作环境和界面,这种方法叫做"漫游配置文件". 1.建一个共享文件夹 2.把文件所有权权限给用户 3.在用户属性中,选择配置文件 4.在客户机上验证 这样,不管在域中哪台计算机上登陆,自己的文件都不会丢失,位置也