15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
31.10.2024

如何在 Ubuntu 上安装 GitLab:完整分步指南

GitLab 是当今最强大的开源 DevOps 平台之一,提供了一套全面的工具,包括基于 Git 的版本控制、持续集成/持续交付 (CI/CD) 管道、问题跟踪和团队协作功能——全部集中在一个平台上。无论您是在管理小型开发团队还是运行企业级软件项目,在 Ubuntu 上自托管 GitLab 都能让您完全控制数据、工作流和基础设施。

本指南将逐步引导您在 Ubuntu 服务器上安装和配置 GitLab Community Edition (CE),从初始系统准备到启用 HTTPS 和管理服务。

前置条件

开始之前,请确保您已准备好以下内容:

  • 运行 Ubuntu 20.04 或 22.04 LTS 的服务器(建议全新安装)
  • 至少 4 GB RAM2 个 CPU 核心(GitLab 建议生产环境至少使用 4 个核心)
  • 对服务器的 Root 或 sudo 访问权限
  • 指向服务器 IP 地址的已注册域名(可选但强烈建议用于 HTTPS)
  • 防火墙中开放端口 80443

> 提示:为了获得最佳 GitLab 性能,请考虑在具有充足 RAM 和 CPU 资源的 VPS 主机计划上部署。AlexHost VPS 计划针对 Linux 工作负载进行了优化,并提供完整的 root 访问权限,是自托管 DevOps 平台(如 GitLab)的理想环境。

步骤 1:更新系统软件包

在安装任何软件之前,确保系统的软件包索引和已安装的软件包完全是最新的至关重要。这可以防止依赖关系冲突,并确保您使用的是最新的安全补丁。

sudo apt update && sudo apt upgrade -y

等待升级过程完成后再继续下一步。

步骤 2:安装所需的依赖项

GitLab 需要多个支持软件包才能正常运行,包括用于安全通信、时区管理和脚本编写的工具。使用以下命令安装它们:

sudo apt install -y curl openssh-server ca-certificates tzdata perl

以下是每个软件包的功能:

软件包用途
curl从网络下载脚本和文件
openssh-server启用对服务器的 SSH 访问
ca-certificates验证 SSL/TLS 证书
tzdata提供时区数据
perlGitLab 内部脚本所需

步骤 3:添加官方 GitLab 存储库

GitLab 维护一个官方软件包存储库,使安装和未来升级变得简单直接。使用以下命令下载并执行存储库设置脚本:

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

此脚本会自动:

  • 检测您的 Ubuntu 版本
  • 将 GitLab 软件包存储库添加到您的 APT 源
  • 导入存储库的 GPG 签名密钥以进行软件包验证

脚本完成后,您的系统就可以直接从官方源安装 GitLab。

步骤 4:安装 GitLab Community Edition

现在使用 apt 软件包管理器安装 GitLab CE。您必须将 EXTERNAL_URL 环境变量设置为用户访问 GitLab 实例的 URL 或 IP 地址。

如果您有域名:

sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ce

如果您使用 IP 地址(例如,用于本地或私有服务器):

sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ce

gitlab.yourdomain.comYOUR_SERVER_IP 替换为您的实际域名或 IP 地址。

> 注意:安装过程可能需要几分钟,因为它会下载并配置所有 GitLab 组件,包括 PostgreSQL、Redis、NGINX 和 Sidekiq。

在安装过程中,GitLab 将:

  • 安装所有捆绑的服务(数据库、缓存、网络服务器等)
  • 根据您提供的 EXTERNAL_URL 进行自我配置
  • /etc/gitlab/ 中生成初始配置文件

步骤 5:运行 GitLab 重新配置

安装后,运行重新配置命令以完成设置、初始化数据库并启动所有 GitLab 服务:

sudo gitlab-ctl reconfigure

此命令从 /etc/gitlab/gitlab.rb 读取配置并应用所有设置。它还会生成 SSL 证书(如果配置了 Let’s Encrypt)、设置数据库架构并启动所有必需的后台服务。

您应该看到一个很长的输出,最后显示类似以下的消息:

gitlab Reconfigured!

步骤 6:在网络浏览器中访问 GitLab

重新配置完成后,打开网络浏览器并导航到您在安装期间指定的 URL:

https://gitlab.yourdomain.com

