需求
服务器从centos迁移至Ubuntu,原来的gitlab数据需要保留
迁移备份gitlab最推荐的是同版本平行恢复,出问题的概率相对不同版本gitlab而言小得多。但不同平台的gitlab包不一样,需要在不同系统上安装相同版本的gitlab然后再恢复备份。
目录
备份旧版本
先在原服务器上,gitlab保持运行状态,执行备份命令
gitlab-rake gitlab:backup:create
该命令执行后会在 /var/opt/gitlab/backups 路径下生成对应的当前gitlab的完整备份数据。(例:1679122231_2024_06_41_13.9.7_gitlab_backup.tar),这个文件到放到迁移后的服务器对应路径中。
Ubuntu下载gitlab安装包
去官网下载Ubuntu对应的版本的gitlab包,具体版本可以直接去原来的gitlab地址,后面加一个/help,就可以看到具体版本了(例:http://xxx.xxx.xxx.xxx:8020/help)。
这里我查询出我当前版本为GitLab Community Edition 13.9.7。
官网下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
下载页面右上角有search,筛选type选择Deb,系统类型匹配自己当前的ubuntu版本(例:ubuntu/bionic),回车,就可以在下面列表中找到自己的需要的gitlab的Deb包。
Ubuntu安装gitlab包
以下操作我是在root用户下执行的,如果非root用户,注意相关权限问题可能会报错。
离线环境中安装的话首先需要安装依赖安装依赖
sudo apt install -y curl openssh-server ca-certificates postfix
将安装包放到待迁移服务器上,执行安装命令
# Install the dependency packages
sudo dpkg -i <package_name>.deb
#<package_name>为上一步下载的gitlab包名
安装完成以后,会弹出gitlab狐狸的大logo,就代表安装成功了。接下来我先修改自定义的访问地址,注意策略组记得把端口提前打开。
#修改配置文件
sudo vi /etc/gitlab/gitlab.rb
#配置首页地址(大约在第15行)
external_url 'http://xxx.xxx.xxx.xxx:8020'
#重新配置并启动
sudo gitlab-ctl reconfigure
#完成后将会看到如下输出
Running handlers complete
Chef Client finished, 432/613 resources updated in 03 minutes 43 seconds
gitlab Reconfigured!
修改成功后访问刚才设置的地址,第一次进入的时候默认root用户,会让你设置root密码,这里随便设置下就行,反正一会恢复备份后是按照备份前的用户账户密码。
Ubuntu恢复gitlab备份
恢复前先停止相关服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
#将备份文件放到/var/opt/gitlab/backups路径中,给777权限
chmod 777 ********.tar
#执行恢复命令,这里BACKUP后面只需要带时间戳就行,_gitlab_backup.tar就不用了
gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4
后续按照提示输入yes确认继续即刻。
#启动gitlab
gitlab-ctl start
备份流程结束后再次启动gitlab,用旧的账户测试登录下,检查下仓库项目是否完全恢复。over。
相关参考
https://docs.gitlab.com/ee/topics/offline/quick_start_guide.html
https://cloud.tencent.com/developer/article/1622317