首页 > 其他分享 >congregate迁移gitlab数据

congregate迁移gitlab数据

时间:2024-03-29 22:11:59浏览次数:18  
标签:ps -- gitlab May congregate user 迁移

项目地址:https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/

congregate 是一款 gitlab 官方推出的数据迁移工具,可以方便的把其他 SCM 系统的项目迁移到 gitlab 实例

image-20220719084615976

本次测试主要是源gitlab实例迁移到目标gitlab实例。

安装 congregate

docker 安装

# 拉取镜像
docker pull registry.gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate:rolling-debian

docker run \
--name congregate \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/hosts:/etc/hosts \
-p 8000:8000 \
-itd 4bd6a78c0a68 \
/bin/bash
  • 其中 4bd6a78c0a68 为 registry.gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate:rolling-debian 镜像 id,使用命令 docker images 获得;也可直接使用镜像名

配置 congregate

# 首先进入容器
docker exec -it congregate /bin/bash
  • 如无特殊说明,后面的所有命令操作均在此容器中进行

开始配置

./congregate.sh configure
  • 根据提示填写目标实例与源实例地址以及TOKEN信息,然后其他设置无特殊情况按默认即可

  • 配置完成后会生成配置文件 ./data/congregate.conf,可手动修改,  

  • 如果执行失败,手动创建

    mkdir -p data
    vi data/congregate.conf

    配置信息:

    [DESTINATION]
    dstn_hostname = http://10.10.10.61
    dstn_access_token = QnpyOVh6c3M3VVZCdlVBVHpkcWc=
    import_user_id = 1
    shared_runners_enabled = False
    project_suffix = False
    max_import_retries = 3
    username_suffix = migrated
    mirror_username = 
    max_asset_expiration_time = 24
    
    [SOURCE]
    src_type = GitLab
    src_hostname = http://10.10.10.60
    src_access_token = amRTZnhEWHhDR3M2OGhRemY4NWs=
    src_tier = ultimate
    export_import_timeout = 3600
    
    [EXPORT]
    location = filesystem
    filesystem_path = /opt/congregate
    
    [USER]
    keep_inactive_users = True
    reset_pwd = False
    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

    验证配置

    ./congregate.sh validate-config

     

    拉取源实例数据

./congregate.sh list

完成后会在 ./data/ 目录下生成数据

  • groups.json:组数据
  • projects.json:项目数据
  • users.json:用户数据
    ps-user@7f582c3cd44f:/opt/congregate$ ls -l ./data/
    total 48
    -rw-r--r-- 1 ps-user ps-user   705 May 10 01:48 congregate.conf
    -rw-r--r-- 1 ps-user ps-user  6303 May 10 01:49 groups.json
    drwxr-xr-x 1 ps-user ps-user   161 May 10 01:49 logs
    -rw-r--r-- 1 ps-user ps-user 10525 May 10 01:49 projects.json
    drwxr-xr-x 2 ps-user ps-user     6 May  2 19:45 reg_tuples
    drwxr-xr-x 2 ps-user ps-user     6 May  2 19:45 results
    -rw-r--r-- 1 ps-user ps-user     2 May 10 01:49 staged_groups.json
    -rw-r--r-- 1 ps-user ps-user     2 May 10 01:49 staged_projects.json
    -rw-r--r-- 1 ps-user ps-user     2 May 10 01:49 staged_users.json
    -rw-r--r-- 1 ps-user ps-user  8518 May 10 01:49 users.json

    启动图形界面,选择迁移数据

  • ./congregate.sh ui

    访问地址:http://ip:8000

    直接选择所有组,然后点击 stage,程序会自动管理相关账号:

操作完成后,回到容器,使用 ctrl+z 停止 ui 界面,这时候可以看到已经把需要迁移的数据写入到 ./data/staged_ 开头的文件中了:

ps-user@7f582c3cd44f:/opt/congregate$ ls -l ./data/staged*
-rw-r--r-- 1 ps-user ps-user 6838 May 10 01:52 ./data/staged_groups.json
-rw-r--r-- 1 ps-user ps-user 2885 May 10 01:52 ./data/staged_projects.json
-rw-r--r-- 1 ps-user ps-user 6118 May 10 01:55 ./data/staged_users.json

迁移数据

可以使用以下命令一次完成所有组、用户、项目迁移,

