29.8 GitLab Enterprise Edition 部署

GitLab EE 在 CE 版本基础上提供额外的企业级功能。

安装 GitLab EE

# pkg install gitlab-ee

或使用 Ports 安装:

# cd /usr/ports/www/gitlab/
# make FLAVOR=ee install clean

该 Port 同时包含 GitLab CE(社区版);如果要安装 EE(企业版),必须指定参数 FLAVOR=ee

安装完成后,查看安装包说明,了解后续需完成的配置步骤。

# pkg info -D gitlab-ee

GitLab 的 FreeBSD 版本配有维护者提供的完整安装说明,请参阅:https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/17.8-freebsd.md

如需赞助该开发者,可访问:https://www.patreon.com/mfechner_gitlab_freebsd

启动服务

安装完成后,需启动相关服务。

首先将 GitLab 服务设置为开机自启:

# service gitlab enable

PostgreSQL 数据库配置

GitLab 需使用 PostgreSQL 数据库。对于 PostgreSQL 数据库的版本要求参见 GitLab installation requirements — PostgreSQL

请参考本书其他相关章节完成 PostgreSQL 数据库部署。

数据库与用户初始化

创建 GitLab 使用的数据库和用户:

数据库扩展配置

为 GitLab 数据库创建必要的扩展:

Redis 缓存服务配置

Redis 是开源的内存数据结构存储系统,GitLab 将其用作缓存和会话存储。Redis 已自动作为依赖项安装。

查看安装后信息:

Redis 相关文件结构:

配置 socket

配置 Redis 使用 UNIX socket 通信:

配置服务

设置 Redis 服务开机启动:

重启 Redis 服务:

配置用户权限

将用户 git 添加到 redis 用户组,以允许 GitLab 访问 Redis:

Git 环境配置

GitLab 的核心组件包括:

组件
说明

Puma

GitLab 使用的 Web 应用服务器

Gitaly

负责 Git 仓库存储和访问的服务

Sidekiq

后台任务处理队列

GitLab Workhorse

智能反向代理,处理 HTTP 请求

配置 Git 环境:

文件结构:

配置 GitLab

配置文件路径在 /usr/local/www/gitlab

调整 GitLab 负载

查看系统的 CPU 核心数量:

编辑 /usr/local/www/gitlab/config/puma.rb 文件,将 workers 3 改为上述输出的值,即改为 workers 16

数据库连接配置

编辑 /usr/local/www/gitlab/config/database.yml 文件,将 password: "secure password" 修改为 password: "password"password 是上述设置的数据库密码)。

GitLab 需要写入权限来创建符号链接:

初始化 GitLab 数据库和相关配置:

撤销之前授予的权限:

检查 GitLab 及其环境是否配置正确:

如果使用 corepack(Node.js),将 package.json 文件的属主更改为 git 用户:

设置 Python 版本,设置前先用 ls 查看:

在确认版本后,以 git 用户身份设置 Yarn 使用指定的 Python 解释程序:

编译资源,以 git 用户身份在 GitLab 目录安装生产依赖并使用 lockfile 文件:

以 git 用户身份在生产环境中编译 GitLab 资产,同时跳过数据库和存储验证:

将 PostgreSQL 用户 git 设置为非超级用户:

启动 GitLab 服务:

Nginx

Nginx 是高性能 Web 服务器和反向代理,GitLab 将其用作前端 Web 服务器。

请参考其他章节安装 Nginx。

配置 /usr/local/etc/nginx/nginx.conf 文件

编辑 /usr/local/etc/nginx/nginx.conf 文件,找到:

修改如下以包含 GitLab 提供的 Nginx 配置文件:

目录结构:

配置服务

设置 Nginx 在系统启动时自动启动:

启动 Nginx 服务:

配置 GitLab Pages

GitLab Pages 是 GitLab 提供的静态网站托管服务。配置 GitLab Pages:

目录结构:

启动服务

启动 GitLab Pages 服务:

检查配置

以 git 用户身份检查 GitLab 生产环境配置:

平台访问与初始化

重启 GitLab 服务:

在浏览器中输入服务器 IP 并回车,例如本示例为 192.168.197.128。请填写电子邮箱并设置密码(至少 8 位,需包含复杂字符)。

技巧

上述示例中的 192.168.197.128 为占位符,需要替换为实际的值。

GitLab 登录页

登录:

登录 GitLab
GitLab 主页

语言环境配置

点击头像,进入“Preferences”,找到“Localization”,选择“简体中文”,随后点击“Save changes”保存设置:

修改 GitLab 界面语言

许可证激活(仅供学习参考)

警告

以下操作涉及生成非授权许可证,可能违反 GitLab 最终用户许可协议(EULA)。此部分内容仅供个人学习研究参考,严禁用于任何生产环境或商业用途。本书作者及出版方不承担因滥用本节内容而产生的任何法律责任。请支持正版:购买 GitLab 许可证

安装 gitlab-license(gem 是 Ruby 包管理器,已作为依赖自动安装):

创建许可证目录:

将以下内容写入 gitlab-license/license.rb 文件:

使用 Ruby 执行 license.rb 脚本:

备份旧的公钥:

查看目录下的文件。该目录下生成了三个文件:

用新生成的公钥替换原有公钥:

查看公钥:

访问 http://192.168.197.128/admin/application_settings/general(请替换为实际的 IP 地址),点击“添加许可证”,随后在“请输入许可证密钥”框中粘贴 GitLabBV.gitlab-license 文件中的内容:

激活 GitLab
激活 GitLab

参考文献

外部项目导入配置

打开 http://192.168.197.128/admin,点击“通用”,选择右侧“导入和导出设置”,选择所需的项目,保存。

GitLab 通用设置
GitLab 导入和导出设置
GitLab 外部项目导入配置

参考文献

  • 李俊才. CI/CD 笔记.Gitlab 系列:2024 更新后 - 设置 GitLab 导入源[EB/OL]. (2024-03-11)[2026-03-26]. https://bbs.huaweicloud.com/blogs/423539. 说明 2024 版 GitLab 中配置外部项目导入源的操作步骤。

故障排除与未竟事宜

日志

  • /var/log/nginx/gitlab_error.log

  • /var/log/nginx/error.log

  • /var/log/gitlab_pages.log

  • /var/log/gitlab-shell/gitlab-shell.log

500: We're sorry, something went wrong on our end

查看 GitLab 服务的当前状态:

如果服务运行状态正常且错误日志无异常,可能是内存不足。显示内核环缓冲区消息:

如果仍然出现 500 错误,建议检查系统资源(内存和交换空间)配置。

参考文献

最后更新于