信阳做网站 汉狮网络,广告设计公司入选合作库评分细则,制作网页的软件h开头的,赞赏分享wordpress代码Gitlab全量迁移 一、背景1.前提条件 一、背景
公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法#xff0c;就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地… Gitlab全量迁移 一、背景1.前提条件 一、背景
公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地址需更换为自己的gitlab地址 目标Gitlab: http://new.mygitlab.com 1.前提条件
1Linux主机一台并安装Docker
2服务器磁盘需要能够存储源Gitlab的代码迁移工具会先把代码全部拉到本地然后再推送到目标Gitlab
① 步骤
root 账号登录Linux服务器并拉取迁移工具的镜像
docker pull 镜像② 依次运行以下命令
#获取镜像id
docker images|grep congregate
registry.cn-hangzhou.aliyuncs.com/dockerforkevin/congregate centos-20220312 4bd6a78c0a68 2 months ago 2.3GB#运行容器并在容器中修改/var/run/docker.sock权限
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/hosts:/etc/hosts \
-p 8000:8000 \
-it 4bd6a78c0a68
/bin/bash#容器内部命令
[ps-usera4e8ef2730ed congregate]$sudo chmod 666 /var/run/docker.sock
#按CtrlD退出容器#再次启动容器
docker start container-id
③ 进入容器中添加配置文件
#Linux主机
[rootminikube ~]# docker exec -it container-id /bin/bash
#Docker容器中
[ps-usera4e8ef2730ed congregate]$ mkdir -p data
[ps-usera4e8ef2730ed congregate]$vi data/congregate.conf congregate.conf文件内容
[DESTINATION]
dstn_hostname http://new.mygitlab.com #目标Gitlab仓库地址
dstn_access_token ek04Xy1RbzVpVk5IWnFYYVY3enM #目标Gitlab管理员Token
import_user_id 4
shared_runners_enabled True
project_suffix False
max_import_retries 3
username_suffix gd
mirror_username
max_asset_expiration_time 24[SOURCE]
src_type GitLab
src_hostname http://old.mygitlab.com #源Gitlab仓库地址
src_access_token aW9uQ3B2TlhkWVpwRnNQV2h5SC0 #源Gitlab管理员Token
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 False[APP]
export_import_status_check_time 10
wave_spreadsheet_path wave
mongo_host localhost
mongo_port 27017
ui_port 8000
processes 4④ 获取源仓库的元数据MetaData
#获取源仓库的元数据
[ps-usera4e8ef2730ed congregate]$./congregate.sh list⑤ 通过UI方式创建需要迁移的对象的列表
[ps-usera4e8ef2730ed congregate]$./congregate.sh ui 浏览器方式访问本地:8000端口Projects是Git仓库全选然后点击Stage按钮切换到Groups项目组全选然后点击“Stage”切换到Users用户全选然后点击“Stage” 所有的按钮点击完成以后会在data目录下生成3个json文件
[ps-usera4e8ef2730ed congregate]$ ls -ltr data/staged_*.json
-rw-rw-r-- 1 ps-user ps-user 70439 Mar 12 10:19 data/staged_groups.json
-rw-rw-r-- 1 ps-user ps-user 322311 Mar 12 10:19 data/staged_projects.json
-rw-rw-r-- 1 ps-user ps-user 61408 Mar 12 10:19 data/staged_users.json⑥ 执行迁移
#先迁移Gitlab账户
[ps-usera4e8ef2730ed congregate]$./congregate.sh migrate --skip-group-export --skip-group-import --skip-project-export --skip-project-import --commit
#再迁移Gitlab项目组
[ps-usera4e8ef2730ed congregate]$./congregate.sh migrate --skip-users --skip-project-export --skip-project-import --commit
#最后迁移Gitlab仓库也叫项目这个比较耗时间视源仓库代码量的多少
[ps-usera4e8ef2730ed congregate]$./congregate.sh migrate --skip-users --skip-group-export --skip-group-import --commit参考博客 https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/docs/using-congregate.md#quick-start