CentOS 上 GitLab 安全升级技巧
一 升级前的关键准备
sudo gitlab-rake gitlab:backup:create。同时备份配置文件 /etc/gitlab/gitlab.rb 与 /etc/gitlab/gitlab-secrets.json。sudo gitlab-rake gitlab:env:info、sudo gitlab-ctl status。sudo yum update;确保磁盘空间、I/O、备份窗口充足。二 标准升级步骤 Omnibus 包管理
sudo gitlab-ctl stop unicorn、sudo gitlab-ctl stop sidekiq、sudo gitlab-ctl stop nginx。sudo yum update gitlab-ce(或 dnf update gitlab-ce)。sudo yum install gitlab-ce-<version>(将 sudo gitlab-ctl reconfigure,随后 sudo gitlab-ctl restart。sudo gitlab-rake gitlab:env:info,检查服务 sudo gitlab-ctl status,必要时运行 sudo gitlab-rake gitlab:check。三 升级路径与版本选择技巧
yum --showduplicates list gitlab-ce 列出仓库中可用版本,再按需选择中间版本逐步升级。四 常见坑位与快速修复
upstream gitlab-workhorse {
server unix:/var/opt/gitlab/gitlab-workhorse/sockets/socket;
}
修改后执行 nginx -s reload。sudo gitlab-rake db:migrate:status 查看状态,必要时 sudo gitlab-rake db:migrate 完成迁移。ps aux | grep gitlab,必要时终止相关 PID 后再 gitlab-ctl reconfigure。sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart,再用 gitlab-rake gitlab:env:info 与 gitlab-ctl status 校验。五 回滚与最小化停机策略
sudo yum downgrade gitlab-ce-<old_version>),回退后执行 sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart。sudo gitlab-rake gitlab:backup:restore(按提示选择备份文件),恢复后 sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart。