Android下的配置管理之道之gerrit代码服务器搭建

gerrit 代码服务器搭建 Version v2.11.5

一般参考gerrit的文档就可以了。下面大部分都是文档的,列出一些注意点,一些工具的选择取舍等。

所需环境

jdk,git 等相关的工具
gerrit是一个java web 应用,所以java运行时环境是不能少的,安装jdk或jre都可以的。
gerrit是基于git来管理代码的,所以git也是必不可少的。
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

安装方法:sudo apt-get install openjdk-7-jdk  git# 或者  sudo apt-get install openjdk-7-*  git,# 这里星号会匹配所有的安装包,这样会安装的比较多,这是懒人的做法。# tab 键补全出来,可以看到如下的包。#openjdk-7-dbg           #openjdk-7-doc           #openjdk-7-jre           #openjdk-7-jre-lib       #openjdk-7-source                                                    #openjdk-7-demo          #openjdk-7-jdk           #openjdk-7-jre-headless  #openjdk-7-jre-zero 

或使用jdk8. ubuntu 16 就可以使用jdk8了。

sudo apt-get install openjdk-8-jdk  git

最新的gerrit基本上都需要jdk1.7 或者 jdk1.8了。jdk或者jre的java环境都可以的。
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/
下载gerrit的安装包gerrit.war包。
Gerrit Releases site.https://gerrit-releases.storage.googleapis.com/index.html

最新的版本有2.14了(可能也有更新的了,文章可能更新不及时)。

操作系统一般用ubuntu, 对于目前2017年来说用ubuntu16.04 server版本的最好。

有的系统安装不了jdk8,怎么办?像ubuntu 14.04就不能安装jdk8,如下:

sudo apt-get updatesudo apt-get install -y openjdk-7-jdk#添加 openjdk:sudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install openjdk-7-jdksudo apt-get install openjdk-8-*sudo apt-get install openjdk-7-*# 添加 oracle jdk:#To install the oracle JDK, use the following command – sudo add-apt-repository ppa:webupd8team/java# 配置默认的jdk:sudo update-alternatives --config javasudo update-alternatives --config javac#apt的缓存目录: /var/cache/apt/archives/

数据库的设置

gerrit支持 h2,mysql,oracle,postgresql等这几种数据库

  1. H2

如果你选择h2类型的数据库,不需要额外安装什么,也不需要配置什么,这个数据库就是java实现的一个本地的数据库。一般公司中不推荐使用这个,直接测试学习可以试一下的。尤其是大型公司不推荐使用这个类型的数据库的。
不推荐是应为没有一个简单的方法来和数据库交互,除非gerrit先停止运行。也就是说gerrit在运行的状态下是没有方法直接访问这个h2类型的数据库的。当然用 ssh gerrit.com gerrit gsql 这个命令是另外一回事了。马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/
不推荐是还是个原因是不容易备份数据。
最后一个不推荐的原因是不支持负载平衡,热备份之类的。

  1. PostgreSQL

这个是非常推荐使用的数据库。
这个需要单独安装的,
sudo apt-get install postgresql 就可以了了。或者马哥一般习惯安装 phppgadmin,这样apache有了,管理数据库的,带界面的软件也有了,非常的方便的。
需要先创建一个给gerrit web应用使用的一个数据库的角色或账号。
下面命令一般需要切换到叫postgres的一个linux账户下面去执行sudo su postgres。

$ createuser --username=postgres -RDIElPS gerrit2   # 这个是创建一个数据库的角色,上面的$ 美元符不是命令的一部分,是linux命令提示符而已# 有的可能是类似这样的命令提示符:[email protected]:~$   $ createdb --username=postgres -E UTF-8 -O gerrit2 reviewdb     #这个是创建一个名字叫reviewdb的数据库,属于gerrit2这个角色。

马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/
更多详细的关于postgresql数据库的内容可以访问官网:http://www.postgresql.org/docs/9.1/interactive/index.html

补充:
安装完成phppgadmin之后直接访问会报错,需要改个配置文件
/etc/apache2/conf-available/phppgadmin.conf文件中 Require local 改为 allow from all

[email protected]:~$ cat /etc/apache2/conf-available/phppgadmin.conf Alias /phppgadmin /usr/share/phppgadminDirectoryIndex index.phpAllowOverride None# Only allow connections from localhost:#Require localallow from all  php_flag magic_quotes_gpc Off  php_flag track_vars On  #php_value include_path .            AddType application/x-httpd-php .php      Action application/x-httpd-php /cgi-bin/php              AddType application/x-httpd-php .php      Action application/x-httpd-php /cgi-bin/php      

3.MySQL

这个也是非常推荐使用的数据库
这个也需要单独安装,

sudo apt-get install mysql-client mysql-server

马哥比较推荐的一个安装是

sudo apt-get install mysql-client mysql-server phpmyadmin

这里多安装一个mysql数据库的管理软件。很方便的,带界面的,通过浏览器来管理mysql数据库的。创建数据库,创建角色,设置密码,查询,修改都可以通过浏览器来进行,非常的方便的。
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

  mysql创建数据库账户如下(这些命令需要链接到mysql后执行的):  CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';   #这个是创建个mysql的账号  CREATE DATABASE reviewdb;  GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';    #创建数据库,名字叫reviewdb  FLUSH PRIVILEGES;                      #记得最后刷新,这样才生效。

当然上面的命令,你就可以直接通过phpmyadmin 来在浏览器上面操作了。

4.Oracle
这个数据库也是非常好的一个,不过马哥本人没有用过,不好多说什么。公司中最常用的还是mysql和postgresql这2个数据库。我在几个公司带过,基本上用的都是mysql和postgresql。oracle是要钱的吧?!

