gitlab-ce版本:16.7.7
迁移前系统:CentOS7
迁移后系统:Rocky9
一、迁移前准备
1. 完整数据备份
# 创建 GitLab 数据备份(包含数据库、仓库、上传文件等)
gitlab-backup create STRATEGY=copy SKIP=registry,artifacts
# 备份会生成类似:1689060000_2023_07_12_17.7.7_gitlab_backup.tar
2. 配置文件备份
# 备份关键配置文件
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb_`date +%F`
cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json_`date +%F`
cp -R /var/opt/gitlab/nginx/conf /etc/gitlab/gitlab-nginx-conf-backup_`date +%F`
3. 验证备份完整性
# 检查备份文件
ls -lh /var/opt/gitlab/backups/
# 检查备份内容
tar -tf /var/opt/gitlab/backups/*_gitlab_backup.tar | head -n 20
如:tar -tf /var/opt/gitlab/backups/1752461811_2025_07_14_17.7.7_gitlab_backup.tar | head -n 20
二、迁移到新系统(CentOS 8/9 或新服务器)
1. 传输备份文件到新服务器
# 从源服务器传输(使用 SCP)
scp /var/opt/gitlab/backups/*_gitlab_backup.tar root@new-server:/var/opt/gitlab/backups/
# 传输配置文件 scp /etc/gitlab/gitlab*.bak root@new-server:/tmp/
2. 新服务器环境准备(RockyLinux 9)
# 安装依赖
dnf install -y curl policycoreutils wget
# 下载gitlab(示例为17.7.7)
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/9/gitlab-ce-17.7.7-ce.0.el9.x86_64.rpm/download.rpm
# 第一次安装与源服务器相同版本(示例为17.7.7)
dnf install -y gitlab-ce-17.7.7-ce.0.el9.x86_64.rpm
3. 恢复备份数据
# 复制备份文件到正确位置
cp /tmp/gitlab*_`date +%F` /etc/gitlab/
# 恢复配置文件
mv /etc/gitlab/gitlab.rb_`date +%F` /etc/gitlab/gitlab.rb
mv /etc/gitlab/gitlab-secrets.json_`date +%F`
/etc/gitlab/gitlab-secrets.json
# 设置文件权限
chmod 600 /etc/gitlab/gitlab-secrets.json
# 停止相关服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 执行恢复 (替换 TIMESTAMP)
chown git:git /var/opt/gitlab/backups/1752461811_2025_07_14_17.7.7_gitlab_backup.tar
gitlab-backup restore BACKUP=1752461811_2025_07_14_17.7.7



4. 重新配置并验证
# 重新配置 GitLab
gitlab-ctl reconfigure
gitlab-ctl restart
# 检查恢复状态
gitlab-rake gitlab:check SANITIZE=true
# 测试 Web 访问
curl -I http://localhost



1788

被折叠的 条评论
为什么被折叠?



