温馨提示×

GitLab与Debian如何集成

小樊
45
2025-12-07 07:48:03
栏目: 智能运维

在 Debian 上集成 GitLab 的实操指南

一 环境准备与安装

  • 更新系统并安装依赖:sudo apt update && sudo apt upgrade -y;sudo apt install -y curl openssh-server ca-certificates tzdata perl。
  • 安装邮件服务(可选但推荐):sudo apt install postfix,安装时选择“Internet Site”。
  • 添加 GitLab 官方仓库并安装:curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash;随后执行 sudo EXTERNAL_URL=“http://your_domain_or_ip” apt-get install gitlab-ce。
  • 首次访问 http://your_domain_or_ip,使用管理员账户(通常为 root)设置密码。

二 核心配置与网络访问

  • 配置外部地址:编辑 /etc/gitlab/gitlab.rb,设置 external_url ‘https://your_domain’(建议使用域名与 HTTPS)。
  • 使配置生效:sudo gitlab-ctl reconfigure;必要时 sudo gitlab-ctl restart。
  • 防火墙放行:sudo ufw allow 80/tcp;sudo ufw allow 443/tcp;sudo ufw reload。
  • 反向代理与证书(两种常见方式,二选一或并存):
    • 方式 A(内置 Nginx):在 gitlab.rb 中开启 nginx[‘enable’] = true,配置 letsencrypt 自动证书或手动放置证书后执行 reconfigure。
    • 方式 B(外部 Nginx):在 gitlab.rb 中设置 nginx[‘enable’] = false,配置外部 Nginx 反向代理到 http://127.0.0.1:8080(GitLab 默认 Puma 端口),示例:
      • server { listen 80; server_name your_domain; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
      • 启用站点并重载:sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/;sudo nginx -t;sudo systemctl reload nginx。
    • 证书获取:可使用 certbot(sudo apt install certbot python3-certbot-nginx;sudo certbot --nginx -d your_domain)或 GitLab 内置 Let’s Encrypt 功能。

三 CI/CD 集成与 Runner 配置

  • 安装 GitLab Runner(Debian/Ubuntu 常见方式):curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash;sudo apt-get install gitlab-runner。
  • 注册 Runner:在 GitLab 项目或实例级 Settings → CI/CD → Runners 获取注册命令与令牌,执行后选择执行器(如 shell、docker、kubernetes)。
  • 启动与开机自启:sudo systemctl daemon-reload;sudo systemctl start gitlab-runner;sudo systemctl enable gitlab-runner。
  • 示例 .gitlab-ci.yml(可按需扩展):
    • stages: [build, test, deploy]
    • build: stage: build script: - echo “Building…” artifacts: paths: [build/]
    • test: stage: test script: - echo “Running tests…”
    • deploy: stage: deploy script: - echo “Deploying…” only: [master]
  • 提交到仓库后,在 Pipelines 页面查看与触发。

四 安全加固与运维要点

  • 资源建议:生产环境推荐至少 4–8 GB 内存40 GB+ 磁盘,并启用监控告警。
  • 备份与恢复:使用 gitlab-backup create 创建备份;恢复时使用 gitlab-backup restore 并在恢复前停止相关服务。
  • 日志与排障:关键日志位于 /var/log/gitlab(如 nginx、gitlab-rails、sidekiq),结合 sudo gitlab-ctl tail 实时查看。
  • 升级与维护:遵循 GitLab 官方升级路径分批升级,升级前做好全量备份与演练。
  • 合规与访问控制:开启 2FA、限制 SSH/RDP 来源 IP、为管理员与 CI 账户启用最小权限与专用令牌。

0