群晖GitLab备份迁移(图文超详细)

GitLab代码库备份迁移

前言

由于公司之前的代码是搭建在分部的群晖docker上的,随着使用人数增多性能已无法满足需求,所以需要将代码库迁移到公司本部的专用服务器上。本文既为笔记,也为分享。

  1. 环境信息。

原环境信息:

在这里插入图片描述

新环境信息:

一台个人主机,系统为Ubuntu server 22.04 LTS 最小化安装并安装openssh和docker

  1. GitLab的迁移需要同版本迁移,还需要依赖psql和redis。
sameersbn/postgresql:12-20200524
sameersbn/redis:4.0.9-1
sameersbn/gitlab:13.12.2

这些容器都需要在新环境创建,版本也都要对应。

  1. 备份原机的代码项目

在gitlab实例的shell中运行备份命令

bundle exec rake gitlab:backup:create RAILS_ENV=production

在这里插入图片描述

需要在gitlab目录运行命令,等待备份成功后会在 /home/git/data/backups/ 目录下生成 **_backup.tar 文件。

在这里插入图片描述

  1. 将备份文件传到新机器上

可以自己选择文件传输方法,我使用的scp传输。先传输到新机器上,后续还要将文件传到新机的docker中。

scp local_file remote_username@remote_host:remote_dir
命令使用自己的信息,输入远程主机的密码后等待传输完成即可!
  1. 目标机上拉取镜像
docker pull sameersbn/postgresql:12-20200524
docker pull sameersbn/redis:4.0.9-1
docker pull sameersbn/gitlab:13.12.2
  1. 部署实例

先部署psql和redis,最后安装gitlab,各参数信息需要和原机上的信息一致。

psql

docker run --name=synology_gitlab_postgresql -d -e 'DB_NAME=gitlab' -e 'DB_USER=gitlab_user' -e 'DB_PASS=gitlab_pass' -e 'DB_EXTENSION=pg_trgm,btree_gist' -v /mnt/d/docker/postgresql:/var/lib/postgresql sameersbn/postgresql:12-20200524

参数信息可以在原机上的docker信息中查询

redis

docker run --name=synology_gitlab_redis -d -e 'REDIS_USER=redis' sameersbn/redis:4.0.9-1

gitlab

docker run --name='synology_gitlab' -d --link synology_gitlab_redis:redisio -v /mnt/d/docker/gitlab/data:/home/git/data -p 30001:22 -p 30000:80 -e 'GITLAB_PORT=30000' -e 'GITLAB_SSH_PORT=30001' --link synology_gitlab_postgresql:db -e 'DB_ADAPTER=postgresql' -e 'DB_HOST=db' -e 'DB_PORT=5432' -e 'DB_NAME=gitlab' -e 'DB_USER=gitlab_user' -e 'DB_PASS=gitlab_pass' -e 'GITLAB_EMAIL=email***@test.com' -e 'GITLAB_BACKUPS=daily' -e 'GITLAB_HOST=*.*.*.*' -e 'GITLAB_SIGNUP=true' -e 'GITLAB_GRAVATAR_ENABLED=false' -e 'GITLAB_SECRETS_SECRET_KEY_BASE=**************' -e 'GITLAB_SECRETS_DB_KEY_BASE=**********' -e 'GITLAB_SECRETS_OTP_KEY_BASE=***********' -e 'SMTP_ENABLED=true'  -e 'SMTP_DOMAIN=smtp.exmail.qq.com' -e 'SMTP_HOST=smtp.exmail.qq.com' -e 'SMTP_PORT=465' -e 'SMTP_USER=email***@test.com' -e 'SMTP_PASS=********' sameersbn/gitlab:13.12.2

带*的是必须修改的:GITLAB_HOST为目标机的内网地址;GITLAB_EMAIL为发送邮件的发送者;KEY信息在原docker上有,可以按原docker信息复制;端口映射的信息可以按需修改;参数格式为 -e '参数',有不需要的参数可以自行删除

在这里插入图片描述

测试gitlab是否部署成功,在浏览器打开 gitlab_ip:30000 ,如果能显示就成功了。

显示gitlab 502也是正常的,因为服务没有完全启动时就会显示502,等服务完全启动后就会显示设置管理员密码,但是不用配置信息,直接开始还原就行。

  1. 新机上还原备份

先将备份文件从宿主机拷贝到gitlab容器中的 /home/git/data/backups/ 目录中。

docker cp 备份文件 container_name:/home/git/data/backups/

使用docker ps 查看容器名

文件拷贝到 backups 目录后,进入 /home/git/gitlab 目录,使用命令进行还原

bundle exec rake gitlab:backup:restore RAILS_ENV=production

在这里插入图片描述

耐心等待还原,出现下图既为成功。

在这里插入图片描述

访问 gitlab_ip:30000 ,此时会显示用户登录页面,而不是设置管理密码的页面。

  1. 外网访问

有固定公网IP可以直接端口映射;没有固定公网IP可以使用阿里或腾讯的ddns。
如果没有公网IP可以租一台带公网IP的云服务器,配置内网穿透;或者直接使用内网穿透厂商的穿透服务。

如果需要配置外网访问的文档,可以评论或者私信我,需要的人多的话我会专门写一篇外网访问的文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值