GitLab 是一款开源的代码托管平台,集代码仓库、持续集成与部署、代码审查等功能于一体。本文将指导您在 CentOS 系统 上搭建 GitLab。
一、准备工作
1. 系统要求
- 操作系统:CentOS 7 或 CentOS 8
- 硬件要求:
- CPU:2 核或以上
- 内存:4GB 或以上
- 磁盘:20GB 可用空间
2. 配置基础环境
执行以下命令,更新系统并安装基础工具:
yum update -y
yum install -y curl policycoreutils-python openssh-server perl
二、安装所需组件
1. 安装 PostgreSQL
GitLab 使用 PostgreSQL 作为默认数据库。安装并初始化:
yum install -y postgresql-server
postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql
2. 安装 Redis
Redis 用于缓存和其他 GitLab 服务:
yum install -y redis
systemctl enable redis
systemctl start redis
三、安装 GitLab
1. 添加 GitLab 软件源
使用官方脚本配置 GitLab 社区版(CE)软件源:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
2. 安装 GitLab
安装 GitLab CE 并指定外部访问地址:
EXTERNAL_URL="http://your-domain-or-ip" yum install -y gitlab-ce
3. 配置数据存储路径
修改 GitLab 配置文件 /etc/gitlab/gitlab.rb
:
git_data_dirs({ "default" => { "path" => "/data/gitlab/git-data" }
}) gitlab_rails['backup_path'] = "/data/gitlab/backups"
4. 启动 GitLab
应用配置并启动 GitLab:
gitlab-ctl reconfigure
gitlab-ctl restart
5. 查看初始密码
GitLab 在初始化时会生成一个管理员账号密码,查看文件即可:
cat /etc/gitlab/initial_root_password
四、访问 GitLab
- 在浏览器中输入 http://your-domain-or-ip
- 使用 root 账户和生成的初始密码登录
- 登录后可创建项目、管理用户、配置 CI/CD 等
五、GitLab 常用命令
1. 服务管理
- 启动 GitLab:
gitlab-ctl start
- 停止 GitLab:
gitlab-ctl stop
- 重启 GitLab:
gitlab-ctl restart
- 检查服务状态:
gitlab-ctl status
2. 配置与日志
- 重新配置 GitLab:
gitlab-ctl reconfigure
- 查看配置文件:
cat /etc/gitlab/gitlab.rb
- 查看日志:
less /var/log/gitlab/gitlab-rails/production.log
3. 数据备份与还原
- 手动备份:
gitlab-rake gitlab:backup:create
- 还原备份:
gitlab-rake gitlab:backup:restore
- 清理旧备份文件:
gitlab-ctl cleanup
六、GitLab 组件说明
GitLab 是一个复杂的集成系统,主要组件如下:
组件 | 功能说明 |
---|---|
Puma | 运行 GitLab Rails 的 Web 应用服务器 |
Redis | 用于缓存和会话管理 |
PostgreSQL | 数据库服务,存储 GitLab 的核心数据 |
Nginx | 静态文件服务和反向代理 |
Sidekiq | 后台任务处理 |
Prometheus | 系统监控与报警工具 |
Gitaly | 提供 Git 仓库服务,支持 Git 操作 |
七、GitLab 目录结构
目录位置 | 说明 |
---|---|
/var/opt/gitlab/git-data/repositories | 仓库存储目录 |
/opt/gitlab | GitLab 安装路径 |
/etc/gitlab | 配置文件路径 |
/var/log/gitlab | GitLab 日志存储路径 |
/var/opt/gitlab/backups | 备份文件存储目录 |
八、最佳实践
1. 定期备份
添加定时任务,每天自动备份:
crontab -e
# 添加以下内容,每天凌晨备份
0 0 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
2. 启用日志轮转
防止日志文件过大:
gitlab-ctl logrotate
3. 优化性能
根据服务器配置,调整以下参数:
puma['worker_processes']
:设置为 CPU 核心数sidekiq['concurrency']
:设置合适的并发数
4. 配置 SSL
启用 HTTPS 确保传输安全:
九、总结
本文介绍了在 CentOS 系统上安装和配置 GitLab 的完整流程,包括组件介绍、目录结构以及最佳实践配置。完成这些步骤后,你将拥有一个功能强大的代码托管平台。如果有其他问题,欢迎在评论区讨论!