./congregate.sh migrate --commit
  • 加 --commit 才真正迁移,未加此参数时只会 dry-run

注意:官方不建议这样做,因此这里我们选择以下分步方式完成迁移

迁移用户

./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
  • 如果加上 --stream-groups 使用新版 migrate_group 功能,迁移数据更全

迁移项目

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


迁移时间太长不需要一直守着,通过迁移日志log/congregate,可以看到最终的结果






标签:ps,--,gitlab,May,congregate,user,迁移
From: https://www.cnblogs.com/colder/p/18104701

相关文章

  • 【GitLab】Ubuntu使用宝塔安装GitLab最新社区版
    首先在Ubuntu安装宝塔面板在官网可以找到脚本一键安装安装GitLab社区版然后在宝塔面板的“软件商店”里面找到GitLab最新社区版12.8.1一键安装安装过程中可能出现以下问题:1.卡在ruby_block[waitforlogrotateservicesocket]actionrun解决办法:在Ubuntu终端中运行......
  • 如何在极狐GitLab 配置 邮件功能
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。本文主要讲述了在极狐GitLab用户找回密码、流水线失败等需要提醒时发送邮......
  • java postgres单体库迁移postgres集群库java
    packagecom.slsl.digital.twin.manage.controller.project;importcom.google.common.collect.Lists;importcom.slsl.digital.twin.common.utils.CollectionUtils;importjava.sql.*;importjava.util.*;importjava.util.stream.Collectors;publicclassTest{......
  • docker 安装jenkins和gitlab
    安装jenkins#下载镜像dockerpulljenkins/jenkins#创建文件夹mkdir-p/home/jenkins_home#权限chmod777/home/jenkins_home#启动dockerrun-d-uroot-p9095:8080-p50000:50000--namejenkins-v/home/jenkins_home:/var/jenkins_home-v/etc/localtime:/etc......
  • gitlab私有化搭建
    记录一下,防止忘记前置依赖安装:sudoyuminstallcurlpolicycoreutilsopenssh-serveropenssh-clientssudosystemctlenablesshdsudosystemctlstartsshdsudoyuminstallpostfixsudosystemctlenablepostfixsudosystemctlstartpostfix1、安装命令(在线下载)......
  • Gitlab 实现仓库完全迁移,包括所有提交记录、分支、标签
    1方案一:命令cd<项目目录>gitfetch--allgitfetch--tagsgitremoterenameoriginold-origin#可以不保留gitremoteaddoriginhttp://***(项目的新仓库地址)#gitremoteset-urlorigin<项目的新仓库地址>gitpushorigin--allgitpush--tags有多个分支的话......
  • 为什么SOTA网络在你的数据集上不行?来看看Imagnet结果的迁移能力研究
     论文通过实验证明,ImageNet上的模型并不总能泛化到其他数据集中,甚至可能是相反的,而模型的深度和宽度也会影响迁移的效果。 如果需要参考,可选择类别数与当前任务相似的数据集上的模型性能。论文通过大量的实验来验证猜想,虽然没有研究出如通过数据集间的某些特性来直接判断模型......
  • Docker Gitlab使用方法
    下载dockerpullgitlab/gitlab-ce运行dockerrun\--publish443:443--publish80:80--publish22:22\--namegitlab\-v/data/gitlab/config:/etc/gitlab\-v/data/gitlab/logs:/var/log/gitlab\-v/data/gitlab/data:/var/opt/gitlab\gitla......
  • Windows的Linux子系统迁移
    默认Windows的Linux子系统(WSL)安装的C盘,如果有用作Docker镜像制作很容易磁盘不够用。可采取如下步骤迁移(以下在WindowsPowerShell中进行的,但在CMD.exe中执行效果相同):1、执行一下命令查看Linux子系统的发行版名称(distroname)PSD:\>wsl-l-vNAME......
  • 【数据库】如何利用Python中的petl将PostgreSQL中所有表的外键删除,迁移数据,再重建外键
    一、简介在数据库管理中,外键是一种重要的约束,用于确保数据的一致性和完整性。然而,在某些情况下,我们可能需要删除或修改外键。本文将介绍如何使用Python中的petl库将PostgreSQL中所有表的外键删除,迁移数据,并重新建立外键。二、安装petl和psycopg2首先,我们需要安装petl和psycopg2......