尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式) 本文详细介绍在 Ubuntu 26.04 系统上通过 Omnibus 包方式安装 GitLab CE 的完整过程适用于本地部署和私有化部署场景。## 一、环境说明### 1.1 系统环境- **操作系统**Ubuntu 26.04 (Resolute Raccoon)- **内存**建议 4GB 以上本文环境 30GB- **CPU**建议 2 核心以上本文环境 8 核心- **磁盘**建议 50GB 以上可用空间### 1.2 GitLab 版本- **版本**GitLab CE 18.9.2- **安装方式**Omnibus 包官方推荐- **非 Docker**原生系统服务方式部署---## 二、安装前准备### 2.1 安装系统依赖GitLab 需要以下基础依赖bashsudo apt updatesudo apt install -y curl openssh-server postfix **说明** - curl用于下载文件和访问 HTTP 资源 - openssh-server提供 SSH 访问功能 - postfix用于发送通知邮件可选---## 三、配置 GitLab 软件源### 3.1 添加 GPG 密钥bash# 下载 GPG 密钥curl -fsSL https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-ce.gpg# 设置密钥权限sudo chmod 644 /usr/share/keyrings/gitlab-ce.gpg### 3.2 添加软件源清华镜像由于 Ubuntu 26.04 是开发版本官方源尚未支持需要使用 Ubuntu 24.04 (noble) 的源。推荐使用清华大学镜像源加速下载bashsudo bash -c cat /etc/apt/sources.list.d/gitlab-gitlab-ce.sources EOFTypes: debURIs: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/noble/Suites: nobleComponents: mainArchitectures: amd64Signed-By: /usr/share/keyrings/gitlab-ce.gpgEOF **注意**Ubuntu 26.04 使用新的 deb822 源格式需要使用 .sources 后缀文件。### 3.3 更新软件源bashsudo apt update---## 四、安装 GitLab CE### 4.1 执行安装bashsudo EXTERNAL_URLhttp://你的服务器IP apt install -y gitlab-ce **说明** - EXTERNAL_URL设置 GitLab 的访问地址 - 安装包大小约 1.4GB请确保网络畅通 - 使用清华镜像源下载速度可达 20MB/s 以上### 4.2 安装过程说明安装过程中会自动完成以下操作1. 解压 GitLab 包约 4GB 空间2. 创建 git、gitlab-psql、gitlab-www 等系统用户3. 配置 Redis、PostgreSQL、Nginx 等组件4. 初始化服务配置---## 五、配置 GitLab### 5.1 修改配置文件GitLab 的主配置文件位于 /etc/gitlab/gitlab.rbbash# 编辑配置文件sudo vim /etc/gitlab/gitlab.rb### 5.2 常用配置项ruby# 外部访问地址external_url http://192.168.1.100# Nginx 配置nginx[listen_port] 80nginx[listen_https] false# GitLab 数据目录git_data_dirs({default { path /var/opt/gitlab/git-data }})# 邮件通知配置可选gitlab_rails[smtp_enable] truegitlab_rails[smtp_address] smtp.example.comgitlab_rails[smtp_port] 587gitlab_rails[smtp_user_name] gitlabexample.comgitlab_rails[smtp_password] your_passwordgitlab_rails[smtp_domain] example.comgitlab_rails[smtp_authentication] logingitlab_rails[smtp_enable_starttls_auto] true### 5.3 应用配置bash# 重新配置 GitLabsudo gitlab-ctl reconfigure **注意**首次 reconfigure 可能需要 3-5 分钟请耐心等待。---## 六、验证安装### 6.1 检查服务状态bashsudo gitlab-ctl status**正常输出示例**run: alertmanager: (pid 24254) 20s; run: log: (pid 23818) 57srun: gitaly: (pid 24193) 22s; run: log: (pid 22790) 192srun: gitlab-exporter: (pid 24207) 21s; run: log: (pid 23700) 75srun: gitlab-kas: (pid 23225) 183s; run: log: (pid 23257) 180srun: gitlab-workhorse: (pid 24152) 23s; run: log: (pid 23573) 88srun: logrotate: (pid 22501) 207s; run: log: (pid 22515) 206srun: nginx: (pid 24173) 22s; run: log: (pid 23602) 86srun: node-exporter: (pid 24207) 21s; run: log: (pid 23677) 80srun: postgres-exporter: (pid 24269) 19s; run: log: (pid 24000) 51srun: postgresql: (pid 22846) 189s; run: log: (pid 22862) 188srun: prometheus: (pid 24225) 21s; run: log: (pid 23789) 61srun: puma: (pid 23433) 102s; run: log: (pid 23448) 98srun: redis: (pid 22698) 201s; run: log: (pid 22713) 200srun: redis-exporter: (pid 24212) 21s; run: log: (pid 23737) 69srun: sidekiq: (pid 23469) 95s; run: log: (pid 23487) 94s### 6.2 访问 GitLab在浏览器中访问配置的地址http://你的服务器IP### 6.3 获取初始密码首次登录需要使用 root 用户和初始密码bash# 查看初始 root 密码sudo cat /etc/gitlab/initial_root_password **重要提示**该密码文件会在首次 reconfigure 后 24 小时内自动删除请及时修改密码。---## 七、常用管理命令### 7.1 服务管理bash# 启动所有服务sudo gitlab-ctl start# 停止所有服务sudo gitlab-ctl stop# 重启所有服务sudo gitlab-ctl restart# 重启单个服务如 nginxsudo gitlab-ctl restart nginx# 查看服务状态sudo gitlab-ctl status### 7.2 日志查看bash# 查看所有日志sudo gitlab-ctl tail# 查看特定服务日志sudo gitlab-ctl tail nginxsudo gitlab-ctl tail sidekiqsudo gitlab-ctl tail postgresql### 7.3 备份与恢复bash# 创建备份sudo gitlab-backup create# 恢复备份需先停止相关服务sudo gitlab-ctl stop pumasudo gitlab-ctl stop sidekiqsudo gitlab-backup restore BACKUP1234567890_2024_01_01_1.0.0# 启动服务sudo gitlab-ctl start### 7.4 其他命令bash# 重新配置sudo gitlab-ctl reconfigure# 清理缓存sudo gitlab-rake cache:clear# 检查环境sudo gitlab-rake gitlab:check SANITIZEtrue# 查看版本sudo gitlab-rake gitlab:env:info---## 八、常见问题解决### 8.1 内存不足问题GitLab 默认占用较大内存如果服务器内存较小可以优化配置ruby# 在 /etc/gitlab/gitlab.rb 中添加puma[worker_processes] 2sidekiq[max_concurrency] 10### 8.2 端口冲突如果 80 端口被占用可以修改 Nginx 监听端口rubynginx[listen_port] 8080### 8.3 无法访问1. 检查防火墙设置bashsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw allow 22/tcp2. 检查服务状态bashsudo gitlab-ctl status3. 查看错误日志bashsudo gitlab-ctl tail nginx### 8.4 邮件发送失败检查 SMTP 配置是否正确确保防火墙允许出站连接bashtelnet smtp.example.com 587---## 九、性能优化建议### 9.1 数据库优化对于大型实例可以优化 PostgreSQL 配置rubypostgresql[shared_buffers] 256MBpostgresql[work_mem] 16MBpostgresql[max_connections] 500### 9.2 Redis 优化rubyredis[maxmemory] 512mbredis[maxmemory_policy] noeviction### 9.3 Puma 优化rubypuma[worker_processes] 4puma[worker_timeout] 60puma[worker_processes] 2---## 十、安全建议### 10.1 启用 HTTPS生产环境强烈建议启用 HTTPSrubyexternal_url https://gitlab.example.comnginx[redirect_http_to_https] trueletsencrypt[enable] trueletsencrypt[contact_emails] [adminexample.com]### 10.2 修改默认密码首次登录后立即修改 root 密码。### 10.3 配置防火墙bash# 只开放必要端口sudo ufw allow 22/tcp # SSHsudo ufw allow 80/tcp # HTTPsudo ufw allow 443/tcp # HTTPSsudo ufw enable### 10.4 定期备份建议配置定时备份任务bash# 编辑 crontabsudo crontab -e# 添加每日凌晨 2 点备份0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON1---## 十一、总结本文详细介绍了在 Ubuntu 26.04 系统上通过 Omnibus 包方式安装 GitLab CE 的完整流程。相比 Docker 方式原生安装具有以下优势- **性能更好**无容器层开销- **管理方便**使用系统服务管理- **集成度高**所有组件统一管理- **维护简单**官方 gitlab-ctl 工具一键管理**注意事项**1. 确保服务器有足够内存建议 4GB 以上2. 生产环境务必启用 HTTPS3. 定期备份重要数据4. 及时更新 GitLab 版本修复安全漏洞---## 参考链接- [GitLab 官方文档](https://docs.gitlab.com/)- [Omnibus GitLab 安装指南](https://gitlab.com/gitlab-org/omnibus-gitlab)- [清华大学开源软件镜像站](https://mirrors.tuna.tsinghua.edu.cn/)- [GitLab 备份与恢复](https://docs.gitlab.com/omnibus/settings/backup.html)---**作者**林宏权**版权声明**本文为原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明
返回列表