温馨提示×

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
    按提示选择 shelldocker 等执行器并完成注册。

四 可选 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 版本的配置项可能变化,优先参考官方文档并按需调整。

0