修复漏洞-gitlab升级(2) 接上一篇。。。 升级完我就做了个快照,等领导有空试用下,然后我不忘提醒,升级十几个版本需要花费2天时间,而且升级过程中有些报错,不知道会不会影响使用。领导说直接装新版本,免得夜长梦多(一下子推翻我所有的努力) 当时我领导想买一台按量付费的服务器B,然后在这个服务器B上装最新版gitlab,然后把原gitlab服务器上的所有东西一比一拷过去,最后用这台按量付费的服务器覆盖回原机器。 先叫我梳理下原服务器A上有什么东西:除gitlab,还有nginx、jenkins及npm等发布环境,各种软链接,python脚本运行环境。。。等等。当时我装好gitlab后给他试用,他叫我研究怎么把以前提交历史原封不动拷过去(就是各种commit的提交记录),然后他去梳理旧gitlab要迁移的项目,我就去把环境一比一装到新服务器上。 当时我觉得只要把大家伙jenkins拷过去,其他都不是什么大事,然后上周五发现把jenkins用到的目录拷过去,起不来。临下班他问我进度,我如实汇报,最后他灵机一动,给出一个非常省心省力又省钱的方案(果然大家都是水瓶座的~~正确的选择能事半功倍): 克隆这台装有11.4.x 版本的gitlab的服务器C,把里面的gitlab卸载,然后重装最新版本的gitlab,将上面已经迁移好项目的gitlab服务器B的数据拷回到C,最后用C覆盖A服务器。我画个简图
一开始他给的方案,在B做一个跟A一样的环境,我就是卡在服务器B的部署上,想想jenkins配置要搞 jdk、maven,还有配置上面的各种发布任务,挺烦的。时间就是金钱,他想出第三台服务器C,也算是解放我双手。
首先说说以url方式,原封不动把提交历史导入(这玩意研究了我一晚上),用ssh导入会报错,要换成http方式。
用 http 又一直报错:There is not a valid Git repository at this URL. If your HTTP repository is not publicly accessible, verify your credentials
首先搞清楚用这个服务器A的内网url的时候,我们要确保B服务器上是能够网络是通的。旧版本 11.4.x 的gitlab 有个ssh暴露端口配置和nginx配置
gitlab_rails['gitlab_shell_ssh_port'] = xxx nginx['listen_port'] = xxx
我当时傻傻地填这个ssh端口,其实是nginx端口
其次,原服务器A和目的服务器B都要开启内网流量请求通过的配置。最后就是源 nginx监听端口需要修改为大于 1024 的端口(如果是80、443就不用改)
最后讲下C服务器上的具体操作
1、卸载gitlab
gitlab-ctl stop rpm -e gitlab-ce ps aux | grep gitlab kill -9 进程号 --- 第一行的进程号
删除gitlab文件目录(千万不要学网上的:find / -name gitlab|xargs rm -rf,我发现奇慢无比)
rm -rf /opt/gitlab /var/log/gitlab /var/opt/gitlab /etc/gitlab /run/gitlab
说明: /opt/gitlab/ # 主目录 /etc/gitlab/ # 放置配置文件 /var/opt/gitlab/ # 各个组件 /var/log/gitlab/ # 放置日志文件 /var/opt/gitlab/git-data/repositories #数据库的地址 /var/opt/gitlab/postgresql/data #gitlab组和项目的地址 /etc/gitlab/gitlab.rb #gitlab配置文件
gitlab.rb 配置文件就备份下吧~~~
2、安装新版本gitlab
rpm -i gitlab-ce-16.2.3-ce.0.el7.x86_64.rpm gitlab-ctl reconfigure gitlab-ctl restart
3、在服务器B做gitlab数据备份,然后把备份文件恢复到C服务器
gitlab-rake gitlab:backup:create
默认会在 /var/opt/gitlab/backups/ 创建一个 【xxxxx一堆序列码】.tar 的备份文件
将这个备份文件 .tar 拷贝到 C服务器同等位置,然后进行数据恢复
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq gitlab-rake gitlab:backup:restore BACKUP=【xxxxx一堆序列码】 gitlab-ctl restart
参考:https://blog.csdn.net/bbj12345678/article/details/128318174
标签:opt,修复,nginx,gitlab,漏洞,var,服务器,ctl From: https://www.cnblogs.com/windysai/p/17630026.html