GITLAB迁移、备份、升级、恢复

问题背景:

  • 原gitlab在北京二区一些老服务器上,启动方式为docker-compose启动(庆幸还有配置文件),新的gitlab准备跑在腾讯云TKE容器服务中,欲通过dockerfile打包镜像。

第一感觉:

第一感觉是找到数据,直接复制到新环境。好,那么开始找数据,很快通过配置文件找到挂载到本地的数据。数据找到了,很懵,之前是将gitlab,redis,postgresql分开部署,而自己打包dockerfile后发现,gitlab本身就包含了redis,postgresql与nginx等服务,并不知道数据需要放在哪里。好了,开始查资料。

遇到问题:

  1. gtlab部署完成后访问返回502 需要修改 /etc/gitlab/gitlab.rb 的域名为容器域名或ip
  2. Gitlab 管理员界面500 需要将之前的/etc/gitlab/gitlab-secrets.json复制到新的gitlab中。

好了,资料有了开始动手,思考许久终于有了思路。

无论什么方式启动,都可以备份,那么将老服务器上gitlab数据备份一遍,导出到本地,再通过nfs传输到腾讯云上,然后docker启动一个和老服务器上版本一致的docker,将备份导入,逐级升级到最新版本。**注意gitlab升级不能跨大版本,比如我的为10.3版本,需要升级到10的最高版本,才能升级11。**升级到最新版本后,再备份一份最新版本数据,导出nfs中。再启动一个最新版本容器,读取nfs中最新版备份,还原。然后配置邮箱,时区,以及备份信息等。定时备份需要linux定时任务配合。

跑了大概一周需要使用自动部署,新版本默认webhooks是不支持外网访问的(不少人踩过坑,但从10到11一直都这么默认),管理员账号修改时报错500,并且之前配置过webhooks的也访问不到,刚开始以为是之前的webhooks出问题导致管理员设置响应500,调试半天无果。资料查过,看到过“/etc/gitlab/gitlab-secrets.json复制到新的gitlab”,但是之前的环境找不到此文件,只能重新逐个升级,升级到10.8.X时,是可以使用的,升级到最新版时该容器内也是可以使用的,备份到最新版容器种却不可以使用,后想到那个json文件,从升级的容器中传入到最新版版本,问题解决!

只挂载了备份与仓库

启动成功后,配置以及挂载,不需要每次启动再修改 1.需要重新下载cron ,开启自动备份 2.需要将本机时区修改为东八区,命令如下 dpkg-reconfigure tzdata 依次选择 file

996.icu

最近的文章

腾讯云TKL自动部署java项目

进入tencenthub镜像仓库https://console.cloud.tencent.com/…

tlk  腾讯云  继续阅读
更早的文章

硬盘空间不足

硬盘空间不足某服务器没隔一段时间经常连接不上登陆服务器查看输入命令cd/u按tab键自动补全,发现会…

继续阅读
0评论