SQL> create user gerrit2 identified by secret_password default tablespace users;               同样的也是要先建个gerrit2的数据库的账户。SQL> grant connect, resources to gerrit2;

数据怎么创建好像官方文档中没有介绍。
一般Oracle数据库(Oracle Database)可以分为两部分,即实例(Instance)和数据库(Database)。

SQL> create database reviewdb   #可能是这个,不一定对,大家可以下去仔细查下资料。马哥本人没有用过,不好多说。

这里还需要配置个Instance
在文件 $site_path/etc/gerrit.config:

[database]        type = oracle        instance = xe        hostname = localhost        username = gerrit2        port = 1521

数据库我们不都创建了一个账户吗?账户是有密码的,这个密码怎么配置到gerrit web 中呢?
密码写到这个文件中 $site_path/etc/secure.config:
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

[database]        password = secret_pasword

5.SAP MaxDB

这个数据库马哥本人没有用过,不好多说,大家只能自行研究了
运行Gerrit 在MaxDB数据库, 你可能需要 MaxDB JDBC driver.相关的数据库驱动的jar包,可能的安装位置是:
在windows的路径一般会是 “C:\Program Files\sdb\MaxDB\runtime\jar\sapdbc.jar”
在linux上路径一般是 “/opt/sdb/MaxDB/runtime/jar/sapdbc.jar”

配置文件 $site_path/etc/gerrit.config:

[database]        type = maxdb        database = reviewdb        hostname = localhost        username = gerrit2

密码配置文件 $site_path/etc/secure.config:

[database]        password = 

上面说到的gerrit需要的数据库。

一般数据库相关的配置会在文件 $site_path/etc/gerrit.config和文件 $site_path/etc/secure.config。
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

初始化gerrit

1.先添加个linux的系统账户,让gerrit web运行在这个非root账户下面,这样更安全。
这个账户也不要设置密码。执行adduser添加系统账户,不需要给这个账户设置密码。
一般的马哥安装完系统会创建一个sudo权限的账户,名:mage。

  sudo adduser gerrit2

马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

2.切换到gerrit2这个linux系统账户下。不需要密码我一般是使用sudo su来切换到该账户下的。

  sudo su gerrit2

3.执行init命令

  java -jar gerrit.war init -d /path/to/your/gerrit_application_directory

一般安装到 /home/gerrit2/review_site这个路径下面,这个是官方文档中给出的一个路径。
当然也可以安装到其他路径下。例如如/var/lib/gerrit2 ,注意不要太随便的找个路径。推荐这个路径:/home/gerrit2/review_site。
一般的这个路径就是gerrit2 这个系统账户的home目录的。

  java -jar gerrit.war init -d /home/gerrit2/review_site

它会一步一步的提示你输入相关的内容的。初始化之后可以再来修改这些配置的。
关于gerrit的主要的配置是在文件 '$site_path/etc/gerrit.config’中,


马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

来一个马哥自己的配置:

[email protected]:~/review_site$ cat etc/gerrit.config [gerrit]    basePath = git  # git 仓库的一个路径,这里个相对路径,等于/home/gerrit2/review_site/git。    canonicalWebUrl = http://gerrit.xxx.com:8080/ # 登陆gerrit web的url,默认使用8080端口。[database]    type = postgresql    hostname = localhost    database = reviewdb    username = gerrit2    poolMinIdle = 4    poolMaxIdle = 10    poolLimit = 128    poolMaxWait = 10s[index]    type = LUCENE[auth]    type = LDAP[ldap]    server = ldap://AD01.xxx.com    username = ldapuser    accountBase = DC=xxx,DC=com    groupBase = DC=xxx,DC=com    localUsernameToLowerCase = true  #这个比较关键,之后忽略大小写,一定要配置,马哥之前吃过亏的。[sendemail]    enable = true    smtpServer = ip    smtpUser = [email protected]    from = [email protected][container]    user = gerrit2    javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre    heapLimit=100g[sshd]    listenAddress = *:29418 #ssh监听的端口,最好不要随便修改    threads = 112    batchThreads = 16    streamThreads = 20    commandStartThreads = 6    maxConnectionsPerUser = 32[httpd]    listenUrl = http://*:8080/[cache]    directory = cache[theme]    backgroundColor = FCFEEF    textColor = 000000    trimColor = D4E9A9    selectionColor = FFFFCC    topMenuColor = D4E9A9    changeTableOutdatedColor = F08080[theme "signed-in"]    backgroundColor = FFFFFF[commentlink "jira"]    match = \\[([A-Z]+-[0-9]+)\\]    link = http://jira.xxx.com/browse/$1  #这个配置和jira单号关联[cache "web_sessions"]    maxAge = 1 week[gitweb]    type = custom    linkname = gitiles    url = /plugins/gitiles/    revision = ${project}/+/${commit}    project = ${project}    roottree = ${project}    branch = ${project}/+/${branch}    filehistory = ${project}/+log/${branch}/${file}    file = ${project}+${commit}/${file}

下面这个是密码相关的配置文件:

[email protected]:~/review_site$ cat etc/secure.config [database]    password = xxxxx[auth]    registerEmailPrivateKey = xxx    restTokenPrivateKey = xx[ldap]    password = xxxx[sendemail]    smtpPass = xxxx

初始化好之后我们就可以启动我们的gerrit web应用了

执行下面的命令就可以了,很简单的。一个sh脚本

review_site/bin/gerrit.sh startreview_site/bin/gerrit.sh stopreview_site/bin/gerrit.sh restart

马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

在启动gerrit 服务的时候很有可能会起不起来。这个时候我们就需要
去看review_site/logs/下面的那个错误日志文件了。

cat  review_site/logs/error_log或者tail -f review_site/logs/error_log

