GitLab在Debian上有哪些使用技巧
小樊
42
2025-12-17 05:43:52
Debian上高效使用GitLab的实用技巧
一 安装与初始化
- 使用最新稳定版 Debian,先更新系统并安装依赖:sudo apt update && sudo apt install -y curl openssh-server ca-certificates tzdata postfix。
- 添加官方仓库并安装:
- 仓库: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
- 首次配置与启动:编辑 /etc/gitlab/gitlab.rb 设置 external_url,执行 sudo gitlab-ctl reconfigure;如需重启用 sudo gitlab-ctl restart。
- 防火墙放行:如使用 ufw,执行 sudo ufw allow 80,443/tcp && sudo ufw reload。
- 获取初始管理员密码:sudo cat /etc/gitlab/initial_root_password(文件默认 24 小时后自动清除,请及时保存)。
二 安全与邮件配置
- 强制 HTTPS:在 /etc/gitlab/gitlab.rb 中启用 Let’s Encrypt:
- letsencrypt[‘enable’] = true
- letsencrypt[‘auto_renew’] = true
- letsencrypt[‘contact_emails’] = [‘admin@example.com’]
修改后执行 sudo gitlab-ctl reconfigure。
- 自定义或已有证书:在 gitlab.rb 中配置 nginx[‘ssl_certificate’] 与 nginx[‘ssl_certificate_key’],再执行 reconfigure。
- 邮件通知(SMTP):在 gitlab.rb 中启用并填写你的 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。
三 性能与存储优化
- 适度精简工作进程(适合低配或小规模实例):在 /etc/gitlab/gitlab.rb 中调小 Puma 与 PostgreSQL 参数,例如:
- puma[‘worker_processes’] = 1
- puma[‘per_worker_max_memory_mb’] = 512(按内存酌情设置)
- postgresql[‘shared_buffers’] = “128MB”
- postgresql[‘max_worker_processes’] = 2
调整后执行 gitlab-ctl reconfigure。
- 调整 Rails 数据库连接池:如 gitlab_rails[‘db_pool’] = 20(依据并发与内存调整)。
- 使用 SSD、合理设置 vm.swappiness,并启用 Redis 缓存以减轻后端压力。
- 大仓库与高可用:考虑 Gitaly 集群 提升 Git 存储与访问的稳定性与性能。
- 资源基线:至少 2GB 内存 可运行,推荐 4GB+;大规模部署建议 16GB+ 内存 与 SSD。
四 备份恢复与迁移
- 备份:执行 sudo gitlab-rake gitlab:backup:create,备份默认位于 /var/opt/gitlab/backups。
- 迁移要点:
- 在新服务器安装同版本 GitLab;
- 将备份 .tar 文件复制到新服务器的 /var/opt/gitlab/backups;
- 同步 /etc/gitlab/ 下的关键配置(如 gitlab.rb/gitlab-secrets.json);
- 在新服务器执行恢复(备份文件名不含时间戳后缀):
- sudo gitlab-rake gitlab:backup:restore BACKUP=1695041661_2023_09_18_15.1.3
- 重启服务:sudo gitlab-ctl restart。
- 注意:跨大版本恢复可能不兼容,尽量保持 GitLab 版本一致 再迁移。
五 日常运维与CI/CD
- 服务管理:
- 查看状态:gitlab-ctl status;
- 热更新配置:gitlab-ctl reconfigure;
- 重启/停止:gitlab-ctl restart/stop。
- 日志与监控:
- 日志目录:/var/log/gitlab;
- 内置 Prometheus + Grafana 可用于监控资源与性能(按需启用与告警)。
- CI/CD:
- 安装并注册 GitLab Runner,在项目根目录添加 .gitlab-ci.yml 定义流水线;
- 数据库变更纳入发布流程,配合工具(如 Bytebase)进行 SQL 审核与发布。
- 升级与维护:
- 定期升级到最新稳定版以获取 安全补丁 与 性能优化;
- 建立自动备份策略并定期演练恢复流程。