温馨提示×

Debian如何高效使用GitLab

小樊
41
2025-11-23 13:43:03
栏目: 智能运维

Debian上高效使用GitLab的实用指南

一 快速部署与基础配置

  • 更新系统与依赖:执行 sudo apt update && sudo apt upgrade,安装 curl、openssh-server、ca-certificates、tzdata(邮件可选 postfix)。
  • 添加仓库并安装:
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    sudo apt install gitlab-ce
  • 配置与启动:编辑 /etc/gitlab/gitlab.rb,设置 external_url ‘https://your-domain’;执行 sudo gitlab-ctl reconfigure;按需启动/重启 sudo gitlab-ctl start|restart。
  • 防火墙放行:sudo ufw allow 22/tcp,sudo ufw allow ‘Nginx Full’(或放行 80/443)。
  • 可选:已有反向代理时,可关闭内置 Nginx(nginx[‘enable’] = false)后由外部 Nginx 反向代理到 GitLab。

二 安全与邮件通知

  • 启用 HTTPS 与自动续期:在 /etc/gitlab/gitlab.rb 中开启
    letsencrypt[‘enable’] = true
    letsencrypt[‘auto_renew’] = true
    letsencrypt[‘contact_emails’] = [‘admin@example.com’]
    保存后执行 sudo gitlab-ctl reconfigure。
  • SMTP 邮件(示例为端口 587/STARTTLS):
    gitlab_rails[‘gitlab_email_enabled’] = true
    gitlab_rails[‘gitlab_email_from’] = ‘gitlab@example.com’
    gitlab_rails[‘smtp_enable’] = true
    gitlab_rails[‘smtp_address’] = “smtp.example.com”
    gitlab_rails[‘smtp_port’] = 587
    gitlab_rails[‘smtp_user_name’] = “gitlab@example.com”
    gitlab_rails[‘smtp_password’] = “your-password”
    gitlab_rails[‘smtp_domain’] = “example.com”
    gitlab_rails[‘smtp_authentication’] = “login”
    gitlab_rails[‘smtp_enable_starttls_auto’] = true
    gitlab_rails[‘smtp_tls’] = true
    保存后执行 sudo gitlab-ctl reconfigure。
  • 访问与认证:优先使用 SSH 密钥进行 Git 操作;仅开放必要端口(22/80/443);定期升级获取安全补丁。

三 性能与资源优化

  • 资源基线:小型实例建议至少 2 核 CPU / 2–4GB 内存 / 20GB+ 磁盘;生产环境建议 4 核 / 8GB+ / SSD,并启用 Redis 缓存与日志轮转。
  • 工作进程与并发(示例值,按实际调整):
    unicorn[‘worker_processes’] = 2
    sidekiq[‘concurrency’] = 10
    gitlab_rails[‘db_pool’] = 20
    redis[‘maxmemory’] = ‘2gb’
  • 按需精简服务:若不使用内置 CI,可禁用 gitlab_ci[‘enable’] = false 以节省资源。
  • 监控与日志:使用内置 Prometheus/Grafana 监控资源与错误;用 logrotate 管理日志体积,定期清理过期数据。

四 CI/CD 与 Runner 高效实践

  • Runner 安装与注册:
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
    sudo apt-get install gitlab-runner
    在 GitLab 项目/组设置中获取注册令牌,执行 sudo gitlab-runner register,选择 shelldocker 执行器,按需限制 tags 与并发。
  • 流水线示例 .gitlab-ci.yml(Node.js):
    stages:
    • build
    • test
    • deploy
      cache:
      paths:
      • node_modules/
        build:
        stage: build
        script:
      • npm ci --quiet
      • npm run build --if-present
        test:
        stage: test
        script:
      • npm test – --ci
        deploy_prod:
        stage: deploy
        script:
      • ./deploy.sh prod
        only:
      • main
  • 数据库变更纳入发布:将 迁移脚本 作为 CI 作业的一部分,配合审核与回滚策略,确保版本一致性与可重复性。

五 备份恢复与日常维护

  • 备份与恢复:
    • 备份:执行 sudo gitlab-backup create(生成 /var/opt/gitlab/backups/ 时间戳目录)。
    • 恢复:确保版本一致,先停止相关服务(sudo gitlab-ctl stop puma/sidekiq),将备份拷入相同目录,执行 sudo gitlab-backup restore BACKUP=timestamp,完成后 sudo gitlab-ctl reconfigure && sudo gitlab-ctl start。
  • 日常维护:
    • 更新:sudo apt update && sudo apt upgrade gitlab-ce && sudo gitlab-ctl reconfigure。
    • 日志排查:sudo gitlab-ctl tail(或 tail -f /var/log/gitlab/gitlab-rails/production.log)。
    • 高可用与扩展:多实例前置 HAProxy/NGINX 做负载均衡与故障切换,定期演练恢复流程。

0