启动起来的日志看起来像这样

[2017-08-15 09:19:33,250] [plugin-manager-preloader] INFO  com.googlesource.gerrit.plugins.manager.OnStartStop : 57 plugins successfully pre-loaded[2017-08-15 09:22:56,169] [ShutdownCallback] INFO  com.google.gerrit.pgm.Daemon : caught shutdown, cleaning up[2017-08-15 09:22:56,205] [ShutdownCallback] INFO  org.eclipse.jetty.server.AbstractConnector : Stopped [email protected]{HTTP/1.1,[http/1.1]}{0.0.0.0:8081}[2017-08-15 09:22:56,207] [ShutdownCallback] INFO  org.eclipse.jetty.server.handler.ContextHandler : Stopped [email protected]{/,null,UNAVAILABLE}[2017-08-15 09:22:56,209] [ShutdownCallback] INFO  com.google.gerrit.sshd.SshDaemon : Stopped Gerrit SSHD[2017-08-15 09:23:11,656] [main] INFO  org.eclipse.jetty.util.log : Logging initialized @6446ms[2017-08-15 09:23:11,710] [main] INFO  com.google.gerrit.server.git.LocalDiskRepositoryManager : Defaulting core.streamFileThreshold to 439m[2017-08-15 09:23:12,573] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loading plugins from /var/gerrit/plugins[2017-08-15 09:23:12,617] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin avatars-gravatar, version ab2ff52[2017-08-15 09:23:12,639] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin commit-message-length-validator, version v2.14.1[2017-08-15 09:23:12,686] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin delete-project, version v2.13-13-gd9f1d5f[2017-08-15 09:23:12,731] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin download-commands, version v2.14.1[2017-08-15 09:23:12,766] [main] INFO  com.google.gerrit.server.config.PluginConfigFactory : No /var/gerrit/etc/gitiles.config; assuming defaults[2017-08-15 09:23:12,790] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin gitiles, version d983e33[2017-08-15 09:23:12,845] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin hooks, version v2.14.1[2017-08-15 09:23:12,905] [plugin-manager-preloader] INFO  com.googlesource.gerrit.plugins.manager.OnStartStop : Start-up: pre-loading list of plugins from registry[2017-08-15 09:23:12,906] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin plugin-manager, version v2.14-2-g1a2fc03[2017-08-15 09:23:12,973] [main] WARN  com.googlesource.gerrit.plugins.replication.ReplicationFileBasedConfig : Config file /var/gerrit/etc/replication.config does not exist; not replicating[2017-08-15 09:23:12,974] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin replication, version v2.14.1[2017-08-15 09:23:13,001] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin reviewnotes, version v2.14.1[2017-08-15 09:23:13,018] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin singleusergroup, version v2.14.1[2017-08-15 09:23:13,074] [main] INFO  com.google.gerrit.server.plugins.PluginLoader : Loaded plugin uploadvalidator, version 5a674b7[2017-08-15 09:23:13,076] [main] INFO  com.google.gerrit.server.change.ChangeCleanupRunner : Ignoring missing changeCleanup schedule configuration[2017-08-15 09:23:13,092] [main] INFO  com.google.gerrit.sshd.SshDaemon : Started Gerrit SSHD-CORE-1.4.0 on *:29418[2017-08-15 09:23:13,094] [main] INFO  org.eclipse.jetty.server.Server : jetty-9.3.17.v20170317[2017-08-15 09:23:13,641] [main] INFO  com.googlesource.gerrit.plugins.gitiles.HttpModule : No /var/gerrit/etc/gitiles.config; assuming defaults[2017-08-15 09:23:13,896] [main] INFO  org.eclipse.jetty.server.handler.ContextHandler : Started [email protected]{/,null,AVAILABLE}[2017-08-15 09:23:13,904] [main] INFO  org.eclipse.jetty.server.AbstractConnector : Started [email protected]{HTTP/1.1,[http/1.1]}{0.0.0.0:8081}[2017-08-15 09:23:13,904] [main] INFO  org.eclipse.jetty.server.Server : Started @8695ms[2017-08-15 09:23:13,905] [main] INFO  com.google.gerrit.pgm.Daemon : Gerrit Code Review 2.14.1 ready

启动成功关键是看最后一句:
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

[2017-08-15 09:23:13,905] [main] INFO  com.google.gerrit.pgm.Daemon : Gerrit Code Review 2.14.1 ready

错误的日志看起来像这样的:

[2017-08-15 08:53:20,516] [HTTP-75] ERROR com.google.gerrit.server.auth.ldap.LdapRealm : Cannot query LDAP to authenticate userjavax.naming.CommunicationException: 10.0.64.234:389 [Root exception is java.net.ConnectException: 连接超时 (Connection timed out)]at com.sun.jndi.ldap.Connection.(Connection.java:226)at com.sun.jndi.ldap.LdapClient.(LdapClient.java:137)at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1615)at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2749)at com.sun.jndi.ldap.LdapCtx.(LdapCtx.java:319)at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192)at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210)at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153)at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83)at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)at javax.naming.InitialContext.init(InitialContext.java:244)at javax.naming.InitialContext.(InitialContext.java:216)at javax.naming.directory.InitialDirContext.(InitialDirContext.java:101)at com.google.gerrit.server.auth.ldap.Helper.open(Helper.java:135)at com.google.gerrit.server.auth.ldap.LdapRealm.authenticate(LdapRealm.java:234)at com.google.gerrit.server.account.AccountManager.authenticate(AccountManager.java:111)at com.google.gerrit.httpd.auth.ldap.LdapLoginServlet.doPost(LdapLoginServlet.java:122)at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)at com.google.gerrit.httpd.raw.StaticModule$PolyGerritFilter.doFilter(StaticModule.java:483)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:75)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gerrit.httpd.UniversalWebLoginFilter.doFilter(UniversalWebLoginFilter.java:74)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:111)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:70)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gerrit.httpd.RequestMetricsFilter.doFilter(RequestMetricsFilter.java:57)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:133)at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:135)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:72)at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:56)at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)at org.eclipse.jetty.server.Server.handle(Server.java:534)at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)at java.lang.Thread.run(Thread.java:748)Caused by: java.net.ConnectException: 连接超时 (Connection timed out)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at java.net.Socket.connect(Socket.java:538)at java.net.Socket.(Socket.java:434)at java.net.Socket.(Socket.java:211)at com.sun.jndi.ldap.Connection.createSocket(Connection.java:363)at com.sun.jndi.ldap.Connection.(Connection.java:203)... 65 more

