在 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 账户启用最小权限与专用令牌。