温馨提示×

linux下gitlab怎么配置

小樊
33
2026-10-04 11:52:48
栏目: 智能运维

在 Linux 下配置 GitLab,通常分为 安装 GitLab、基础配置、常用设置 几个部分。下面以 最常用、最稳定的方式:Omnibus 包(官方一键安装) 为例说明(以 Ubuntu / CentOS 为主)。


一、环境准备

1. 系统要求

  • 内存:至少 4GB(推荐 8GB)
  • 系统:Ubuntu 20.04/22.04 或 CentOS 7/8
  • 已配置 hostname(如 gitlab.example.com)
sudo hostnamectl set-hostname gitlab.example.com

二、安装 GitLab(Omnibus)

Ubuntu

sudo apt update
sudo apt install -y curl openssh-server ca-certificates

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

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

CentOS

sudo yum install -y curl policycoreutils-python openssh-server

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

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

安装完成后会自动启动。


三、基础配置

1. 主配置文件

sudo vim /etc/gitlab/gitlab.rb

常见配置项:

external_url 'http://gitlab.example.com'

# 修改端口(可选)
# external_url 'http://gitlab.example.com:8080'

# 邮箱配置(重要)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "you@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "you@qq.com"

2. 重新加载配置

sudo gitlab-ctl reconfigure

四、常用管理命令

sudo gitlab-ctl status        # 查看状态
sudo gitlab-ctl start         # 启动
sudo gitlab-ctl stop          # 停止
sudo gitlab-ctl restart       # 重启
sudo gitlab-ctl tail          # 查看日志

五、初始登录

1. 获取 root 密码

sudo cat /etc/gitlab/initial_root_password

浏览器访问:

http://gitlab.example.com

使用:

  • 用户名:root
  • 密码:上面文件中的内容

⚠️ 该密码 24 小时后会被删除


六、HTTPS 配置(推荐)

使用自带 Nginx + 证书

external_url 'https://gitlab.example.com'

nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"

然后:

sudo gitlab-ctl reconfigure

七、防火墙 & 端口

sudo ufw allow 80
sudo ufw allow 443

或 CentOS:

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

八、GitLab Runner(CI/CD)

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner

注册 Runner:

sudo gitlab-runner register

九、常见问题

1. 访问 502

  • 内存不足
  • 端口冲突
  • gitlab-ctl reconfigure 未执行

2. 修改端口

external_url 'http://IP:8090'

如果你愿意,可以告诉我:

  • 使用 Ubuntu 还是 CentOS
  • 是否需要 HTTPS / 邮件 / CI
  • 是 内网使用还是公网

我可以直接给你一份「可复制的完整配置」。

0 踩