错误的种类比较多,一般都要具体分析啦。之后有遇到再记录一下吧。
马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/

出现这种错误需要reindex一下
执行命令java -jar /home/gerrit2/review_site/bin/gerrit.war reindex

[2017-12-26 10:25:49,111] [main] ERROR com.google.gerrit.pgm.Daemon : Unable to start daemoncom.google.inject.ProvisionException: Unable to provision, see the following errors:1) No index versions for index 'accounts' ready; run java -jar /home/gerrit2/review_site/bin/gerrit.war reindex --index accounts1 errorat com.google.gerrit.server.index.VersionManager.initIndex(VersionManager.java:161)at com.google.gerrit.server.index.VersionManager.start(VersionManager.java:92)at com.google.gerrit.lifecycle.LifecycleManager.start(LifecycleManager.java:92)at com.google.gerrit.pgm.Daemon.start(Daemon.java:349)at com.google.gerrit.pgm.Daemon.run(Daemon.java:256)at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:61)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:203)at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:108)at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:63)at Main.main(Main.java:24)

马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/
可以设置开机自启动

# 做个软连接到 /etc/init.d/下面sudo ln -snf `pwd`/review_site/bin/gerrit.sh /etc/init.d/gerrit# 再做个软连接到/etc/rc3.d/下面,也可以使用update-rc.d这个命令来弄。sudo ln -snf /etc/init.d/gerrit /etc/rc3.d/S90gerrit`

gerrit 其他个性化设置

1.Reverse Proxy 反向代理设置,80端口到8080端口
设置apache的反向代理,可以把8080端口重定向到80端口

在上面安装数据的时候 马哥推荐了 phpmyadmin 和 phppgadmin 这个2个管理工具,
安装这个工具就会把 apache2 给安装了。所以特别推荐这样安装, apache2 也安装了,数据库也安装了。

sudo apt-get install apache2   安装apache2 服务sudo a2enmod proxy        #使能这个反向代码模块,需要重启apache服务的        sudo a2enmod proxy_http

在文件/etc/apache2/sites-available中添加几行

ServerAdmin [email protected]ServerName ci.company.comServerAlias ciProxyRequests OffOrder deny,allowAllow from all#添加下面的3行,具体配置啥意思,可以查看手册,一般这样配置是不会有问题的。ProxyPreserveHost onProxyPass / http://your.gerrit.url.com:8080/ nocanonAllowEncodedSlashes NoDecode

保存这个文件,重启apache2服务.

  1. 可以安装个gitweb
sudo apt-get install gitweb

或者安装个 gitiles ,这个比较好用一些,谷歌自己用的也是这个插件。

gerrit插件可以在这个网站下载到 https://gerrit-ci.gerritforge.com/

http://archive-ci.gerritforge.com/job/ 找插件的地址.

  1. 删除系统中不需要的软件包
    https://peteris.rocks/blog/can-you-kill-it/
sudo apt remove lvm2 -y --purgesudo apt remove at -y --purgesudo apt remove snapd -y --purgesudo apt remove open-iscsi -y --purgesudo apt remove dbus -y --purgesudo apt remove accountsservice -y --purgesudo apt remove mdadm -y --purgesudo apt remove policykit-1 -y --purgesudo apt remove lxcfs -y --purge

gerrit升级

