GitLab与Ubuntu集成开发环境搭建指南
GitLab是基于Web的DevOps生命周期管理工具,集成代码托管、CI/CD、问题跟踪等功能,搭配Ubuntu(开源、稳定的Linux发行版)可搭建高效、安全的私有开发环境。以下是详细搭建步骤:
系统更新与依赖安装
更新Ubuntu系统包并安装必要依赖(用于GitLab运行、SSH连接、数据库支持及时区配置):
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl postfix
注意:
postfix用于GitLab邮件通知(安装时选择“Internet Site”类型,填写服务器域名或IP)。
硬件要求
GitLab推荐最低配置:2核CPU、4GB内存、20GB存储空间(生产环境建议4核+8GB内存,避免性能瓶颈)。
通过官方脚本添加GitLab软件源,确保后续安装的是最新稳定版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
使用apt安装GitLab CE(社区版),安装过程会自动配置系统服务:
sudo apt install gitlab-ce -y
编辑GitLab主配置文件/etc/gitlab/gitlab.rb,设置外部访问URL(替换为服务器IP或域名):
sudo vim /etc/gitlab/gitlab.rb
找到external_url行,修改为:
external_url 'http://your_server_ip' # 或 'http://your_domain.com'
可选配置:若需使用中文界面,添加
gitlab_rails['time_zone'] = 'Asia/Shanghai'。
重新配置GitLab以应用修改,并启动服务:
sudo gitlab-ctl reconfigure # 应用配置
sudo gitlab-ctl start # 启动服务
sudo gitlab-ctl status # 检查服务状态(确保所有组件为“run”状态)
浏览器访问
在浏览器中输入http://your_server_ip,进入GitLab登录页面。
初始设置
rootsudo cat /etc/gitlab/initial_root_password
root密码并关闭“注册功能”(防止未授权用户创建账号):Admin Area → Settings → Sign-up restrictions,关闭“Sign-up enabled”。创建项目与用户
Developer、Maintainer)。GitLab CI/CD通过.gitlab-ci.yml文件定义自动化任务(构建、测试、部署),配合GitLab Runner执行。
GitLab Runner是执行CI/CD任务的代理,需单独安装:
# 添加GitLab Runner仓库
curl -L --output /etc/apt/trusted.gpg.d/gitlab.asc https://packages.gitlab.com/gitlab/gitlab-runner/gpgkey
echo "deb https://packages.gitlab.com/gitlab/gitlab-runner/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab-runner.list
sudo apt update
# 安装Runner
sudo apt install gitlab-runner -y
将Runner注册到GitLab项目,使其能接收并执行CI/CD任务:
sudo gitlab-runner register
按提示输入:
http://your_server_ip)Settings → CI / CD → Runners获取)Shell,适合Ubuntu环境)。.gitlab-ci.yml文件在项目根目录下创建.gitlab-ci.yml,定义CI/CD流程(以下为示例):
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Installing dependencies..."
- npm install # 示例:安装Node.js依赖
artifacts:
paths:
- node_modules/ # 保存依赖到artifacts,供后续job使用
test_job:
stage: test
script:
- echo "Running tests..."
- npm test # 示例:运行测试
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
- scp -r . user@your_server_ip:/var/www/html # 示例:部署到服务器
only:
- master # 仅master分支触发部署
git push origin master),Runner会自动触发CI/CD管道。CI / CD → Pipelines,查看管道状态(成功/失败)、作业日志(调试问题)。防火墙配置
确保Ubuntu防火墙(ufw)开放必要端口:
sudo ufw allow http # 80端口(HTTP)
sudo ufw allow https # 443端口(HTTPS,可选)
sudo ufw allow ssh # 22端口(SSH)
sudo ufw enable # 启用防火墙
内存不足问题
若服务器内存小于4GB,GitLab可能无法正常启动。可通过以下方式优化:
postgresql,改用外部数据库)。sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Runner未执行任务
sudo gitlab-runner list)。sudo gitlab-runner --debug run),排查配置错误。通过以上步骤,即可在Ubuntu上搭建GitLab集成开发环境,并实现代码托管、团队协作与自动化流程。根据实际需求,可进一步扩展功能(如配置HTTPS、集成Docker、设置监控告警)。