为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

gerrit配置跟使用文档

2020-03-17 7页 doc 74KB 13阅读

用户头像 个人认证

麦田

暂无简介

举报
gerrit配置跟使用文档1、apache服务的安装1.安装Apache有两种时候可以安装Apache服务器:安装Linux操作系统的时候安装Web服务器rpm包,和安装完系统后安装Apache服务器。(源码安装)提示:可以用命令#rpm-qa|grephttpd检查一个系统是否安装了Apache服务器,如果没有输出,则表明没有安装。以下为某个安装了Apache服务器输出的一个范例。如果是以源码安装的Apache服务器,则此种方法无效,需要用find工具查找httpd文件是否存在。httpd-tools-2.2.15-9.el6.x86_64httpd...
gerrit配置跟使用文档
1、apache服务的安装1.安装Apache有两种时候可以安装Apache服务器:安装Linux操作系统的时候安装Web服务器rpm包,和安装完系统后安装Apache服务器。(源码安装)提示:可以用命令#rpm-qa|grephttpd检查一个系统是否安装了Apache服务器,如果没有输出,则表明没有安装。以下为某个安装了Apache服务器输出的一个范例。如果是以源码安装的Apache服务器,则此种方法无效,需要用find工具查找httpd文件是否存在。httpd-tools-2.2.15-9.el6.x86_64httpd-manual-2.2.15-9.el6.noarchhttpd-2.2.15-9.el6.x86_64如果在安装Linux操作系统期间没有安装Apache,这就需要使用包文件来安装。1.RPM包的安装。从Linux的安装光盘和互联网上,都可以得到Apache的RPM安装包,然后把安装包复制到硬盘,并切换到安装包文件所在的目录。本文以httpd-2.2.15-9.el6.x86_64.rpm为例。执行命令: #rpm-ivhhttpd-2.2.15-9.el6.x86_64.rpm然后再执行: #rpm-ivhhttpd-nanual-2.2.15-9.el6.x86_64.rpm把手册也安装上去。2.源码安装。到网站www.apache.org下载欲安装的版本,笔者喜欢尝试最新的版本,当前的最新有效版本为httpd-2.2.0.tar.gz。在httpd-2.2.0.tar.gz文件所在的当前目录解压文件#tarzxvfhttpd-2.2.0.tar.gz,然后切换目录到httpd-2.2.0,进行配置:或者wgethttp://dev.xiaonei.com/apache-mirror/httpd/httpd-2.0.63.tar.gz #cdhttpd-2.2.0.tar.gz;/configure--prefix=/usr/local/apache顺利完成这步后,接着进行编译安装: #make;makeinstall。其中,配置这一过程,使用了选项“--prefix=/usr/local/apache”来指定Apache的安装目录,使Apache服务器所需的大部分文件都被复制在这个目录里。实际上,配置是一个很灵活的选择,根据需要可以添加更多的选项,支持更多的功能。2.配置文件Apache的配置文件是httpd.conf,一般在/etc/http/conf或/usr/local/apache/conf目录,以rpm包形式安装的Apache,配置文件的位置是/etc/httpd/conf/httpd.conf。对Apache服务器进行得最多的操作恐怕就是在时时更改这个文件的内容。当然,如果只是运行简单的静态网页,也可以不用对它做任何更改。打开配置文件httpd.conf,可以获悉根文档的目录位置。前面安装的Apache的根文档位置是/usr/local/apache/htdocs(rpm包安装的Apache的根文档位置是/var/www/html),欲运行自己的网站,需要把做好的网页文件和目录复制到Apache的根文档才可以。3.上传网页文件及目录上传网页文件及目录的最佳方式是启用FTP服务。创建一个系统用户,使该用户对目录/usr/local/apache/htdocs具有读写权限或者该用户的主目录为/user/local/apache/htdocs。在这里我们创建一个用户,使其主目录为Apache的根文档目录: #useradd-d/usr/local/apache/htdocsWebuser//添加的用户为Webuser,#passwdWebuser//给该用户设置一个访问密码。这样就可以很方便地修改或上传网页文件和目录了。有人认为,用SSH客户端工具也可以实现文件的上传。4.启用/关闭Apache服务上面的步骤都准备好以后,就可以启用这个网站服务器了。启用方法如下: #/usr/local/apache/bin/apachctlstart  //源码安装的启动方式#/usr/local/apache/bin/apachectlstop#servicehttpdstart//rpm包安装的启动方式#servicehttpdstop如果不出意外,Apache服务器将如我们所期待的那样运行起来,我们只要在某台能访问Apache服务器的计算机浏览器里输入Apache服务器的IP地址或者预先解析好的域名,网站的主页就会出现在浏览器里。在Apache服务器端,通过输入命令: #ps-aux|grephttpd检查Apache服务器是否正在运行。到此,一个具备基本功能的Apache服务器就诞生了。虚拟主机有时候,我们可能需要用一个Apache服务器来做多个Web服务器,比如运行几个不同的网站,这样就可以大大地节省开支。使用虚拟主机大致有以下几个步骤:1.确定使用虚拟主机的方式。虚拟主机有基于域名、IP、端口等几种形式,应该根据自己的实际情况来决定。2.修改配置文件/etc/httpd/conf/httpd.conf或/usr/local/apache/conf/httpd.conf。3.域名解析(基于域名的虚拟主机),这一步需要在域名服务器上进行。4.启用/关闭虚拟主机。启用/关闭Apache守护进程即可,但这将关闭所有的Web服务。设置虚拟主机实例讲述一个虚拟主机的实例。先描述一下需求:一台服务器,要求运行一个以PHP为脚本的网站,另外还要用它来做网络流量监控(需要Web服务)。在这里,我们采用二进制源码包的方式来安装配置Apache虚拟服务器,以便于对Apache服务器有更深刻的理解。(1)安装Apache服务器。从www.apache.org下载包httpd-2.2.0.tar.gz到目录/root,然后执行操作: #tarzxvf httpd-2.2.0.tar.gz     //包解压#cd#tarzxvf httpd-2.2.0.      #./configure--prefix=/usr/local/apache--enable-module=most--enable-shared=max#make#makeinstall至此,Apache就算安装好了。先测试一下,运行命令: #/usr/local/apache/bin/apachectlstart然后在与之联网的计算机的浏览器里输入运行Apache服务的计算机IP地址,出现测试页面表明配置一切正常。(2)安装PHP。下载包php-4.3.11.tar.gz到目录/root,然后执行下面的操作: #tar-zxvfphp-4.3.11.tar.gz   //解压文件#./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs //正常//完成后会在/usr/local/apache/modules里生成文件libphp4.so,并且会在//apache的配置文件httpd.conf里加上一行LoadModulephp4_module//modules/libphp4.so#make#makeinstall#cpphp.ini-dist /usr/local/lib/php.ini  //拷贝文件完成后看是否真在目录/usr/local/apache/modules生成文件libphp4.so,再打开配置文件httpd.conf查看LoadModulephp4_modulemodules/libphp4.so是否被自动追加。(3)修改Apache配置文件/usr/local/apache/conf/httpd.conf。加入行TypeAddapplication/x-httpd-php.php4到307行的位置,当然其他位置也是可以的。注意:php4前面有一个空格。笔者第一次配置PHP整合Apache的时候就犯了这个错误,用了好几天的时间才弄明白。另外PHP前面那个“.”(小黑点)一定不要漏掉了。(4)启动一下apache服务器。找几个php脚本的网页文件,把它复制到apache指定的根文档目录/usr/local/apache/htdocs,然后在与之联网的计算机的浏览器中输入apache所在机器的URL(形如 http://192.168.100.10/test.php),来检验一下配置是否成功。(5)创建虚拟服务器。Apache/2.2.0与以前的版本有些差异,它是以包含文件的方式来加载用户定义的虚拟主机配置,前面的版本定义虚拟主机就在httpd.conf文件中。我们还是先在主配置文件中把虚拟主机的配置文件/usr/local/apache/conf/extra/httpd-vhosts.conf包含进来。具体的操作就是把行#Includeconf/extra/httpd-vhosts.conf的注释去掉,使之成为Includeconf/extra/httpd-vhosts.conf,这一行在httpd.conf的行号是394,然后保存后退出。接着我们打开文件/usr/local/apache/conf/extra/httpd-vhosts.conf,其默认状态如下: #ServerAdminwebmaster@dummy-host.example.comDocumentRoot/www/docs/dummy-host.example.comServerNamedummy-host.example.comServerAliaswww.dummy-host.example.comErrorLoglogs/dummy-host.example.com-error_logCustomLoglogs/dummy-host.example.com-access_logcommon等我们先安装配置mrtg,然后再回过头来修改文件/usr/local/apache/conf/extra/httpd-vhosts.conf。(6)启用交换机的SNMP功能。要监控连接在交换机每个端口的服务器网络流量,必须启用交换机的SNMP,这样就不必更改被监控服务器的任何设置。启用交换机SNMP功能的方法,请参照相关文档。(7)安装和配置mrtg。把软件包下载到硬盘,解压后直接安装就可以了。(8)修改虚拟主机配置文件。需要指定根文档目录、服务器名称这几项。如果要对虚拟主机的访问进行用户验证,还需要在Apache的主配置文件对虚拟机的根文档目录进行相关的处理。把下面的行插入到Apache的主配置文件httpd.conf中。 AuthName"mrtgAuthTypeBasicAuthUserFile/usr/local/apache/.mrtg  //带点是为了使文件的属性为隐藏requirevalid-user保存后退出。然后运行命令: #/usr/local/apache/bin/htpasswd-c/usr/local/apache/.mrtg sery按照提示设定用户sery的访问密码。(九)做域名解析。在域名服务器上解析主机mrtg.sery.com.(十)启用Apache服务。用指令#ps-aux|grephttpd检查Apache是否正常运行,然后在另外的计算机浏览器里输入Apache服务器的URL,如输入www.sery.com则应该访问到主配置文件设定的网页,如果输入mrtg.sery.com则访问上面设定的虚拟机页面,并且需要输入正确的用户名和密码才能访问。通过上面的实践,我们可以得出这样一个结论:Apache服务器功能设定的主要操作就是修改配置文件——主配置文件httpd.con及包含配置文件。当然,Apache的配置不仅仅是上文所描述的那些,可以说是非常丰富,也是非常灵活的。限于篇幅,不再详叙。至于要让Apache随系统启动,可以把守护进程/usr/local/apache/bin/httpd&加在文件/etc/rc.local里即可。提示:为了在同一环境下使用更多的Apache服务,可以安装多个Apache到不同的目录,安装目录在安装过程中的配置操作./configure-prefix=<安装目录>制定,所有Apache的配置原则都是一致的,所有配置完成后,把它们全部启动起来。关于配置多个虚拟主机与安装多个Apache服务究竟有多大的差别,望各位读者自己去做评判。5.最后,说几个apache的配置1、ServerRoot这段.将它设成你的Apache安装目录,我的是ServerRoot"/etc/httpd"2、DocumentRoot这段.把他设成你网站的根目录,我的是DocumentRoot"/var/www/html" 3、DirectoryIndex  这段.把它改成DirectoryIndex  index.phpindex.Htmlindex.html  这样,你的网站目录的默认首页是index.php,如果没有index.php系统会自动寻找index.html、html做为默认首页了。4、把/etc/httpd/conf.d/welcome.conf中的所有行去掉后,就不会显示默认的首页了。2、Git和gitweb的安装git安装方式也有两中1.源码安装解压后切换到其目录  $tarxvfjgit-1.7.6.tar.bz2  $cdgit-1.7.6  使用默认配置进行安装,如果想修改配置,可以使用./configure--help来获取帮助  $./configure  $make  $makeinstall2.rpm包安装直接rpm–ivhgit-1.7.1-2.el6_0.1.x86_64.rpm安装完成后会产生这个目录/var/lib/git/。3.git基本操作(1)git初始化一个工程:mkdirproject;cdproject;gitinit(2)设置全局用户信息及邮箱:gitconfig--globaluser.name"Xiaochun.li"gitconfig--globaluser.emaillei.wang@cs2c.com.cn(3)mkdirworktree;cdworktree(4)git远程clone:gitclonegit://10.1.80.85/loongson-32(5)如果需要创建自己的分支:gitbranchbranchname列出所有本地分支:gitbranch删除某本地分支:gitbranch-dbranchname切换本地分支:gitcheckoutbranchname(6)git增加文件:gitaddabcreadme-cs2cgit删除文件:gitrmabc(7)git本地提交:gitcommit-m"whatwedid"git删除本地上一个commit:gitreset--softHEAD~1git修改一个已经提交的commit:gitcommit--amend(8)git远程提交:gitpushssh://root@10.1.80.85/var/lib/git/loongson-32(9)git合并远程分支gitremoteaddloongsongit://git.printk.org/linux-loongson-release.gitgitfetchgit://git.printk.org/linux-loongson-release.gitgitmergeloongson/linux-loongson/v2.6.36(10)git查看远程分支gitremoteshowloongsongitremoteshowgit://git.printk.org/linux-loongson-release.git(11)、git删除错误提交的commit方法:gitreset--hard<commit_id>gitpushoriginHEAD--force(12)、其他:根据–soft–mixed–hard,会对workingtree和index和HEAD进行重置:gitreset–mixed:此为默认方式,不带任何参数的gitreset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息gitreset–soft:回退到某个版本,只回退了commit的信息,不会恢复到indexfile一级。如果还要提交,直接commit即可gitreset–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容HEAD最近一个提交HEAD^上一次<commit_id>每次commit的SHA1值.可以用gitlog看到,也可以在页面上commit标签页里找到.(13)、其他操作总结:创建一个Git版本库$cdproject/$gitinit#创建.git目录(1.4.4.4版本之后用这个命令)$gitadd.#将那些未被跟踪的文件加入版本库中$gitcommit#将工作目录的变化提交到版本库中Git将根据在版本库根目录中的.gitignore文件中列出的文件名,忽略对那些文件的跟踪,文件和目录名,可以用shell正则表达式来表示。分支与合并$gitcheckout-blinux-work#创建一个名叫"linux-work"的分支$<makechanges>$gitcommit-a$gitcheckoutmaster#回到主分支$gitmergelinux-work#将在linux-work分支上的变更集合并入master分支#(适用于Git1.5以上版本)$gitpull.linux-work#将在linux-work分支上的变更集合并入master分支#(适用于Git的所有版本)引入补丁$gitapply<../p/foo.patch$gitcommit-a生成补丁$<makechanges>$gitcommit-a-m"commitmessage"$gitformat-patchHEAD^#生成一个0001-commit-message.patch的文件#(这里的意思是生成当前分支的最新版本到他的父版本HEAD^#的所有文件的补丁,当然你应该知道HEAD的概念是什么)网络功能#从主版本库中克隆foo$gitclonegit://git.kernel.org/pub/scm/git/git.gitfoo$cdgit#将本地变更推入远程版本库foo$gitpushuser@example.com:my-repository.git/#抓取远程版本库中的其中一个分支到本地版本库foo$gitfetchuser@example.com:my-repository.git/remote-branch:local-branch#将远程版本库中的变化合并到本地bar$gitpullgit://foo/repo.git/branch#用git建立版本库服务foo$cd/my/repository/foo$touch.git/git-daemon-export-okfoo$gitdaemon#这样其他人就可以通过git://your.machine/my/repository/.git/来抓取版本库#建立一个裸版本库(没有工作目录的)foo$mkdirmy-repo.gitfoo$cdmy-repo.gitfoo$git--bareinitfoo$chmoda+x.git/hooks/post-update#用HTTP协议来传输版本时要这样#并且你需要用push命令来植入你的版本库的内容查看各个版本#用图形界面工具查看历史foo$gitview#这个命令打开图形界面窗口,你可以从中看到版本的历史沿革关系#查看日志foo$gitlog#输出当前分支的日志foo$gitlog-p#输出日志,并同时在每个提交信息之后显示补丁#查看指定的变更foo$gitshowHEAD#显示变更信息,差异比较位置,#以及到当前分支最新状态的补丁。查看历史记录#根据名称查看foo$gitlogv1.0.0#列举历史记录至标签"v1.0.0"foo$gitlogmaster#列举"master"分支的历史记录#根据名称关联查看foo$gitshowmaster^#检查master分支的最后一个父版本的内容foo$gitshowmaster~2#检查master祖父版本的最后内容foo$gitshowmaster~3#检查master曾祖父的最后内容#根据"gitdescribe"的输出foo$gitshowv1.4.4-g730996f#你可以用"gitdescribe"命令得到这个输出#根据哈希序列号(在git内部,所有的对象都是由哈希序列号来标记的)foo$gitshowf665776185ad074b236c00751d666da7d1977dbefoo$gitshowf665776#通常你只要输入前几个数字已经足够#制作标签foo$gittagv1.0.0#将当前HEAD制作为"v1.0.0"的标签foo$gittaginterestingv1.4.4-g730996f#标记你感兴趣的东西(不是HEAD)比较版本记录#比较两个分支的差异foo$gitdifforigin..master#比较origin与master的差异并输出至终端foo$gitdifforigin..master>my.patch#输出到my.patch文件#取得尚未提交的工作于版本记录的差异foo$gitdiff--statHEAD"摘草莓"补丁foo$gitcherry-pickother-branch~3#将另外一个分支的第四个补丁应用到当前分支4.Gitweb安装Gitweb安装需要先安装git安装完成后会生成这个/var/www/git/目录,用于连接到gitdaemon指定的仓库的目录中。安装完成后修改一些配置文件的内容,1、/etc/gitweb.conf增加$projectroot="/var/www/git";,该地址和apache服务所制定的目录一样。2、/etc/gitweb.conf增加如下内容our@git_base_url_list=qw(git://10.1.80.128ssh://10.1.80.128/var/lib/git);这个是在gitweb的网页中显示URL路径的。如下图3、修改vim/etc/httpd/conf.d/git.conf中的第一行Alias/git/var/www/git为Alias/gitweb/var/www/git4、/etc/httpd/conf/httpd.conf中DirectoryIndexgitweb.cgiindex.htmlindex.html.var5、如果servicehttpdrestart出现警告的话,可以把文件/etc/httpd/conf/httpd.conf中的#ServerNamewww.example.com:80的#号去掉,打开这句话。2和4不是必须的。创建一个git版本库1、裸版本库Mkdirmy-repo.gitCdmy-repo.gitGit–bareinit2、有目录和文件Cdmyproject/GitinitGitadd./Gitcommit–m“****”5.Gitdaemon安装至此,本地的git仓库就创建好了。想要在远程clone这个project,还需要使用gitdaemon下载安装git-daemon的rpm包,安装后会在/etc/xinetd.d/git中有关git的配置,可以修改。此时不能在远程用,如gitclonegit://10.1.80.128/test.git时候会报错,如下:InitializedemptyGitrepositoryin/home/xiaochun/kernel/test/.git/10.1.80.128[0:10.1.80.128]:errno=Connectionrefusedfatal:unabletoconnectasocket(Connectionrefused)查了半天,最后发现此守护进程默认没有开启,修改/etc/xinetd.d/git文件,默认为关闭,修改后需要重启生效。方法为:/etc/rc.d/init.d/xinetdrestart然后可以验证是否开启监听端口Git协议的默认端口是9418,通过以下命令可以验证,当然你也可以不用默认端口grep9418/etc/services也可以修改git存放的根目录,使在下载git仓库时候输入较少的路径git daemon --verbose --export-all --base-path=/data3/ --reuseaddr到此,就可以远程下载git代码了。gitclonegit://10.1.80.128/loongson-3210.1.80.128/gitweb/如果要在局域网中用网页访问的话,就的修改需要访问主机的/etc/hosts.如果要在广域网访问的话,就得申请DNS,或者在已经申请的DNS配置。3、Gerrit的安装和配置1.在128上创建gerrit2用户,从googlecode上下载gerrit最新稳定版本2.5:[root@localhost~]#addusergerrit2[root@localhost~]#sugerrit2[gerrit2@localhostroot]$cd[gerrit2@localhost~]$wgethttp://gerrit.googlecode.com/files/gerrit-full-2.5.war2.为gerrit创建数据库:(用mysql数据库的话)mysql>CREATEUSER'gerrit2'@'localhost'IDENTIFIEDBY'qwer1234';QueryOK,0rowsaffected(0.00sec)mysql>CREATEDATABASEreviewdb;QueryOK,1rowaffected(0.00sec)mysql>ALTERDATABASEreviewdbcharset=latin1;QueryOK,1rowaffected(0.00sec)mysql>GRANTALLONreviewdb.*TO'gerrit2'@'localhost';QueryOK,0rowsaffected(0.00sec)mysql>FLUSHPRIVILEGES;QueryOK,0rowsaffected(0.00sec)charset=latin1导致gerrit不支持中文,但是选用utf8会有其他问,具体可以参考薛总文档。3.安装gerrit:[gerrit2@localhost~]$java-jargerrit-full-2.5.warinit-d~/code_review***GerritCodeReview2.5***Create'/home/gerrit2/code_review'[Y/n]?***GitRepositories***LocationofGitrepositories[git]:***SQLDatabase***Databaseservertype[H2/?]:mysqlGerritCodeReviewisnotshippedwithMySQLConnector/J5.1.10**Thislibraryisrequiredforyourconfiguration.**Downloadandinstallitnow[Y/n]?Downloadinghttp://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.10/mysql-connector-java-5.1.10.jar...OKChecksummysql-connector-java-5.1.10.jarOKServerhostname[localhost]:Serverport[(MYSQLdefault)]:Databasename[reviewdb]:Databaseusername[gerrit2]:gerrit2'spassword:confirmpassword:***UserAuthentication***Authenticationmethod[OPENID/?]:httpGetusernamefromcustomHTTPheader[y/N]?SSOlogoutURL:***EmailDelivery***SMTPserverhostname[localhost]:SMTPserverport[(default)]:SMTPencryption[NONE/?]:SMTPusername:***ContainerProcess***Runas[gerrit2]:Javaruntime[/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre]:Copygerrit.warto/home/gerrit2/code_review/bin/gerrit.war[Y/n]?Copyinggerrit.warto/home/gerrit2/code_review/bin/gerrit.war***SSHDaemon***Listenonaddress[*]:Listenonport[29418]:GerritCodeReviewisnotshippedwithBouncyCastleCryptov144Ifavailable,Gerritcantakeadvantageoffeaturesinthelibrary,butwillalsofunctionwithoutit.Downloadandinstallitnow[Y/n]?Downloadinghttp://www.bouncycastle.org/download/bcprov-jdk16-144.jar...OKChecksumbcprov-jdk16-144.jarOK(网速不好这块会失败,我们可以现在no)GeneratingSSHhostkey...rsa...dsa...done***HTTPDaemon***Behindreverseproxy[y/N]?yProxyusesSSL(https://)[y/N]?Subdirectoryonproxyserver[/]:Listenonaddress[*]:Listenonport[8080]:***Plugins***Prompttoinstallcoreplugins[y/N]?Initialized/home/gerrit2/code_reviewExecuting/home/gerrit2/code_review/bin/gerrit.shstartStartingGerritCodeReview:OKWaitingforservertostart...OKOpeningbrowser…简单说明六点:1)Authenticationmethod[OPENID/?]:http,默认为openid,需要在公网上验证邮箱是否能够登录,因此改为http方式认证。2)Databaseservertype[H2/?]:mysql数据库选用mysql,因为128默认没有H2,用H2也可以。3)SSOlogoutURL:默认没填,其实可以填一下,因为gerrit的logout功能不太好,总是返回到http的根,因此会与http默认配置有冲突,但是可以配置。4)这些默认配置文件都放在code_review/etc/路径下,gerrit.confg是默认配置文件。5)此步完成后,gerrit同时启动,在后台监听8081和29418端口。可以通过~/code_review/bin/gerrit.shrestart/stop/start/status等命令来运维gerrit,并且可以将gerrit.sh拷贝到/etc/init.d做开机启动脚本:ln-snfhome/gerrit2/code_review/bin/gerrit.sh/etc/init.d/gerritln-snf/etc/init.d/gerrit/etc/rc3.d/S90gerrit6)gerrit的默认signout功能不好使,需要设置SSOlogoutURL:http://10.1.80.128或者通过配置~/code_review/etc/gerrit.config文件:[auth]type=HTTPlogoutUrl=http://10.1.80.1284.配置apache服务器,启动gerrit的Web前端1)创建httpd的gerrit2的配置文件/etc/httpd/conf.d/gerrit2.conf,填入下列内容:<VirtualHost*>ServerName10.1.80.128ProxyRequestsOffProxyViaOffProxyPreserveHostOn<Proxy*>Orderdeny,allowAllowfromall</Proxy>ProxyPass/gerrit2/http://10.1.80.128:8080/<Location/gerrit2/>AuthTypeBasicAuthName"GerritCodeReview"AuthBasicProviderfileAuthUserFile/home/gerrit2/code_review/etc/passwordsRequirevalid-user</Location></VirtualHost>1)AuthUserFile路径为/home/gerrit2/code_review/etc/passwords,但是apache无权访问此路径,需要对/home/gerrit2进行赋权:setfacl-mg:apache:rx/home/gerrit2/2)ProxyPass/gerrit2/http://10.1.80.128:8080/反向代理地址需要与/home/gerrit2/code_review/etc/gerrit.conf中的listenUrl设置一致。3)接着创建gerrit所需的passwords文件:htpasswd-c/home/gerrit2/code_review/etc/passwordsxiaochun.lihtpasswd/home/gerrit2/code_review/etc/passwordsyan.luhtpasswd/home/gerrit2/code_review/etc/passwordsshujin.li其中第一个创建的用户为管理员,即xiaochun.li。4)重启httpd服务,访问http://10.1.80.128/gerrit2/,输入刚才建立的用户名和密码:5.用户上传公钥为了方便为gerrit创建和导入git库,需要将用户的公钥提交给gerrit站点,因为如果需要对git进行push一类的操作,git默认使用ssh的方式,而ssh需要服务器存储客户端的公钥;如果没有公钥,首先是生成密钥对:[root@localhost~]#ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):Createddirectory'/root/.ssh'.Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentificationhasbeensavedin/root/.ssh/id_rsa.Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.Thekeyfingerprintis:b4:49:84:55:9c:1b:15:3e:12:93:c9:93:aa:0a:2c:baroot@localhost.localdomainThekey'srandomartimageis:+--[RSA2048]----+|oo++*o.||..X+||o..+o||o.o...||..S||.o.||....||..||E.|+-----------------+[root@localhost~]#cat.ssh/id_rsa.pubssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAsUhqu8135ikZK4/i2OisfHNIY6Bme46RRuZ2iug2Xva7cQGcdJPTv3nwIR6L/RfQa57b5uGQt+AX65AFzsKe4JoqIlA5IxsbZKz+tZ1CpEOcD37Rp78ovjef6lOx1Af2c+Yg+F9gwtKDw/UPZYMaID24RIwul290HOGOTH9hii3yuKliRmsHjy2dJ1ZFpb/fPBKXDnY0vAylJlPL3fCFyEOM40WgV5sIPZDW7ykhvvubcW/n4UA2JZrDvmQFPgM/QYmHrUw6OxZtBt5aGKPNomxLEdq0PsfQMj1d/WAggic/P4sbt0ATciY+nGvd8cYlW5G3jV1WQ1aD8RW2PqHakQ==root@localhost.localdomain使用xiaochun.li登录,点击右侧Setting,再点击左侧SSHPublicKeys并将公钥上传:一个用户可以对应多个公钥,用户也可以使用windows系统提交代码,只要上传公钥。6.配置gerritWeb前端,添加git仓库首先为gerrit创建一个空的仓库:ssh-p29418xiaochun.li@localhostgerritcreate-project--nameloongson-kernel或者使用Web界面创建git仓库:此时即可在http://10.1.80.128/gerrit2/上查看project->list中就存在loongson-32这个仓库:其次,在gerritweb前端中为新添加的仓库赋权,点击Projects->List->loongson-32->Access->Edit,将所有能够添加的权限添加上(Reference填写“refs/*”)。有时会报错: Youdon'thavepermissionstomodifytheaccessrightsforthefollowingrefs: refs/* Youmayproposethesemodificationstotheprojectownersbyclickingon'SaveforReview'.但是能够成功:最后,将已有的git仓库导入到gerrit的仓库中(用root):[root@localhost~]#cd/var/lib/git/loongson-32[root@localhostloongson-32]#gitpushssh://xiaochun.li@localhost:29418/loongson-kernel*:*Countingobjects:34101,done.Deltacompressionusingupto2threads.Compressingobjects:100%(29797/29797),done.Writingobjects:100%(34101/34101),96.24MiB|13.12MiB/s,done.Total34101(delta3868),reused34029(delta3825)remote:Resolvingdeltas:100%(3868/3868)remote:Processingchanges:refs:1,doneTossh://xiaochun.li@localhost:29418/loongson-32*[newbranch]loongson-32->loongson-327.为git仓库添加gitweb为了能够在gerrit上显示gitweb,需要在gerrit.conf文件中添加配置:[gitweb]cgi=/var/www/git/gitweb.cgi此处需要gerrit2对/var/www/git/gitweb.cgi文件具备访问权限,需要setfacl添加权限:setfacl-mg:gerrit2:rwx/var/www/git/gitweb.cgi8.为gerrit配置iptbales:iptables-IINPUT-ptcp--dport29418-jACCEPT4、Gerrit使用手册普通用户只有提交权限,管理员具备代码审查权限,可以临时指定代码审查人员。1.登陆http://10.1.80.85/gerrit2,上传公钥输入用户名密码,例如xiaochun.li,qwer1234此处有可能出现下面的错误:NotFoundTherequestedURL/login/nullwasnotfoundonthisserver.Apache/2.2.15(CentOS)Serverat10.1.80.85Port80再次在浏览器中输入http://10.1.80.85/gerrit2即可登陆。登陆后,点击右上方Settings->SSHPublicKeys->AddSSHPublicKey,通常使用10.1.83.183进行gitcommit等操作,因此上传10.1.83.183的公钥,例如:[xiaochun.li@kernenl-001worktree]$cat~/.ssh/id_rsa.pubssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEArBT7GSYGIX7nx7q1l/FubdJxMcS1zFk28T/rynFIX0vMPXYTEKubYCw83GaNdOVAdGtRqafW1oAwR/W8qyXifDKmeKberfj5bhiofGPBvrM24/yj5iM8Ry2MYv4qaP4u5XnrXBlumTPobmnxtIPYStwiBeKS40TNAvWwjmjmsy5LecIXWH2wsvUvIAO+bkDY/syCS6lAu1XY2wrnhN18PB28ADrkXTSTnA65eMUKArUwSBWwMiVKJsGEnm7KQ/CKP71gMw9aJoRCGAisOji76x5K8DDZLkTBaYGWbORA6IF9FzilMFoda0P8TJT1VnInkzUxmo1iAHQvpqiVzJ6+iw==xiaochun.li@kernenl-001将cat内容粘贴至AddSSHPublicKey文本框中,点击“Add”按钮完成上传工作。可以多次上传不同机器的公钥,用于通过不同的机器提交代码。Windows也可以上传公钥,只要使用openssl生成公钥即可。2.注册邮箱、用户名登陆后,点Settings-〉ContactInformation,填写Fullname和PreferredEmail,填完后点“SaveChanges”按钮。3.下载最新git库、编辑代码、提交gerrit审查首先,下载具备代码审查功能的git仓库:[xiaochun.li@kernenl-001aa]$gitclonessh://xiaochun.li@10.1.80.85:29418/loongson-kernel.git[xiaochun.li@kernenl-001aa]$cdloongson-kernel/[xiaochun.li@kernenl-001loongson-kernel]$touchxiaochun.li-test[xiaochun.li@kernenl-001loongson-kernel]$vimxiaochun.li-test[xiaochun.li@kernenl-001loongson-kernel]$gitaddxiaochun.li-test[xiaochun.li@kernenl-001loongson-kernel]$gitcommit-m"atestforgerrit,xiaochun.li"[loongson-32827412f]atestforgerrit,xiaochun.li1fileschanged,1insertions(+),0deletions(-)createmode100644xiaochun.li-test[xiaochun.li@kernenl-001loongson-kernel]$gitlogcommit827412f358fd581ce24c9b9495f17ab6dfe4e44dAuthor:xiaochun.li<lei.wang@cs2c.com.cn>Date:ThuFeb2115:26:052013+0800atestforgerrit,xiaochun.li[xiaochun.li@kernenl-001loongson-kernel]$gitpushoriginHEAD:refs/for/loongson-32Countingobjects:4,done.Deltacompressionusingupto32threads.Compressingobjects:100%(2/2),done.Writingobjects:100%(3/3),304bytes,done.Total3(delta1),reused0(delta0)remote:Resolvingdeltas:100%(1/1)remote:Processingchanges:new:1,refs:1,doneTossh://xiaochun.li@10.1.80.85:29418/loongson-kernel.git*[newbranch]HEAD->refs/for/loongson-32注意,此处push必须这么写!!!4.登陆gerrit,设置代码审查者登陆gerrit,点击My->Changes,点击具体Changes后,点“AddReviewer”按钮,增加代码审查者:5.登陆gerrit,审查代码代码审查包括两部分,一部分是功能验证、一部
/
本文档为【gerrit配置跟使用文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索