第一次部署代码服务器,用了大概一周时间!看了很多博客最后才搞定!对linux 系统非常不熟,还重装了一次系统!
第一次成功之后,以后再部署应该就没什么难度了。
这里有几个关键点:
1.下载timeshift 备份系统,这一步非常关键,因为ubuntu不知道什么时候就崩了,我就遇到过一次什么软件都打不开,重启之后干脆连开机都开不了了,最后没办法只能重装系统。
重装系统之后先别做什么更新啊什么的,先去把下载源给换了,不然能等你1个多小时!
具体操作参照:https://zhuanlan.zhihu.com/p/61228593
更新号系统之后去安装TimeShift
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt update
sudo apt install timeshift
安装完之后 设置一下备份的内容https://www.jianshu.com/p/a1b5610c9a50
更多设置百度一下有很多。
2.安装git
sudo apt install git
git --version //用来测试
网上资料很多https://blog.csdn.net/qq282330332/article/details/51855252
3.配置java 环境
下载jdk8(目前官网要注册才能下载,但可以去国内的一些资源网站找)
#下载安装JDK(1.8) 需要自己去找资源包,官网现在需要注册
#进入指定文件夹,解压压缩包
tar -zxvf jdk*.tar.gz
# java环境变量配置文档
#1.打开配置文件
sudo vim /etc/profile
# 2.按 i 进入插入面板,后拉到底部 添加
i
#3.添加配置环境变量
export JAVA_HOME=/apps/java #jdk文件目录(上面解压目录)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
#4.保存退出
esc
shift+:
wq
enter
#5.让指令生效
source /etc/profile
#6.测试指令是否成功
javac/java -version
4.安装 nginx
#安装配置nginx
sudo apt-get install nginx
#出现安装失败
dpkg: error processing package bluez (--configure)
解决办法:
$ sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
$ sudo mkdir /var/lib/dpkg/info/
$ sudo apt-get update
...
$ sudo apt-get -f install
...
$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
$ sudo rm -rf /var/lib/dpkg/info
$ sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/
输入上述命令之后,在执行 sudo apt-get update 和 sudo apt-get upgrade 就不会有问题了。
#出现启动失败
Job for nginx.service failed because the control process exited with error code. See “systemctl stat
#1.nginx配置文件有错误
#运行下面命令查看修改
nginx -t
#已经启动nginx或者配置文件中的端口号被占用
#检查端口是否被占用
netstat -tnlp
#如果端口已经被占用,自己权衡一下是换个端口还是把占用端口的进程杀掉
#检查nginx是否已经启动
ps -aux | grep nginx
#如果已经启动使用下面命令干掉即可
pkill -9 nginx
#启动nginx
sudo /etc/init.d/nginx start
#reload nginx
sudo nginx -s reload
#失败 端口80被cupsd 进程占用
#修改配置文件
sudo gedit /etc/nginx/sites-available/default
修改端口
5.安装apach
sudo apt-get install apache2
相关资料:https://blog.csdn.net/gatieme/article/details/53025505 网上有很多
6.创建gerrit 账号
#5.gerrit管理帐号(可选,使用独立账号配置gerrit)
sudo adduser gerrit
sudo passwd gerrit
#并将gerrit加入sudo权限
sudo vim /etc/sudoers
#插入
gerrit #后面的复制root账号
i
esc
shift+:
wq! #强制修改
切换到gerrit 账号
su gerrit
这里切换到gerrit 之后要注意:后面配置的时候很可能会出现permissionDennied 的错误,因为涉及到的账号密码或者其他文件是需要权限的
6.安装gerrit
#安装配置gerrit
#edit gerrit config gerrit配置文件
sudo vim ./review_site/etc/gerrit.config
//need edit canonicalWebUrl to your ip add
//httpd listenUrl port must be the same with canonicalWebUrl:wq
[gerrit]
basePath = git
canonicalWebUrl = http://192.168.x.xxx:8081/
[database]
type = h2
database = /media/gerrit/3ae7dad6-d7d2-42d4-8a2d-cb747297c6e1/myapps/gerrit_site/db/ReviewDB
[index]
type = LUCENE
[auth]
type = HTTP
[oauth]
allowEditFullName = true
allowRegisterNewEmail = true
[receive]
enableSignedPush = true
[sendemail]
enable = true
smtpServer = smtp.qq.com
smtpEncryption = SSL
smtpServerPort = 465
sslVerify = true
smtpUser = xxx@qq.com
smtpPass = xxx
from = Code Review<xxx@qq.com>
[container]
user = gerrit
javaHome = /media/gerrit/3ae7dad6-d7d2-42d4-8a2d-cb747297c6e1/myapps/jdk1.8.0_212/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-https://*:8081/
[cache]
directory = cache
[http]
proxy = http://192.168.x.xxx:8080
[theme]
backgroundColor = FCFEEF
textColor = 000000
trimColor = D4E9A9
selectionColor = FFFFCC
topMenuColor = D4E9A9
changeTableOutdatedColor = F08080
[theme "signed-in"]
backgroundColor = FFFFFF
#chek gerrit err log //查看gerrit 错误日志
gerrit_reviewsite/log/error_log
# htpasswd add user config
sudo htpasswd -c gerrit.passwd admin //管理员账号
touch ./gerrit_site/etc/passwd //添加普通账号
htpasswd -b ./gerrit_site/etc/gerrit.passwd a 123456
#apach log 查看apach 错误日志
cd /var/log/apache2
#apach 配件
<VirtualHost *:8080>
ServerName 192.168.8.xxx
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
AllowEncodedSlashes On
RewriteEngine On
RewriteRule ^/(.*) http://192.168.x.xxx:8081/$1 [NE,P]
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthBasicProvider file
AuthUserFile /media/gerrit/3ae7dad6-d7d2-42d4-8a2d-cb747297c6e1/myapps/gerrit_site/etc/gerrit.passwd
</Location>
ProxyPass / http://192.168.1.xxx:8081/
</VirtualHost>
#nginx log 查看nginx 错误日志
192.168.x.xxx:358
/var/log/nginx/error.log
#存放账号密码的文件路径,注意权限问题,gerrit要有权限访问
/media/gerrit/myapps/gerrit_site/etc/gerrit.passwd
#重启apache2
sudo /etc/init.d/apache2 restart
#gerrit smtp邮箱配置:注意smtp 邮箱配置smtpuser的时候需要去自己的
邮箱开启smtp服务,之后smtppasswd要写授权码
注意:全部安装完成以后再去弄配置文件,只要安装成功慢慢修改配置文件一般都会成功,当然windows 下访问的时候会有坑
1.由于gerrit 使用的KexAlgorrithms diffie-hellman-group1-sha1 和本地策略不一致
需要收到在.ssh/ 文件夹里面加入config文件 (注意文件名称就是config 无后缀)
Host 服务器IP地址
KexAlgorithms +diffie-hellman-group1-sha1
2.clone 的时候要使用 clone with commit-msg 那个地址,因为gerrit 每次提交需要changeid 这东西就是产生changeid 的
3.gerrit 不允许直接提交到master,只有经过审核才能summit,push路径需要配置
git config remote.origin.push refs/heads/*:refs/for/*
4.提交的时候要输入账号密码,注意密码是生成的 在gerrit 网页上登录之后 在Settings 里面 HttpPassword
5.当领导让你导入已有的git项目的时候让你把日志一起弄进去!
gerrit 可以配置forcepush 另外admin 账号是可以不审核直接提交的!(也可以removeviewers)
大概花了4天半的时间!后面越来越熟了,基本都是看日志解决问题,不用向无头苍蝇到处乱撞了。