gerrit目前使用的是2.11.5版本。
2.11.5 ->  2.11.11 这个升级没有涉及到数据库的更新。可以正常直接升级成功。没有遇到什么问题。
2.11.11  -> 2.12 这个有数据库表的更新,需要特别注意。做好备份。[email protected]:~/review_site$ java -jar gerrit-2.12.war init -d /home/gerrit2/review_siteUsing secure store: com.google.gerrit.server.securestore.DefaultSecureStore*** Gerrit Code Review 2.12*** Installing plugins.Install plugin singleusergroup version v2.12 [y/N]? yInstall plugin commit-message-length-validator version v2.12 [y/N]? yInstall plugin reviewnotes version v2.12 [y/N]? yInstall plugin replication version v2.12 [y/N]? yInstall plugin download-commands version v2.12 [y/N]? yInitializing plugins.No plugins found with init steps.Upgrading schema to 108 ...Upgrading schema to 109 ...Upgrading schema to 110 ...Upgrading schema to 111 ...Upgrading schema to 112 ...Upgrading schema to 113 ...Upgrading schema to 114 ...Upgrading schema to 115 ...Migrating data to schema 108 ...Listing all changes ...Detected open changes referring to the following non-existent projects:It is highly recommended to removethe obsolete open changes, comments and patch-sets from your DB.doneUpdating groups for open changes ...doneMigrating data to schema 109 ...Migrating data to schema 110 ...Migrating data to schema 111 ...Migrating data to schema 112 ...Migrating data to schema 113 ...Migrating data to schema 114 ...Migrating data to schema 115 ...Execute the following SQL to drop unused objects:  DROP TABLE account_diff_preferences;  DROP TABLE patch_set_ancestors;  ALTER TABLE accounts DROP COLUMN contact_filed_on;Execute now [Y/n]? YInitialized /home/gerrit2/review_site[email protected]:~/review_site$ bin/gerrit.sh startStarting Gerrit Code Review: OK
2.11.11  -> 2.12.8*** Gerrit Code Review 2.12.8*** Initializing plugins.No plugins found with init steps.Upgrading schema to 108 ...Upgrading schema to 109 ...Upgrading schema to 110 ...Upgrading schema to 111 ...Upgrading schema to 112 ...Upgrading schema to 113 ...Upgrading schema to 114 ...Upgrading schema to 115 ...Migrating data to schema 108 ...Listing all changes ...Detected open changes referring to the following non-existent projects:It is highly recommended to removethe obsolete open changes, comments and patch-sets from your DB.doneUpdating groups for open changes ...doneMigrating data to schema 109 ...Migrating data to schema 110 ...Migrating data to schema 111 ...Migrating data to schema 112 ...Migrating data to schema 113 ...Migrating data to schema 114 ...Migrating data to schema 115 ...Execute the following SQL to drop unused objects:  DROP TABLE account_diff_preferences;  DROP TABLE patch_set_ancestors;  ALTER TABLE accounts DROP COLUMN contact_filed_on;Execute now [Y/n]? YInitialized /home/gerrit2/review_site
2.11.5  ->  2.13  升级。这个会把sshkey 放到All-users.git 仓库中*** Gerrit Code Review 2.13*** Upgrading schema to 120 ...Upgrading schema to 121 ...Upgrading schema to 122 ...Upgrading schema to 123 ...Upgrading schema to 124 ...Upgrading schema to 125 ...Upgrading schema to 126 ...Upgrading schema to 128 ...Upgrading schema to 129 ...Migrating data to schema 120 ...Generating Superproject subscriptions table to submodule ACLsMigrating data to schema 121 ...Migrating data to schema 122 ...Migrating data to schema 123 ...Updating references:    100% (520/520)Migrating data to schema 124 ...Migrating data to schema 125 ...Migrating data to schema 126 ...Migrating data to schema 128 ...Migrating data to schema 129 ...Execute the following SQL to drop unused objects:  DROP TABLE account_patch_reviews;  DROP TABLE account_diff_preferences;  DROP TABLE account_ssh_keys;  DROP TABLE patch_set_ancestors;  DROP TABLE starred_changes;  DROP TABLE submodule_subscriptions;  ALTER TABLE accounts DROP COLUMN contact_filed_on;  ALTER TABLE accounts DROP COLUMN show_site_header;  ALTER TABLE accounts DROP COLUMN time_format;  ALTER TABLE accounts DROP COLUMN maximum_page_size;  ALTER TABLE accounts DROP COLUMN use_flash_clipboard;  ALTER TABLE accounts DROP COLUMN diff_view;  ALTER TABLE accounts DROP COLUMN copy_self_on_email;  ALTER TABLE accounts DROP COLUMN download_command;  ALTER TABLE accounts DROP COLUMN download_url;  ALTER TABLE accounts DROP COLUMN date_format;  ALTER TABLE accounts DROP COLUMN legacycid_in_change_table;  ALTER TABLE accounts DROP COLUMN review_category_strategy;  ALTER TABLE accounts DROP COLUMN relative_date_in_change_table;  ALTER TABLE accounts DROP COLUMN size_bar_in_change_table;  ALTER TABLE accounts DROP COLUMN mute_common_path_prefixes;Execute now [Y/n]? YInitialized /home/gerrit2/review_site

升级问题记录

