CentOS与GitLab集成方法
小樊
39
2025-12-23 09:07:54
CentOS 与 GitLab 集成实践指南
一 环境准备与安装
- 系统要求:推荐使用 CentOS 7/8,硬件至少 2 核 CPU、4GB 内存、20GB 磁盘,并确保可访问互联网与开放 80/443 端口。
- 安装依赖与基础服务:
sudo yum update -y
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable --now sshd
- 防火墙放行:
sudo yum install -y firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
- 添加 GitLab 仓库并安装(CE 社区版):
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL=“http://your_domain_or_ip” yum install -y gitlab-ce
- 说明:如需 EE 企业版,将仓库与安装包名中的 gitlab-ce 替换为 gitlab-ee。
二 基础配置与启动
- 配置外部访问地址:编辑 /etc/gitlab/gitlab.rb,设置
external_url ‘http://your_domain_or_ip’(如需 HTTPS,改为 https:// 并配置证书)。
- 使配置生效并启动:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 访问与初始化:浏览器打开 http://your_domain_or_ip,首次登录设置管理员密码(用户名 root)。
三 邮件通知与 Runner 集成
- SMTP 邮件(示例为 QQ 企业邮):在 /etc/gitlab/gitlab.rb 中配置
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.exmail.qq.com”
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “your_email@example.com”
gitlab_rails[‘smtp_password’] = “your_password”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_tls’] = true
gitlab_rails[‘gitlab_email_from’] = ‘your_email@example.com’
gitlab_rails[‘smtp_domain’] = “example.com”
执行:sudo gitlab-ctl reconfigure
- GitLab Runner(CI/CD 执行器):
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
sudo gitlab-runner register --url https://YOUR_GITLAB_URL/ --registration-token YOUR_REGISTRATION_TOKEN
按提示选择 shell 或 docker 等执行器并完成注册。
四 可选 Docker 部署与端口映射
- 拉取并运行容器(示例将宿主机 8080/443/2222 映射到容器 80/443/22):
docker pull gitlab/gitlab-ce:latest
docker run --detach \
–hostname gitlab.example.com \
–publish 8080:80 --publish 443:443 --publish 2222:22 \
–name gitlab \
–privileged \
–restart always \
–volume /home/docker/gitlab/config:/etc/gitlab \
–volume /home/docker/gitlab/logs:/var/log/gitlab \
–volume /home/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
- 说明:数据、配置、日志持久化到宿主机目录,便于备份与迁移。
五 安全加固与常见问题
- 安全建议:
- 启用 HTTPS(Let’s Encrypt 或企业 CA),对外仅开放 443,将 80 做跳转;
- 使用 强密码策略 与 2FA,限制管理员 API 与注册;
- 定期 备份与更新(gitlab-rake gitlab:backup:create,配合定时任务)。
- 常见问题排查:
- 访问异常:检查 firewalld/云安全组 是否放行 80/443,以及 external_url 是否与访问方式一致;
- Runner 不可用:确认 Runner 已注册 到正确 URL/Token,并与项目可见性匹配;
- 邮件发送失败:核对 SMTP 参数与密码/授权码,必要时开启 TLS/SSL;
- 版本差异:不同 GitLab 版本的配置项可能变化,优先参考官方文档并按需调整。