修复漏洞-gitlab升级(2)
一开始他给的方案,在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