在从之前的2.11.5升级到 2.12的时候碰到了一个问题。详情可以看 https://blog.csdn.net/mmh19891113/article/details/81094626
在从之前的2.14 升级到 2.15的时候碰到了一个问题。这个是在我本地测试环境升级的,采用的是sudo apt update && sudo apt install gerrit的方式升级的,这个升级之后发现一个报错[2018-07-19 10:44:53,268] [HTTP-77] ERROR com.google.gerrit.pgm.http.jetty.HiddenErrorHandler : Error in GET /changes/git%2Fshared%2Ftools%2Faais-java~142/detail?O=116414java.lang.NoSuchMethodError: com.google.gerrit.server.change.RevisionResource.getControl()Lcom/google/gerrit/server/project/ChangeControl;at com.googlesource.gerrit.plugins.wip.WorkInProgress.getDescription(WorkInProgress.java:71)at com.googlesource.gerrit.plugins.wip.WorkInProgress.getDescription(WorkInProgress.java:36)at com.google.gerrit.server.extensions.webui.UiActions.describe(UiActions.java:116)at com.google.gerrit.server.extensions.webui.UiActions.lambda$from$0(UiActions.java:74)at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)at java.util.Iterator.forEachRemaining(Iterator.java:116)at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)at com.google.gerrit.server.extensions.webui.UiActions.from(UiActions.java:76)at com.google.gerrit.server.extensions.webui.UiActions.from(UiActions.java:67)at com.google.gerrit.server.change.ActionJson.toActionMap(ActionJson.java:213)at com.google.gerrit.server.change.ActionJson.addRevisionActions(ActionJson.java:110)at com.google.gerrit.server.change.ChangeJson.toRevisionInfo(ChangeJson.java:1348)at com.google.gerrit.server.change.ChangeJson.revisions(ChangeJson.java:1247)at com.google.gerrit.server.change.ChangeJson.toChangeInfo(ChangeJson.java:604)at com.google.gerrit.server.change.ChangeJson.format(ChangeJson.java:339)at com.google.gerrit.server.change.ChangeJson.format(ChangeJson.java:330)at com.google.gerrit.server.change.ChangeJson.format(ChangeJson.java:309)at com.google.gerrit.server.change.GetChange.apply(GetChange.java:47)at com.google.gerrit.server.change.GetDetail.apply(GetDetail.java:50)at com.google.gerrit.server.change.GetDetail.apply(GetDetail.java:25)at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:397)at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)at com.google.gerrit.httpd.raw.StaticModule$PolyGerritFilter.doFilter(StaticModule.java:483)at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:100)at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:122)at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:69)at com.google.gerrit.httpd.RequestMetricsFilter.doFilter(RequestMetricsFilter.java:57)at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:133)at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:135)at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:69)at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:56)at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)at org.eclipse.jetty.server.Server.handle(Server.java:534)at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)at java.lang.Thread.run(Thread.java:748)通过排查,发现是某个插件没有升级到对应的2.15版本导致的。
升级 2.12.7 ---->2.13.11[email protected]:~/review_site1$ java -jar bin/gerrit.war init -d /home/gerrit2/review_site1Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore*** Gerrit Code Review 2.13.11*** *** Git Repositories*** Location of Git repositories   [git]: *** SQL Database*** Database server type           [postgresql]: Server hostname                [localhost]: Server port                    [(postgresql default)]: Database name                  [reviewdb_2018-10-21.065101-v2.13.11.db]: Database username              [gerrit2]: Change gerrit2's password      [y/N]? *** Index*** The index must be rebuilt before starting Gerrit:  java -jar gerrit.war reindex -d site_path*** User Authentication*** Authentication method          [LDAP/?]: LDAP server                    [ldap://10.0.13.251]: LDAP username                  [gerrit]: Change gerrit's password       [y/N]? Account BaseDN                 [DC=xx,DC=com]: Group BaseDN                   [DC=xx,DC=com]: Enable signed push support     [y/N]? *** Email Delivery*** SMTP server hostname           [smtp.exmail.qq.com]: SMTP server port               [(default)]: SMTP encryption                [NONE/?]: SMTP username                  [[email protected]]: Change [email protected]'s password [y/N]? *** Container Process*** Run as                         [gerrit2]: Java runtime                   [/usr/lib/jvm/java-8-openjdk-amd64/jre]: Upgrade /home/gerrit2/review_site1/bin/gerrit.war [Y/n]? Copying gerrit.war to /home/gerrit2/review_site1/bin/gerrit.war*** SSH Daemon*** Listen on address              [*]: Listen on port                 [29418]: *** HTTP Daemon*** Behind reverse proxy           [y/N]? Use SSL (https://)             [y/N]? Listen on address              [*]: Listen on port                 [8080]: Canonical URL                  [http://10.0.12.32:8080/]: *** Cache*** Delete cache file /home/gerrit2/review_site1/cache/diff_intraline.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/mergeability.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/git_tags.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/mergeability.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/diff.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/diff.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/git_tags.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/diff_intraline.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/web_sessions.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/conflicts.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/change_kind.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/change_kind.h2.db [y/N]? *** Plugins*** Installing plugins.Install plugin commit-message-length-validator version v2.13.11 [Y/n]? commit-message-length-validator v2.13.11 is already installed, overwrite it [Y/n]? Updated commit-message-length-validator to v2.13.11Install plugin download-commands version v2.13.11 [Y/n]? download-commands v2.13.11 is already installed, overwrite it [Y/n]? Updated download-commands to v2.13.11Install plugin hooks version v2.13.11 [y/N]? Install plugin replication version v2.13.11 [Y/n]? replication v2.13.11 is already installed, overwrite it [Y/n]? Updated replication to v2.13.11Install plugin reviewnotes version v2.13.11 [Y/n]? reviewnotes v2.13.11 is already installed, overwrite it [Y/n]? Updated reviewnotes to v2.13.11Install plugin singleusergroup version v2.13.11 [Y/n]? singleusergroup v2.13.11 is already installed, overwrite it [Y/n]? Updated singleusergroup to v2.13.11Initializing plugins.No plugins found with init steps.Upgrading schema to 120 ...Upgrading schema to 121 ...Upgrading schema to 122 ...Upgrading schema to 123 ...Upgrading schema to 124 ...Upgrading schema to 125 ...Upgrading schema to 126 ...Upgrading schema to 127 ...Upgrading schema to 128 ...Upgrading schema to 129 ...Migrating data to schema 120 ...Generating Superproject subscriptions table to submodule ACLsException in thread "main" com.google.gwtorm.server.OrmException: org.eclipse.jgit.errors.RepositoryNotFoundException: repository not found: /home/gerrit2/review_site1/git/git/shared/tools/ChkBugReportat com.google.gerrit.server.schema.Schema_120.allowSubmoduleSubscription(Schema_120.java:92)at com.google.gerrit.server.schema.Schema_120.migrateData(Schema_120.java:117)at com.google.gerrit.server.schema.SchemaVersion.migrateData(SchemaVersion.java:142)at com.google.gerrit.server.schema.SchemaVersion.upgradeFrom(SchemaVersion.java:81)at com.google.gerrit.server.schema.SchemaVersion.check(SchemaVersion.java:72)at com.google.gerrit.server.schema.SchemaUpdater.update(SchemaUpdater.java:112)at com.google.gerrit.pgm.init.BaseInit$SiteRun.upgradeSchema(BaseInit.java:367)at com.google.gerrit.pgm.init.BaseInit.run(BaseInit.java:133)at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:64)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:163)at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:104)at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:59)at Main.main(Main.java:25)Caused by: org.eclipse.jgit.errors.RepositoryNotFoundException: repository not found: /home/gerrit2/review_site1/git/git/shared/tools/ChkBugReportat com.google.gerrit.server.git.LocalDiskRepositoryManager.openRepository(LocalDiskRepositoryManager.java:182)at com.google.gerrit.server.git.LocalDiskRepositoryManager.openRepository(LocalDiskRepositoryManager.java:164)at com.google.gerrit.server.schema.Schema_120.allowSubmoduleSubscription(Schema_120.java:60)... 16 more[email protected]:~/review_site1$ [email protected]:~/review_site1$ java -jar bin/gerrit.war init -d /home/gerrit2/review_site1Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore*** Gerrit Code Review 2.13.11*** *** Git Repositories*** Location of Git repositories   [git]: *** SQL Database*** Database server type           [postgresql]: Server hostname                [localhost]: Server port                    [(postgresql default)]: Database name                  [reviewdb_2018-10-21.065101-v2.13.11.db]: Database username              [gerrit2]: Change gerrit2's password      [y/N]? *** Index*** The index must be rebuilt before starting Gerrit:  java -jar gerrit.war reindex -d site_path*** User Authentication*** Authentication method          [LDAP/?]: LDAP server                    [ldap://10.0.13.251]: LDAP username                  [gerrit]: Change gerrit's password       [y/N]? Account BaseDN                 [DC=xx,DC=com]: Group BaseDN                   [DC=xx,DC=com]: Enable signed push support     [y/N]? *** Email Delivery*** SMTP server hostname           [smtp.exmail.qq.com]: SMTP server port               [(default)]: SMTP encryption                [NONE/?]: SMTP username                  [[email protected]]: Change [email protected]'s password [y/N]? *** Container Process*** Run as                         [gerrit2]: Java runtime                   [/usr/lib/jvm/java-8-openjdk-amd64/jre]: Upgrade /home/gerrit2/review_site1/bin/gerrit.war [Y/n]? Copying gerrit.war to /home/gerrit2/review_site1/bin/gerrit.war*** SSH Daemon*** Listen on address              [*]: Listen on port                 [29418]: *** HTTP Daemon*** Behind reverse proxy           [y/N]? Use SSL (https://)             [y/N]? Listen on address              [*]: Listen on port                 [8080]: Canonical URL                  [http://10.0.12.32:8080/]: *** Cache*** Delete cache file /home/gerrit2/review_site1/cache/diff_intraline.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/mergeability.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/git_tags.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/mergeability.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/diff.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/diff.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/git_tags.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/diff_intraline.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/web_sessions.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/conflicts.h2.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/change_kind.trace.db [y/N]? Delete cache file /home/gerrit2/review_site1/cache/change_kind.h2.db [y/N]? *** Plugins*** Installing plugins.Install plugin commit-message-length-validator version v2.13.11 [Y/n]? commit-message-length-validator v2.13.11 is already installed, overwrite it [Y/n]? Updated commit-message-length-validator to v2.13.11Install plugin download-commands version v2.13.11 [Y/n]? download-commands v2.13.11 is already installed, overwrite it [Y/n]? Updated download-commands to v2.13.11Install plugin hooks version v2.13.11 [y/N]? Install plugin replication version v2.13.11 [Y/n]? replication v2.13.11 is already installed, overwrite it [Y/n]? Updated replication to v2.13.11Install plugin reviewnotes version v2.13.11 [Y/n]? reviewnotes v2.13.11 is already installed, overwrite it [Y/n]? Updated reviewnotes to v2.13.11Install plugin singleusergroup version v2.13.11 [Y/n]? singleusergroup v2.13.11 is already installed, overwrite it [Y/n]? Updated singleusergroup to v2.13.11Initializing plugins.No plugins found with init steps.Upgrading schema to 120 ...Upgrading schema to 121 ...Upgrading schema to 122 ...Upgrading schema to 123 ...Upgrading schema to 124 ...Upgrading schema to 125 ...Upgrading schema to 126 ...Upgrading schema to 127 ...Upgrading schema to 128 ...Upgrading schema to 129 ...Migrating data to schema 120 ...Generating Superproject subscriptions table to submodule ACLsMigrating data to schema 121 ...Migrating data to schema 122 ...Migrating data to schema 123 ...Updating references:    100% (555/555)Migrating data to schema 124 ...Migrating data to schema 125 ...Migrating data to schema 126 ...Migrating data to schema 127 ...Migrating data to schema 128 ...Migrating data to schema 129 ...Execute the following SQL to drop unused objects:  DROP TABLE account_patch_reviews;  DROP TABLE account_ssh_keys;  DROP TABLE starred_changes;  DROP TABLE submodule_subscriptions;  ALTER TABLE accounts DROP COLUMN show_site_header;  ALTER TABLE accounts DROP COLUMN time_format;  ALTER TABLE accounts DROP COLUMN maximum_page_size;  ALTER TABLE accounts DROP COLUMN use_flash_clipboard;  ALTER TABLE accounts DROP COLUMN diff_view;  ALTER TABLE accounts DROP COLUMN copy_self_on_email;  ALTER TABLE accounts DROP COLUMN download_command;  ALTER TABLE accounts DROP COLUMN download_url;  ALTER TABLE accounts DROP COLUMN date_format;  ALTER TABLE accounts DROP COLUMN legacycid_in_change_table;  ALTER TABLE accounts DROP COLUMN review_category_strategy;  ALTER TABLE accounts DROP COLUMN relative_date_in_change_table;  ALTER TABLE accounts DROP COLUMN size_bar_in_change_table;  ALTER TABLE accounts DROP COLUMN mute_common_path_prefixes;Execute now [Y/n]? 
# gerrit replication 插件使用的Host gerrit-sh-example-comUser gerrit2Hostname 192.168.12.18IdentityFile ~/.ssh/id_rsaPreferredAuthentications publickeyStrictHostKeyChecking noUserKnownHostsFile /dev/null# gerrit replication 插件使用的Host gerrit-wx-example-comUser gerrit2Hostname 192.168.17.236IdentityFile ~/.ssh/id_rsaPreferredAuthentications publickeyStrictHostKeyChecking noUserKnownHostsFile /dev/null# gerrit replication 插件使用的Host gerrit-nj-example-comUser gerrit2Hostname 192.168.31.201IdentityFile ~/.ssh/id_rsaPreferredAuthentications publickeyStrictHostKeyChecking noUserKnownHostsFile /dev/null[email protected]:~$ cat review_site/etc/gerrit.config [user]    name = Gerrit2-example    email = [email protected][core]    packedGitOpenFiles = 409600[gerrit]    basePath = git    canonicalWebUrl = http://gerrit.example.com:8080/[database]    type = postgresql    hostname = localhost    database = reviewdb    username = gerrit2    poolMinIdle = 4    poolMaxIdle = 10    poolLimit = 128    poolMaxWait = 10s[index]    type = LUCENE[auth]    type = LDAP[ldap]    server = ldap://192.168.13.251    username = gerrit    accountBase = DC=example,DC=com    groupBase = DC=example,DC=com    accountFullName = displayName    localUsernameToLowerCase = true[sendemail]    enable = false    smtpServer = smtp.exmail.qq.com    smtpUser = [email protected]    from = Gerrit2-example[container]    user = gerrit2    javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre    heapLimit = 100g[sshd]    listenAddress = *:29418    threads = 112    batchThreads = 16    streamThreads = 32    commandStartThreads = 16    maxConnectionsPerUser = 64[httpd]    listenUrl = http://*:8080/[cache]    directory = cache[theme]    backgroundColor = FCFEEF    textColor = 000000    trimColor = D4E9A9    selectionColor = FFFFCC    topMenuColor = D4E9A9    changeTableOutdatedColor = F08080[theme "signed-in"]    backgroundColor = FFFFFF[commentlink "jira"]    match = \\[([A-Z]+-[0-9]+)\\]    link = http://jira.example.com/browse/$1[cache "web_sessions"]    maxAge = 1 week[receive]    enableSignedPush = false[plugins]    allowRemoteAdmin = true[download]  command = checkout  command = cherry_pick  scheme = ssh[email protected]:~$ cat review_site/etc/gitiles.config [gitiles]    type = custom    linkname = gitiles    url = /plugins/gitiles/    revision = ${project}/+/${commit}    project = ${project}    roottree = ${project}    branch = ${project}/+/${branch}    filehistory = ${project}/+log/${branch}/${file}    file = ${project}+${commit}/${file}[email protected]:~$ cat review_site/etc/gitiles.config [gitiles]    type = custom    linkname = gitiles    url = /plugins/gitiles/    revision = ${project}/+/${commit}    project = ${project}    roottree = ${project}    branch = ${project}/+/${branch}    filehistory = ${project}/+log/${branch}/${file}    file = ${project}+${commit}/${file}[email protected]:~$ cat review_site/etc/replication.config [gerrit]    defaultForceUpdate = true    autoReload = true[remote "gerrit-sh"]    url  = [email protected]:/home/gerrit2/review_site/git/${name}.git    projects = "^git/android/.*"    projects = "^Permission_parent/.*"    projects = "All-Projects"    projects = "All-Users"    push = +refs/*:refs/*    mirror = true    replicatePermissions=true    threads = 16    replicationDelay = 2[remote "gerrit-wx"]    url  = [email protected]:/home/gerrit2/review_site/git/${name}.git    projects = "^git/android/.*"    projects = "^Permission_parent/.*"    projects = "All-Projects"    projects = "All-Users"    push = +refs/heads/*:refs/heads/*    push = +refs/users/*:refs/users/*    push = +refs/meta/*:refs/meta/*    push = +refs/tags/*:refs/tags/*    mirror = true    replicatePermissions=true    threads = 6    replicationDelay = 12[remote "gerrit-nj"]    url  = [email protected]:/home/gerrit2/review_site/git/${name}.git    projects = "^git/android/.*"    projects = "^Permission_parent/.*"    projects = "All-Projects"    projects = "All-Users"    push = +refs/heads/*:refs/heads/*    push = +refs/users/*:refs/users/*    push = +refs/meta/*:refs/meta/*    push = +refs/tags/*:refs/tags/*    mirror = true    replicatePermissions=true    threads = 6    replicationDelay = 12

其他

有问题可以联系马哥,马哥的淘宝店:马哥私房菜 https://shop592330910.taobao.com/
更新于2018/10/21

更多相关文章

  1. React-Native系列Android——Win7系统环境搭建问题汇总
  2. Android内核开发:浅析APK的安装过程
  3. AndroidStudio连不上Android设备真机
  4. 数据库小白:GROUP BY和ORDER BY不能一起用?
  5. 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(三)——搭建
  6. 在PC虚拟机中安装apk软件
  7. 第四章 常见 Android(安卓)文件格式(一)(库文件、APK)
  8. Android数据库监听器+Demo
  9. [置顶] 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(1)服

随机推荐

  1. Android API中常用的包
  2. 使用Android(安卓)sdk/build-tools/dx工
  3. Android 渗透测试学习手册(七)不太知名的 A
  4. Android必备知识(五)多线程及AsyncTask
  5. [JAVA] Android用到的一些文件操作
  6. cocos2d-x学习笔记06:如何将win32移植到an
  7. android 利用shape实现环形进度条
  8. Android线程
  9. Android 加载模型
  10. 跟我学Android4 之 第一部分:Android入门