GitLab的备份和还原(跨区完整迁移)

     最近需要更换服务器,要将老gitlab完整迁移走,网上找了一些资料很多看着详细都是东拼西凑的跑不下去,经过反复折腾,把相关完整步骤整理出来了,顺利的话1小时可以完成(包括数据传输)


1、进入原docker备份
#查询docker容器ID

docker ps -aq

#进入容器

docker exec -it 8121564110 /bin/bash

#进入备份目录

/var/opt/gitlab/backups

#执行备份命令

gitlab-rake gitlab:backup:create

#查询备份出来的文件

ll /var/opt/gitlab/backups
1718338887_2024_06_14_16.4.1_gitlab_backup.tar

#将文件拷贝到docker外,如果有挂接目录可以直接拷贝到磁盘挂接目录,没有就用docker cp

docker cp 容器ID:/var/opt/gitlab/backups/1718338887_2024_06_14_16.4.1_gitlab_backup.tar /root

#备份配置文件
退出容器命令行exit

docker cp 容器ID:/etc/gitlab/gitlab.rb /root
docker cp 容器ID:/etc/gitlab/gitlab-secrets.json /root

#备份docker镜像
#查看镜像名称

cd /root
docker images
docker save docker.io/gitlab/gitlab-ce:latest > /root/gitlab_240614.tar


#将这四个文件从/root目录传输到远程还原服务器

sftp -P 端口 root@123.45.67.8


#可以在远程服务器创建一个文件夹传到这里面

mkdir -p /root/restore_gitlab


2、远程服务器还原
远程服务器现在/root/restore_gitlab有这几个文件:

cd /root/restore_gitlab
ls


1718338887_2024_06_14_16.4.1_gitlab_backup.tar

gitlab.rb

gitlab-secrets.json

gitlab_240614.tar

#导入镜像(一定要是拷贝过来的不然版本不对可能会失败)

docker load < gitlab_240614.tar

#安装拷贝过来的镜像(一定要是拷贝过来的不然版本不对可能会失败)

docker run -dit --privileged=true -p 9443:443 -p 9980:80 -p 9922:22 --name gitlab --restart always -v /home/gitlab/etc:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/opt:/var/opt/gitlab gitlab/gitlab-ce 
chmod -Rf 755 /home/gitlab

#要等完全启动完,大概5分钟反正要打开登录输入密码能出来
#5分钟后,开始还原
#由于是挂接外部磁盘了,可以直接拷贝到外挂位置(一定要是这个位置不然还原会提示找不到文件)

mv 1718338887_2024_06_14_16.4.1_gitlab_backup.tar /home/gitlab/opt/backups

#还原配置文件(一定要备份,不然第2步要重新来了)

cp /root/restore_gitlab/gitlab.rb /home/gitlab/etc/
cp /root/restore_gitlab/gitlab-secrets.json /home/gitlab/etc/

#查询docker容器ID

docker ps -aq

#进入容器

docker exec -it 34233232 /bin/bash


#停止服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl status

#开始还原
#进入目录找到之前烤入外挂磁盘的备份(目前在容器里)

cd /var/opt/gitlab/backups


#给个权限防止没权限访问

chmod -Rf 755 1718338887_2024_06_14_16.4.1_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1718338887_2024_06_14_16.4.1

#重启

gitlab-ctl restart

#查看服务状态:

gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true

最后打开系统看看把

http ://127.0.0.1

注意root密码是以前的老密码,以前的仓库内容和成员账号都没变

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值