centos gitlab更新维护
小樊
41
2025-12-17 11:42:54
CentOS 上 GitLab 的更新与维护手册
一 升级前准备
- 备份数据与配置:执行备份命令创建完整包,并单独备份敏感配置文件。备份不会包含 /etc/gitlab/gitlab.rb 与 /etc/gitlab/gitlab-secrets.json,需手动拷贝保存。可自定义备份目录(如 /home/backups),修改后执行 gitlab-ctl reconfigure 使配置生效。示例:
- 修改备份目录:编辑 /etc/gitlab/gitlab.rb,设置
gitlab_rails['backup_path'] = "/home/backups",然后 gitlab-ctl reconfigure
- 创建备份:
gitlab-rake gitlab:backup:create
- 检查当前版本:
sudo gitlab-rake gitlab:env:info
- 选择目标版本与升级路径:跨大版本升级前,先在测试环境验证,遵循官方升级路径,避免跨多版本直接升级。
- 系统与依赖:确保系统包与依赖(如 policycoreutils、openssh-server、openssh-clients、postfix)处于可用状态;准备好目标版本的 RPM 安装包并校验完整性。
二 标准升级步骤
- 切换维护窗口并停止写入服务(推荐优雅停机):
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
- 如使用内置 Nginx 也可
gitlab-ctl stop nginx
- 执行最终备份:
gitlab-rake gitlab:backup:create
- 执行升级(Omnibus RPM 场景):
sudo rpm -Uvh gitlab-ce-<version>.rpm
- 重新配置与启动:
gitlab-ctl reconfigure
gitlab-ctl restart
- 验证升级结果:
- 命令行:
sudo gitlab-rake gitlab:check
- 管理界面:确认版本号已更新且关键功能可用。
三 升级后验证与常见问题处理
- 数据库迁移:升级后检查并执行后台迁移,确保数据结构与应用一致。
- 查看状态:
sudo gitlab-rake db:migrate:status
- 执行迁移:
sudo gitlab-rake db:migrate
- 500 错误排查:若访问出现 500,多为迁移未完成或数据关系不一致,按上步执行迁移后重启服务。
- 重新配置卡死或报错(Chef 进程占用):
- 查找进程:
ps aux | grep gitlab
- 结束占用进程:
kill -9 <pid>,随后重新 gitlab-ctl reconfigure
- 访问与健康检查:完成迁移与重启后,使用
gitlab-rake gitlab:check 与管理界面进行健康检查。
四 日常维护与优化要点
- 备份策略与恢复演练:
- 定期执行
gitlab-rake gitlab:backup:create,并配置保留策略(如 gitlab_rails['backup_keep_time'])
- 恢复示例:停止写入服务后执行
gitlab-rake gitlab:backup:restore BACKUP=<timestamp>,恢复后 gitlab-ctl start
- 安全与访问控制:
- 仅开放必要端口(如 22/80/443),使用 firewalld 管理规则
- 强制使用 SSH 密钥 认证,禁用密码登录
- 性能与容量优化:
- 硬件建议:至少 4 核 CPU / 4GB 内存,推荐 8–16GB+;使用 SSD
- 配置优化:合理调整 PostgreSQL 连接池/共享缓冲区;启用缓存;必要时引入 对象存储(S3/MinIO) 承载附件与备份
- 架构扩展:高并发与高可用场景使用 HAProxy/Nginx 做负载均衡与多实例部署
- 监控与日志:
- 启用内置监控,结合 Prometheus/Grafana 做可视化
- 定期归档与清理日志,防止磁盘被占满。