温馨提示×

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 做可视化
    • 定期归档与清理日志,防止磁盘被占满。

0