http://YOUR_SERVER_IP

首次登录

首次访问时,GitLab 将提示您设置管理员密码。设置后,使用以下凭据登录:

  • 用户名:root
  • 密码:您刚刚创建的密码

> 安全提示:首次登录后立即更改默认 root 账户凭据。创建个人管理员账户,并仅将 root 账户限制用于紧急情况。

步骤 7:配置 GitLab 电子邮件通知(可选)

发送电子邮件通知对生产 GitLab 实例至关重要——它启用了账户验证、合并请求更新、CI/CD 警报和密码重置等功能。在主 GitLab 配置文件中配置 SMTP 设置:

sudo nano /etc/gitlab/gitlab.rb

添加或修改以下 SMTP 配置块:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourmailprovider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@yourdomain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

保存文件并应用更改:

sudo gitlab-ctl reconfigure

> 寻找可靠的电子邮件基础设施?AlexHost 提供专业的 电子邮件主机服务,与 GitLab 等自托管应用程序无缝集成,提供稳定的 SMTP 中继和高可交付性。

步骤 8:使用 Let’s Encrypt 启用 HTTPS(推荐)

在任何生产或团队环境中,通过 HTTPS 运行 GitLab 是强烈推荐的。GitLab 内置支持 Let’s Encrypt,这是一个免费的自动化 SSL 证书颁发机构。

> 重要:Let’s Encrypt 要求您的域名可公开访问,并且服务器上的端口 80 是开放的。它不适用于原始 IP 地址。

打开 GitLab 配置文件:

sudo nano /etc/gitlab/gitlab.rb

添加以下配置:

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_admin_email@yourdomain.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] = 30
letsencrypt['auto_renew_day_of_month'] = "*/7"

保存文件并重新配置 GitLab:

sudo gitlab-ctl reconfigure

GitLab 将自动获取并安装您的 SSL 证书,auto_renew 设置确保在过期前自动续期,无需任何手动干预。

> 替代方案:如果您更喜欢独立管理 SSL 证书或需要通配符/多域证书,AlexHost 提供一系列 SSL 证书,可在 GitLab 的 NGINX 设置中手动配置。

步骤 9:管理 GitLab 服务

GitLab 捆绑了自己的服务管理工具,称为 gitlab-ctl。使用以下命令控制 GitLab 服务:

启动 GitLab

sudo gitlab-ctl start

停止 GitLab

sudo gitlab-ctl stop

重启 GitLab

sudo gitlab-ctl restart

检查服务状态

sudo gitlab-ctl status

查看实时日志

sudo gitlab-ctl tail

查看特定服务的日志(例如 NGINX)

sudo gitlab-ctl tail nginx

这些命令对于故障排除和日常维护非常宝贵。status 命令将显示所有 GitLab 子服务的状态,包括 PostgreSQL、Redis、Sidekiq、Puma(网络服务器)和 NGINX。

步骤 10:为您的组织进行初始 GitLab 配置

安装并运行 GitLab 后,现在是时候根据您的团队需求进行配置了。以下是通过 GitLab 网络界面设置的关键领域:

用户管理

导航到 管理区域 → 用户为您的团队成员创建用户账户。您可以配置身份验证方法,包括 LDAP、OAuth 和 SAML,用于企业单点登录。

组和项目

  • 允许您组织相关项目并大规模管理权限
  • 项目是具有自己的问题跟踪器、wiki 和 CI/CD 管道的单个存储库

CI/CD 管道

GitLab 的内置 CI/CD 是其最强大的功能之一。在存储库根目录中创建 .gitlab-ci.yml 文件以定义自动化的构建、测试和部署管道。

存储库设置

在每个项目的 设置 → 存储库部分下配置分支保护规则、合并请求批准和代码审查工作流。

备份配置

通过在 /etc/gitlab/gitlab.rb 中配置以下内容来设置自动备份:

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800  # Keep backups for 7 days

随时使用以下命令运行手动备份:

sudo gitlab-backup create

防火墙配置

如果您在 Ubuntu 服务器上启用了 UFW(简化防火墙),请确保允许 HTTP 和 HTTPS 流量:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

常见问题故障排除

问题解决方案
安装后 GitLab 无法访问检查防火墙规则;验证 EXTERNAL_URL/etc/gitlab/gitlab.rb
15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用