Site Overlay

Ubuntu内网离线安装Gitlab以及恢复备份

需求

服务器从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

发表回复

您的电子邮箱地址不会被公开。

A beliving heart is your magic My heart
欢迎来到Diuut的个人博客,这里是我的一些零零碎碎的知识汇总,希望有能帮到你的内容。 | 蜀ICP备2021011635号-1 | Copyright © 2024 Diuut. All Rights Reserved.