CentOS7安装Gitlab并还原历史数据


1. 安装 GitLab

1.1 更新并安装依赖包

在新服务器上执行以下命令,更新系统并安装必要的依赖包:

sudo yum update -y
sudo yum install -y curl policycoreutils perl

1.2 安装 OpenSSH 服务

安装并启动 SSH 服务,以便远程管理:

sudo yum install -y openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd

1.3 安装 Postfix(可选)

安装并启用 Postfix 邮件服务(如果 GitLab 需要发送邮件):

sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix

1.4 添加 GitLab 仓库并安装 GitLab

从 GitLab 官方仓库下载并安装 GitLab CE(社区版):

wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-16.5.1-ce.0.el7.x86_64.rpm
sudo yum install gitlab-ce-16.5.1-ce.0.el7.x86_64.rpm

1.5 配置 GitLab

编辑配置文件:

sudo vi /etc/gitlab/gitlab.rb

找到:

external_url 'http://gitlab.example.com'

修改为你的 IP+端口,例如:

external_url 'http://xxx.xxx.xxx.xxx:xxxx'

保存后执行:

sudo gitlab-ctl reconfigure

1.6 开放防火墙端口(如果有防火墙)

如果需要,开放 GitLab 服务的端口(例如 2701):

sudo firewall-cmd --permanent --add-port=2701/tcp
sudo firewall-cmd --reload

2. 恢复关键配置文件

必须从旧服务器拷贝过来的两个文件:

  • /etc/gitlab/gitlab.rb
  • /etc/gitlab/gitlab-secrets.json

假设它们在新服务器 /usr/local/gitlab/old/ 目录:

# 替换文件
sudo cp /usr/local/gitlab/old/gitlab.rb /etc/gitlab/gitlab.rb
sudo cp /usr/local/gitlab/old/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json

# 设置权限
sudo chown root:root /etc/gitlab/gitlab.rb
sudo chown root:root /etc/gitlab/gitlab-secrets.json
sudo chmod 600 /etc/gitlab/gitlab.rb
sudo chmod 600 /etc/gitlab/gitlab-secrets.json

3. 重新配置 GitLab(应用配置文件)

sudo gitlab-ctl reconfigure

4. 启动 PostgreSQL(如果未自动启动)

确认数据库服务是否启动:

sudo gitlab-ctl status

如果 PostgreSQL 没启动,可以执行:

sudo gitlab-ctl start postgresql

5. 准备备份文件

将旧服务器的备份文件复制到新服务器:

默认存放目录是:

/var/opt/gitlab/backups/

例如:

1754527017_2025_08_07_16.5.1_gitlab_backup.tar

确认文件已存在:

ls -lh /var/opt/gitlab/backups/

6. 执行还原

  1. 停止相关服务(避免数据写入冲突)
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
  1. 执行还原命令
sudo gitlab-rake gitlab:backup:restore BACKUP=1754527017_2025_08_07_16.5.1

注意:只写数字时间戳部分即可(不要带 .tar 后缀)。

  1. 还原完成后重启服务
sudo gitlab-ctl start

7. 验证 GitLab

  1. 打开浏览器访问:
http://xxx.xxx.xxx.xxx:2701
  1. 登录并确认项目、用户、代码仓库等是否恢复正常。

8. 额外提示

  • 如果 GitLab 页面打不开,可以看日志:
  sudo gitlab-ctl tail
  • 如果数据库连接错误,先确认 PostgreSQL 服务启动。

  • 如果上传文件、头像、CI 缓存等缺失,需要确认 uploads、artifacts、packages 等目录是否随备份恢复。


文章作者: YoonaDa
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 YoonaDa !
  目录