温馨提示×

linux gitlab升级怎么配置

小樊
35
2026-10-19 03:15:29
栏目: 智能运维

下面按常见场景给你一个 Linux 下 GitLab 升级与配置的标准做法(以 Omnibus GitLab(官方包) 为主,这也是最主流的方式)。


一、升级前准备(必须)

1. 查看当前版本

sudo gitlab-rake gitlab:env:info
# 或
cat /opt/gitlab/version-manifest.txt

2. 备份(非常重要)

sudo gitlab-rake gitlab:backup:create

备份文件默认在:

/var/opt/gitlab/backups/

同时备份配置:

sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp -R /etc/gitlab/ssl /etc/gitlab/ssl.bak  # 如果有

二、升级路径(关键)

⚠️ GitLab 不能跨大版本直接升

正确路径示例:

8.x → 8.x 最新
→ 9.x 最新
→ 10.x 最新
→ 11.x 最新
→ 12.x 最新
→ 13.x 最新
→ 14.x 最新
→ 15.x 最新
→ 16.x 最新

官方升级路径工具: https://gitlab.com/gitlab-org/gitlab/-/raw/master/doc/update/versions.md


三、Linux 上升级 GitLab(Omnibus)

1. CentOS / RHEL

sudo yum update
sudo yum install gitlab-ee   # 或 gitlab-ce

2. Ubuntu / Debian

sudo apt update
sudo apt install gitlab-ee   # 或 gitlab-ce

3. 指定版本升级(推荐)

# Ubuntu
sudo apt install gitlab-ee=16.11.0-ee.0

# CentOS
sudo yum install gitlab-ee-16.11.0-ee.0

四、升级后配置

1. 重新配置

sudo gitlab-ctl reconfigure

2. 重启服务

sudo gitlab-ctl restart

3. 检查状态

sudo gitlab-ctl status

五、常见配置(gitlab.rb)

编辑:

sudo vim /etc/gitlab/gitlab.rb

1. 外部访问地址

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

2. 邮件配置

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "gitlab@example.com"

3. HTTPS(自带 NGINX)

nginx['redirect_http_to_https'] = true

六、Docker 方式(补充)

如果你是用 Docker:

docker pull gitlab/gitlab-ee:16.11.0-ee.0
docker stop gitlab
docker rm gitlab
docker run -d --name gitlab -p 443:443 -p 80:80 -v /srv/gitlab:/etc/gitlab gitlab/gitlab-ee:16.11.0-ee.0

七、升级失败常见处理

  • 数据库迁移失败:
sudo gitlab-rake db:migrate
  • 权限问题:
sudo gitlab-ctl stop
sudo chown -R git:git /var/opt/gitlab
sudo gitlab-ctl start

八、建议

✅ 升级前:备份 + 看升级路径
✅ 生产环境:先测试环境验证
✅ 大版本升级:逐个版本升


如果你能告诉我:

  • GitLab 当前版本
  • Linux 发行版(Ubuntu / CentOS / 其他)
  • 安装方式(Omnibus / Docker / 源码)

我可以直接给你精确到命令的升级方案。

0 踩