拿来即用-gitlab迁移

本文介绍了如何使用Python和python-gitlab库进行GitLab服务器的升级,包括用户和仓库的迁移,以及权限分配。同时提到了在升级过程中可能遇到的问题和解决方案,如直接跳过跨多个大版本的升级,以及创建新用户和测试分支的处理。
摘要由CSDN通过智能技术生成

随着时代的发展,在刚入行时想都不敢想的场景,现在都有了非常成熟稳定的解决方案,比如:容器开发,完全解放程序猿运维的手、完全消除环境不一致带来的痛苦,程序猿专注“搬砖”即可,无需再被这些能力之外的事情烦扰,当然了,如果程序员懂“新时代的运维”,也是锦上添花的事情。

从传统的运维到现代化运维转化,万里长城第一步:gitlab升级。由于gitlab服务器是在5年前搭建的,太过古老,对新技术的支持和集成稍差些意思,所以gitlab升级就成了摆在面前的第一个问题。

避坑

如果现有gitlab的版本与最新版本gitlab相隔久远(比如跨了3个大版本),我就不建议逐步升级了,我亲测时遇到了比较棘手的问题,需要充分阅读gitlab的官方文档,限于英文水平和耐心,我果断放弃。

我的方案

概述

  1. python+python-gitlab
  2. 我的代码只做了用户和仓库的迁移
  3. 仓库中给用户的权限分配未实现,需要的朋友可自行完善

直接上代码

pip install python-gitlab
import gitlab
import os
import subprocess

# 在此处替换为原服务器和新服务器的GitLab URL和访问令牌
# 原gitlab
server_source_url = 'http://192.168.111.6:8090/'
server_source_token = '1Hfgag
将svn数据迁移GitLab的过程可以分为以下几个步骤: 1. 首先,需要确认你的GitLab版本。你可以通过运行命令`cat /opt/gitlab/embedded/service/gitlab-rails/VERSION`来查看GitLab的版本。 2. 然后,创建一个备份目录以存储GitLab的数据。你可以使用如下命令创建备份目录并备份原有的数据: ``` cp -r /opt/gitlab/embedded/service/gitlab-rails{,.bak} ``` 此命令会在`/opt/gitlab/embedded/service/gitlab-rails`目录下创建一个备份目录`.bak`,并将原有的数据复制到备份目录中。 3. 接下来,将从SVN迁移的代码复制到GitLab的存储目录下。假设你已经将SVN的代码迁移到了`gitlab-11-2-stable-zh`目录中,你可以使用如下命令将其复制到GitLab的存储目录: ``` /bin/cp -rf gitlab-11-2-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/ ``` 此命令会将`gitlab-11-2-stable-zh`目录下的所有文件和文件夹复制到GitLab的存储目录中。 4. 最后,需要更新GitLab的配置文件以指定备份路径。你可以通过运行如下命令查看当前配置文件中的备份路径: ``` cat -n /etc/gitlab/gitlab.rb | sed -n '299p' ``` 此命令会显示配置文件中第299行的内容,其中包含了备份路径的设置。 请确保将其中的`/gitlab-backup`替换为你自己的备份路径,并保存配置文件。 完成以上步骤后,你的SVN数据就会被成功迁移GitLab。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值