温馨提示×

centos怎么集成gitlab

小樊
39
2026-09-21 04:01:37
栏目: 智能运维

在 CentOS 上“集成 GitLab”通常有两种理解:

  1. 在 CentOS 上安装并部署 GitLab(自建 GitLab 服务)
  2. 让 CentOS 上的其他系统(如 Jenkins、Docker、Nginx、LDAP 等)与 GitLab 集成

下面我分别说明,最常见的是第一种:在 CentOS 上安装 GitLab


一、在 CentOS 上安装 GitLab(推荐方式)

1. 系统要求

  • CentOS 7 或 CentOS 8(CentOS 8 已 EOL,建议 CentOS 7 或迁移到 Rocky/Alma)
  • 至少 4GB 内存(2GB 很容易 OOM)
  • 开放端口:80 / 443 / 22

2. 安装依赖

sudo yum install -y curl policycoreutils openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd

防火墙(如有):

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

3. 添加 GitLab 仓库

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

社区版用 gitlab-ce
企业版用 gitlab-ee


4. 安装 GitLab

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

如果是本机测试:

sudo EXTERNAL_URL="http://localhost" yum install -y gitlab-ce

5. 初始化并启动

sudo gitlab-ctl reconfigure
sudo gitlab-ctl status

访问:

http://<服务器IP>

首次登录账号:

  • 用户名:root
  • 密码在:
cat /etc/gitlab/initial_root_password

二、CentOS 与 GitLab 的常见集成方式

1️⃣ GitLab + Jenkins(CI/CD)

  • GitLab 放代码
  • Jenkins 通过 Webhook 触发构建
  • Jenkins 安装 Git 插件
  • GitLab 项目 → Settings → Webhooks

2️⃣ GitLab + Nginx(反向代理)

编辑:

/etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
nginx['enable'] = false

再用系统 Nginx 反代 8080。


3️⃣ GitLab + LDAP(统一登录)

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
  main:
    label: 'LDAP'
    host: 'ldap.example.com'
    port: 389
    uid: 'sAMAccountName'
    bind_dn: 'cn=admin,dc=example,dc=com'
    password: 'password'
    base: 'dc=example,dc=com'
EOS

4️⃣ GitLab Runner(CentOS 上跑 CI)

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-runner
sudo gitlab-runner register

三、常见问题

❌ 内存不足

free -h

解决:加 SWAP 或升配置

❌ 端口冲突

修改:

unicorn['port'] = 8081

四、总结

目标 做法
装 GitLab yum 安装 gitlab-ce/ee
CI/CD GitLab Runner / Jenkins
统一认证 LDAP
高可用 PostgreSQL + Redis 分离

如果你能说清楚:

✅ CentOS 版本
✅ 是想“装 GitLab”还是“接 GitLab”
✅ 和什么系统集成

我可以给你更精确的配置示例

0