ubuntu与gitlab集成实践
Ubuntu与GitLab集成实践指南
1. 准备工作
在开始集成前,需确保Ubuntu服务器满足以下要求:
- 操作系统:Ubuntu 22.04及以上版本(推荐LTS版);
- 硬件配置:至少4GB RAM(推荐8GB及以上)、4核CPU、20GB以上可用磁盘空间;
- 网络:服务器需能访问互联网(用于下载安装包及依赖);
- 权限:具备root或sudo权限。
2. 安装GitLab
2.1 安装依赖包
GitLab依赖SSH(用于代码托管)、Postfix(用于邮件通知)、TZdata(用于时区配置)等服务,需先安装:
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata postfix
安装Postfix时,选择“Internet Site”类型并输入服务器域名(如gitlab.example.com)。
2.2 添加GitLab官方仓库
通过官方脚本将GitLab包源添加到Ubuntu的apt源列表:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
(若需安装企业版,将gitlab-ce替换为gitlab-ee。)
2.3 安装GitLab Community Edition(CE)
执行安装命令,指定外部URL(替换为服务器IP或域名):
sudo EXTERNAL_URL="http://your_server_ip" apt install gitlab-ce -y
安装完成后,GitLab会自动配置默认服务。
3. 配置GitLab
3.1 修改基础配置
编辑GitLab主配置文件/etc/gitlab/gitlab.rb,调整以下关键参数:
- 外部URL:确保
external_url设置为服务器IP或域名(如http://192.168.1.100); - 时区:修改
gitlab_rails['time_zone']为本地时区(如Asia/Shanghai)。
修改后保存文件。
3.2 重新配置并启动服务
运行以下命令使配置生效,并启动GitLab服务:
sudo gitlab-ctl reconfigure # 应用配置更改
sudo gitlab-ctl start # 启动GitLab服务
sudo gitlab-ctl status # 检查服务状态(需显示“run”表示正常)
设置开机自启动(可选):
sudo systemctl enable gitlab-runsvdir.service
3.3 访问GitLab Web界面
在浏览器中输入http://your_server_ip,首次登录需设置root用户密码(默认管理员账号为root)。
4. 集成开发流程(代码托管与协作)
4.1 创建项目
登录GitLab后,点击顶部导航栏“+”→“New project”,选择“Create blank project”,填写项目名称(如my-app)并选择可见性(Private/Public/Internal),点击“Create project”完成创建。
4.2 本地仓库关联与代码推送
在本地Ubuntu机器上初始化Git仓库,并关联GitLab远程仓库:
# 初始化本地仓库
mkdir my-app &
&
cd my-app
git init
# 关联远程仓库(替换为GitLab项目URL)
git remote add origin http://your_server_ip/my-group/my-app.git
# 创建README文件并提交
echo "# My App" >
README.md
git add .
git commit -m "Initial commit"
# 推送代码到远程仓库
git push -u origin main
(若使用SSH,需提前生成密钥并将公钥添加到GitLab账户的“SSH Keys”设置中。)
4.3 分支管理与合并请求
- 创建分支:在本地创建新分支并推送至远程:
git checkout -b feature/login git push origin feature/login - 发起合并请求:在GitLab项目页面,点击“Merge Requests”→“New merge request”,选择源分支(
feature/login)和目标分支(main),填写标题(如“Add login feature”)和描述,点击“Create merge request”。 - 代码审查与合并:团队成员可在合并请求页面查看代码变更、添加评论,审查通过后点击“Merge”将分支合并到目标分支。
5. 集成CI/CD(自动化构建与部署)
5.1 安装GitLab Runner
GitLab Runner是执行CI/CD任务的工具,需先安装:
# 下载并安装Runner
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner -y
# 注册Runner(替换为项目URL和Token)
sudo gitlab-runner register
注册时需输入:
- GitLab实例URL(如
http://your_server_ip); - 注册Token(从项目“Settings→CI/CD→Runners”获取);
- Runner描述(如
ubuntu-runner); - 标签(如
linux); - 执行器类型(推荐
docker或shell)。
5.2 创建.gitlab-ci.yml文件
在项目根目录下创建.gitlab-ci.yml文件,定义CI/CD流程(示例为简单的构建、测试、部署流程):
stages:
- build
- test
- deploy
variables:
PROJECT_DIR: "/var/www/my-app"
build_job:
stage: build
script:
- echo "Building the project..."
- mkdir -p $PROJECT_DIR
- cp -r * $PROJECT_DIR
artifacts:
paths:
- $PROJECT_DIR/
test_job:
stage: test
script:
- echo "Running tests..."
- cd $PROJECT_DIR &
&
npm test # 假设项目使用npm
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
- scp -r $PROJECT_DIR/* user@production-server:/var/www/html/
only:
- main # 仅main分支触发
该配置定义了三个阶段:build(构建项目并生成artifacts)、test(运行测试)、deploy(部署到生产服务器,仅main分支触发)。
5.3 触发CI/CD流程
将.gitlab-ci.yml文件推送到GitLab仓库,GitLab会自动检测并触发流水线:
git add .gitlab-ci.yml
git commit -m "Add CI/CD configuration"
git push origin main
在GitLab项目页面的“CI/CD→Pipelines”中,可查看流水线运行状态、日志及任务结果。
6. 维护与管理
6.1 备份GitLab数据
GitLab数据默认存储在/var/opt/gitlab/backups目录,可通过以下命令创建备份:
sudo gitlab-rake gitlab:backup:create
备份文件命名格式为timestamp_gitlab_backup.tar,可通过ls /var/opt/gitlab/backups查看。
6.2 恢复GitLab数据
若需恢复数据,将备份文件复制到/var/opt/gitlab/backups目录,然后运行:
sudo gitlab-rake gitlab:backup:restore BACKUP=timestamp
(timestamp为备份文件名中的时间戳,如2025_10_29_123456。)
6.3 监控与日志
- 查看服务状态:
sudo gitlab-ctl status; - 查看实时日志:
sudo gitlab-ctl tail; - 查看特定服务日志:
sudo gitlab-ctl tail nginx(如Nginx日志)。
通过以上步骤,可实现Ubuntu与GitLab的完整集成,覆盖代码托管、团队协作、自动化构建部署等核心场景,提升开发效率与代码质量。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu与gitlab集成实践
本文地址: https://pptw.com/jishu/738253.html
