温馨提示×

GitLab Linux配置中的最佳实践

小樊
40
2025-11-30 19:10:02
栏目: 智能运维

GitLab Linux 配置最佳实践

一 安装与基础配置

  • 使用受支持的 Ubuntu/CentOS 等发行版,准备至少 4GB RAM20GB+ 存储,并具备 root/sudo 权限。
  • 安装依赖:Debian/Ubuntu 执行 sudo apt-get update && sudo apt-get install -y curl openssh-server ca-certificates tzdata;RHEL/CentOS 执行 sudo yum install -y curl policycoreutils-python openssh-server postfix
  • 添加官方仓库并安装:
    • Ubuntu/Debian:curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashsudo apt-get install gitlab-ce
    • RHEL/CentOS:curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bashsudo yum install gitlab-ce
  • 配置核心参数:编辑 /etc/gitlab/gitlab.rb,设置 external_url 'https://gitlab.example.com';如需自定义端口,也在该文件中调整。
  • 使配置生效:sudo gitlab-ctl reconfigure,必要时 sudo gitlab-ctl start/restart
  • 防火墙放行:仅开放 80/443(以及 22 用于 SSH),如 UFW 执行 sudo ufw allow 'Nginx Full'; sudo ufw allow 'OpenSSH'; sudo ufw enable

二 安全加固

  • 全站 HTTPS:优先使用 Let’s Encrypt 证书,配置 nginx['redirect_http_to_https'] = true,证书路径示例:
    • nginx['ssl_certificate'] = "/etc/letsencrypt/live/example.com/fullchain.pem"
    • nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/example.com/privkey.pem"
  • 访问控制与认证:仅暴露必要端口;强制使用 SSH 密钥 登录;开启 双因素认证(2FA);通过用户/组织权限精细化授权。
  • 系统与网络安全:启用 firewalld/iptables 仅放行 80/443/22;对管理口或敏感网段实施 IP 白名单;限制 root 远程登录;修改默认 SSH 端口并启用登录失败锁定;配置 auditd 审计关键调用,使用 logrotate 管理日志;内核参数开启 SYN 洪水防护、禁止 ICMP 重定向、限制 核心转储
  • 安全运维:定期升级 GitLab 与系统补丁;定期备份并演练恢复;启用 监控与告警(如 Prometheus/Grafana)。

三 性能与高可用

  • 资源基线:至少 4 核 CPU / 4GB 内存,推荐 8 核 / 8GB+;使用 SSD 提升 I/O;中型以上实例建议 16GB+
  • 数据库与缓存:使用最新稳定版 PostgreSQL;典型参数参考:shared_buffers = 内存的 25%–40%max_connections ≈ 并发用户数的 2 倍,并按需调整 work_mem/maintenance_work_mem;启用 Redis 缓存(示例:gitlab_rails['redis_cache_instance'] = "redis://127.0.0.1:6379")。
  • 存储策略:大附件、备份等非核心数据使用 对象存储(如 S3/MinIO) 分离容量与 I/O 压力。
  • 扩展与容灾:通过 HAProxy/Nginx 做负载均衡;数据库主从复制与冗余;定期异地备份;跨地域可用 GitLab Geo 做只读镜像与灾备切换。

四 备份恢复与维护

  • 备份策略:使用内置工具执行定时备份,默认备份目录为 /var/opt/gitlab/backups;定期将备份拷贝至 异地/离线 存储并做恢复演练。
  • 恢复要点:在新环境安装同版本 GitLab,将备份放置到备份目录后执行恢复命令,完成后 sudo gitlab-ctl reconfigure 并校验数据一致性。
  • 变更与升级:升级前 完整备份;遵循官方 升级路径;升级后执行 sudo gitlab-ctl reconfigure 并重启相关服务;持续监控与告警,定期清理无用数据与过期日志。

五 快速检查清单

领域 关键动作 验证方式
安装 官方仓库安装、设置 external_url gitlab-ctl status 正常
端口与防火墙 仅开放 80/443/22 `ss -tulpen
HTTPS 配置 Let’s Encrypt 证书与自动重定向 访问 HTTP 自动跳转 HTTPS
备份 定时备份到 /var/opt/gitlab/backups 并异地留存 最近备份文件存在且可恢复
监控告警 启用 Prometheus/Grafana 与日志告警 告警规则生效、面板有数据
升级 按路径升级、先备份再变更 版本号更新、服务正常

以上清单可作为上线前与日常巡检的参考,确保配置、安全、性能与可用性处于可控状态。

0