赞
踩
目录
最近想在局域网搭建一个软件版本管理、代码审查、及CI的开发环境,看了很多博客,内容比较分散,且失败了很多次,也走了不少弯路,现在把成功的步骤记录下来,以便于后期参考。
1、ubuntu 20.04 LTS
2、gerrit-2.16.25.war
3、jenkins_2.249.3_all.deb
注意:后面有些操作需要进入到root用户进行配置,如果你已经有root的权限,此步骤请跳过
- Step1:ctrl + alt + T # 打开terminal
- Step2:sudo passwd root # 按照提示设置password.
- Step3:su root # 按照提示输入刚设置的password,切换到root用户
以下步骤在root用户下完成
- sudo adduser gerrit # 创建一个gerrit用户
- sudo passwd gerrit # 为gerrit用户增加登录密码
- ### 方法1:
- sudo usermod -a -G sudo gerrit
-
- ### 方法2:
- # Step1:
- vi /etc/sudoers # 打开sudoers文件
-
- # Step2:
- # 在 root ALL=(ALL:ALL) ALL的下面增加一行:
- username ALL=(ALL:ALL) ALL # username是你要添加的用户
-
- # Step3:
- su username # 切出root到你需要的用户下面
sudo su gerrit
下面的安装步骤在gerrit用户下操作。
- # 第一步:打开终端,添加ppa源
- sudo add-apt-repository ppa:openjdk-r/ppa
- # 第二步:更新源
- sudo apt-get update
- # 第三步:安装openjdk 8
- sudo apt-get install openjdk-8-jdk
- # 第四步:配置openjdk 8为默认java环境
- sudo update-alternatives --config java
- sudo update-alternatives --config javac
- # 最后,验证一下是否成功
- java -version
- # 返回:
- openjdk version "1.8.0_91"
- OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14)
- OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Gerrit有两种工作方式,我们要采用 http 的工作方式,也就是代码审核人员,可以直接通过Web页面对提交的代码进行评审以及后续的操作。
然后Gerrit要求不能直接请求其端口,必须要使用反向代理才能正确登录。而我们知道Nginx的成功正在于其高效、轻量级以及 反向代理 ,虽然Apache也有反向代理的功能,但是如果你在安装Apache时没有开启,后续的开启过程要相对复杂一点,而Nginx就简单的多了。
- sudo apt-get update
- sudo apt-get install nginx
- sudo apt-get remove nginx nginx-common # 卸载删除除了配置文件以外的所有文件。
- sudo apt-get purge nginx nginx-common # 卸载所有东东,包括删除配置文件。
- sudo apt-get autoremove # 在上面命令结束后执行,主要是卸载删除Nginx的不再被使用的依赖包。
- sudo apt-get remove nginx-full nginx-common #卸载删除两个主要的包。
- sudo service nginx restart #重启nginx
- # nginx服务相关的指令
- ps aux|grep nginx # 查看nginx进程
- service nginx start # 启动Nginx服务
- service nginx stop # 停止Nginx服务
- service nginx restart # 重启Nginx服务
- service nginx status # 查看Nginx服务的状态
-
-
- # 也可以到nginx目录下直接操作
- /etc/init.d/nginx start # 启动
- /etc/init.d/nginx stop # 关闭
- /etc/init.d/nginx restart # 重启
-
- service nginx reload # 在Nginx服务启动的状态下,重新加载nginx.conf这个配置文件
- git --version # 查看git是否已经安装,安装后会返回: git version 2.25.1
-
- # 如果没有安装,进行下面的步骤
- sudo apt-get update
- sudo apt-get install git
官网下载地址:Gerrit Code Review Releases | Gerrit Code Review
(1)首先将安装文件拷贝到(上传到)~/Downloads目录下
(2)执行下面的指令
- cd ~
- mkdir gerrit_site # 创建一个目录,准备安装gerrit
- java -jar ~/Downloads/gerrit-2.16.25.war init -d ~/gerrit_site
下面是gerrit的安装向导,除了这个地方:【Authentication method [OPENID/?]: http 】输入HTTP以外,其他一路敲回车即可。
- *** Gerrit Code Review 2.25.16
- ***
-
- ## git 代码仓库的位置, 默认会在之前敲的init -d 目录下新建一个git文件夹
- ## 我们回车表示默认地址
- *** Git Repositories
- ***
-
- Location of Git repositories [git]:
-
- ## 数据库类型,我们直接回车表示默认的h2
- *** SQL Database
- ***
-
- Database server type [h2]:
-
- ## 用户认证方式,注意!!!!!这里一定要手动输入 http, 其他的就直接回车
- *** User Authentication
- ***
-
- Authentication method [OPENID/?]: http
- Get username from custom HTTP header [y/N]?
- SSO logout URL :
- ## 发送email的配置,这里我们全部回车使用默认,之后通过配置文件进行修改
- *** Email Delivery
- ***
- SMTP server hostname [localhost]:
- SMTP server port [(default)]:
- SMTP encryption [NONE/?]:
- SMTP username :
- ## 剩下的全部回车就好了,全部安装成默认的配置
- *** Container Process
- ***
- Run as [gerrit]:
- Java runtime [/usr/lib/jvm/java-7-openjdk-amd64/jre]:
- Copy gerrit-2.13.4.war to /home/gerrit/review/bin/gerrit.war [Y/n]? n
- Copying gerrit-2.13.4.war to /home/gerrit/review/bin/gerrit.war
-
- *** SSH Daemon
- ***
-
- Listen on address [*]:
- Listen on port [29418]:
-
- ## 这里下载可能会失败,按照我之前说过的方法重新试一遍应该就ok了
- Gerrit Code Review is not shipped with Bouncy Castle Crypto SSL v151
- If available, Gerrit can take advantage of features
- in the library, but will also function without it.
- Download and install it now [Y/n]?
- Downloading http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar ...
-
-
- ## http的反向代理,我们这里先不要设置,一路回车,尽快完成安装
- *** HTTP Daemon
- ***
- Behind reverse proxy [y/N]?
- Proxy uses SSL (https://) [y/N]?
- Subdirectory on proxy server [/]:
- Listen on address [*]:
- Listen on port [8080]:
- // 插件安装
- *** Plugins
- ***
-
- Installing plugins.
- Install plugin codemirror-editor version v2.16.25 [y/N]? y
- Installed codemirror-editor v2.16.25
- Install plugin commit-message-length-validator version v2.16.25 [y/N]? y
- Installed commit-message-length-validator v2.16.25
- Install plugin download-commands version v2.16.25 [y/N]? y
- Installed download-commands v2.16.25
- Install plugin hooks version v2.16.25 [y/N]? y
- Installed hooks v2.16.25
- Install plugin replication version v2.16.25 [y/N]? y
- Installed replication v2.16.25
- Install plugin reviewnotes version v2.16.25 [y/N]? y
- Installed reviewnotes v2.16.25
- Install plugin singleusergroup version v2.16.25 [y/N]? y
- Installed singleusergroup v2.16.25
- Initializing plugins.

sudo vi ~/gerrit_site/bin/gerrit.sh
在打开的文件中,添加一行:
GERRIT_SITE=/home/gerrit/gerrit_site
如下所示:
(1)打开/新建配置文件:
sudo vi ~/gerrit_site/etc/gerrit.config
配置如下:
- [gerrit]
- basePath = git
- serverId = fc9d61b3-8298-474c-b30c-2b3d97e2bf02
- canonicalWebUrl = http://192.168.1.8:8081/
- [database]
- type = h2
- database = /home/gerrit/gerrit_site/db/ReviewDB
- [noteDb "changes"]
- disableReviewDb = true
- primaryStorage = note db
- read = true
- sequence = true
- write = true
- [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-8-openjdk-amd64/jre
- [index]
- type = LUCENE
- [auth]
- type = HTTP
- [receive]
- enableSignedPush = false
- [sendemail]
- enable = true
- smtpServer = smtp.sina.cn
- smtpServerPort = 465
- smtpEncryption = SSL
- sslVerify = true
- smtpUser = yourname@sina.cn
- smtpPass = yourpassword
- [sshd]
- listenAddress = *:29418
- [httpd]
- listenUrl = proxy-http://*:8081/
- [cache]
- directory = cache

(2)重启gerrit服务
~/review_site/bin/gerrit.sh restart
(1)创建一个gerrit.conf文件
- cd /etc/ngnix/conf.d # 进入到conf.d目录
- sudo vi gerrit.conf # 用vim创建一个gerrit.conf文件用于对nginx反向代理进行配置
(2)如下编辑gerrit.conf
- server {
- listen *:81;
- server_name localhost;
- allow all;
- deny all;
-
- auth_basic "Welcome to Gerrit Code Review Site!";
- auth_basic_user_file /home/gerrit/gerrit_site/etc/gerrit.passwd;
-
-
- location / {
- proxy_pass http://127.0.0.1:8081;
- proxy_set_header X-Forwarded-For $remote_addr;
- proxy_set_header Host $host;
- }
- }

(3)重启ngnix服务
- sudo /etc/init.d/nginx restart # 重启nginx
- sudo /etc/init.d/nginx status # 查看状态
这里我们需要用apach的 htpasswd
工具来新建这个文件,虽然我使用了nginx代替apache做反向代理,但仍然需要apache。
我们通过下面的命令来在 /home/gerrit/gerrit_site/etc/
路径下创建认证文件
(1)安装apache htpasswd
$ sudo apt-get install apache2-utils
(2)创建gerrit.password文件,并创建用户
- htpasswd -c /home/gerrit/gerrit_site/etc/gerrit.password admin # 创建第一个用户admin,同时会生成一个gerrit.password文件
-
- htpasswd -m /home/gerrit/gerrit_site/etc/gerrit.password master # 在gerrit.password增加用户用 -m
执行上面的命令,会要求多次输入密码,改密码就是对应用户的登录密码。
(3)登录
打开浏览器,在地址栏输入:http://192.168.1.8:81
按照提示,输入用户名和密码,登录成功页面如下:
参考上面的3.3小节
(1)安装与配置:参考博文:Ubuntu 16.04安装tomcat8_ubuntu 16.04 安装 tomcat8-CSDN博客
(2)tomcat8启动
- sudo /etc/init.d/tomcat8 start # 启动
- sudo /etc/init.d/tomcat8 restart # 重启
- sudo /etc/init.d/tomcat8 stop # 停止
- sudo /etc/init.d/tomcat8 status
-
- sudo /opt/tomcat8/bin/shutdown.sh # 停止
- sudo /opt/tomcat8/bin/startup.sh # 启动
jenkins安装也可以参考这个文献:在Ubuntu上安装最新版Jenkins详细步骤 - 测试玉米君 - 博客园 (cnblogs.com)https://www.cnblogs.com/dannyding/p/13570513.html
我们将启用Jenkins APT存储库,导入存储库GPG密钥,并安装Jenkins包。使用以下wget命令导入Jenkins存储库的GPG键:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
接下来,使用以下命令将Jenkins存储库添加到系统中:
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
启用Jenkins存储库后,通过输入以下命令更新apt包列表并安装最新版本的Jenkins:
- sudo apt-get update
- sudo apt-get install jenkins
由于国内下载较慢,APT install可能很慢或失败,可以直接下载软件包,浏览器输入以下链接即可:
https://pkg.jenkins.io/debian-stable/binary/jenkins_2.235.1_all.deb
然后,直接用安装包安装:
sudo dpkg -i jenkins_2.235.1_all.deb
(2)修改jenkins端口
jenkins缺省的端口号是8080,修改端口号不让jenkins占用8080端口。
首先,修改/etc/init.d/jenkins脚本,如下修改完成后保存退出。
- sudo /etc/init.d/jenkins
- # 找到so_start函数的check_tcp_port, 将端口号从8080修改为8030
- # 例如:check_tcp_port “http” “$HTTP_PORT” “8030” .....
然后,修改/etc/default/jenkins文件,将端口8080改成8030,如下修改后保存退出
- sudo /etc/default/jenkins
- # httpPort=8030
最后,重新载入配置,并重启jenkins服务:
- sudo systemctl daemon-reload
- sudo /etc/init.d/jenkins restart
(3)jenkins的工作页面
在浏览器输入:http://localhost:8030,准备打开jenkins的页面,【注意】我遇到了这样的问题:“启动页面一直显示: jenkins正在启动,请稍后........”
解决方法:
- cd /var/lib/jenkins/updates
- sudo vi default.json
- # 将 “connectionCheckUrl”:"http://www.google.com/" 修改为 "connectionCheckUrl":"http://www.baidu.com/"
- sudo /etc/init.d/jenkins restart
(3)剩下的安装过程按照安装向导提示进行
可参考博客:https://www.cnblogs.com/adnny/p/13570513.html , 从7.0小节开始参考。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。