GITLAB全量迁移(无需进入源GITLAB服务器操作)

背景:

由于公司业务原因,gitlab服务器需要迁移至其他服务器,但是GITLAB服务器的密码被上上一届的人弄丢了,导致无法连接进GITLAB服务器去进行备份迁移,没办法只能走另外一种办法进行迁移,多次实验保证能过!!!!!

完整文档可参考:https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/docs/using-congregate.md#quick-start

 条件:

1.linux主机,centos系统,安装docker环境

2.确保服务器内存能够存储gitlab的代码,迁移会先将代码拉取下来

步骤:

1.直接使用自带的yum源安装docker

1.直接yum装docker:
             yum install docker

2.启动docker服务:
             systemctl start docker.service

3.设置开机自启(这一步可做可不做):
            systemctl enable docker.service

4.查看docker版本,结果会显示服务端和客户端的版本

             docker version

2. 拉取最新迁移工具的镜像

docker pull registry.gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate:rolling-centos

3. 获取镜像id

[root@localhost ~]# docker images
REPOSITORY                                                                                   TAG                 IMAGE ID            CREATED             SIZE
registry.gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate   rolling-centos      256330caf79e        2 days ago          2.26 GB

4.运行容器

docker run \
-v /run/docker.sock:/run/docker.sock \   #  可以提前修改docker.sock的权限,修改为666
-v /etc/hosts:/etc/hosts \   #  引用DNS相关信息
-p 8000:8000 \  #  映射相关端口
-it 256330caf79e \  # 这个为image id
/bin/bash 

5. 修改data/congregate.conf文件内的内容

[DESTINATION]
dstn_hostname = http://192.168.1.XXX   # 目标gitlab地址
dstn_access_token = c3pieURBcnqiwbkuqkxBMVYtVjY=   # 目标gitlab的tonken
import_user_id = 2
shared_runners_enabled = True
project_suffix = False
max_import_retries = 3
username_suffix = gd
max_asset_expiration_time = 24

[SOURCE]
src_type = GitLab
src_hostname = http://192.168.1.XXX  #源gitlab地址
src_access_token = VndSdDdwugooynBLa21YWXF5U1M=  #源gitlab的tonken
src_tier = core
export_import_timeout = 300

[EXPORT]
location = filesystem
filesystem_path = /opt/congregate

[USER]
keep_inactive_users = False
reset_pwd = True
force_rand_pwd = True

[APP]
export_import_status_check_time = 10
mongo_host = localhost
mongo_port = 27017
ui_port = 8000
processes = 4
ssl_verify=True

注意!!!!! gitlab上的tonken不能直接写入到配置文件中,需要进行聚合混析,具体命令如下

./congregate.sh obfuscate

具体实现方法是执行该命令后,将gitlab的tonken输入,会输入一个新的tonken,将新的tonken输入即可

 6. 获取源仓库的数据

[ps-user@e3edb57b7c87 congregate]$ ./congregate.sh  list

7. 通过UI的方式去确定你想要迁移的对象

[ps-user@e3edb57b7c87 congregate]$ ./congregate.sh  ui &

 ip+端口访问会显示以上界面,如果需要全部备份可以全选点击stage按钮,会在容器中的data/目录下生成三个文件,分别是staged_groups.json,staged_projects.json,staged_users.json

 

 8.最后执行迁移

首先先迁移用户

./congregate.sh migrate --skip-group-export --skip-group-import --skip-project-export --skip-project-import --commit

其次是组

./congregate.sh migrate --skip-users --skip-project-export --skip-project-import --commit

最后是项目

./congregate.sh migrate --skip-users --skip-group-export --skip-group-import --commit

具体详情可参考文章

docs/using-congregate.md · master · GitLab.org / Professional Services Automation / Tools / Migration / Congregate · GitLab

最后耐心等待一段时间 即可迁移成功,

还有一点需要注意的是: 提供给配置文件的那两个tonken,必须是管理员admin进行创建的,如果权限不是admin是可能会报错的

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值