
企业搭建一个私有GitLab服务器,可以帮助其掌控源代码和 DevOps 流水线的安全性,避免将敏感数据暴露到公有云。A5IDC将引导你通过配置物理服务器,搭建并配置私有 GitLab,最终实现一个完整的 DevOps 流水线。我们将详细介绍所需硬件、软件、以及 GitLab CI/CD 配置的技术细节,并通过实践案例,帮助你高效实现 CI/CD 流程。
1. 物理服务器硬件配置
搭建私有 GitLab 服务器首先需要考虑硬件的选型。根据 GitLab 官方推荐的配置,以下是典型的硬件配置需求:
- CPU:至少 4 核,推荐 8 核及以上。
- 内存:最小 8GB,推荐 16GB 及以上。
- 存储:至少 100GB 的 SSD 存储,用于存储 Git 仓库、CI/CD 构建产物、日志文件等。
- 网络带宽:1Gbps 及以上的网络连接,确保持续集成/持续交付过程中能够高速传输数据。
示例硬件配置
- CPU: Intel Xeon E5-2630 v4 8 核 16 线程
- 内存: 16GB DDR4
- 存储: 500GB SSD
- 网络: 千兆以太网(1Gbps)
- 操作系统: Ubuntu 20.04 LTS(64-bit)
这种配置可以保证 GitLab 在中小型团队中能够高效运行。如果是大规模使用,可能需要进行高可用部署,考虑冗余硬件与负载均衡。
2. 安装操作系统
在物理服务器上安装操作系统是搭建 GitLab 的第一步。以 Ubuntu 为例,以下是安装步骤:
安装 Ubuntu 20.04 LTS
- 从 Ubuntu 官方网站 下载 20.04 LTS 镜像,并使用工具(如 Rufus)创建启动 U 盘。
- 将 U 盘插入服务器,启动系统并选择安装 Ubuntu。
- 按照提示完成分区、网络配置、用户创建等操作。
3. 安装 GitLab
GitLab 提供了便捷的安装脚本,支持各种 Linux 发行版。这里我们使用 Omnibus 安装包,它将 GitLab 所有组件打包到一个安装包中,减少了安装过程中的复杂性。
①更新系统包
在安装 GitLab 之前,首先更新系统的 apt 包:
sudo apt update && sudo apt upgrade -y
安装依赖软件
GitLab 需要一些额外的依赖项,例如 curl、openssh-server、ca-certificates、postfix(用于发送邮件)。可以通过以下命令安装:
sudo apt install -y curl openssh-server ca-certificates postfix
②安装 GitLab
下载并安装 GitLab Omnibus 包:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ee
其中,EXTERNAL_URL 设置为你的 GitLab 实例的访问 URL,替换为实际的 IP 或域名。
③配置 GitLab
安装完成后,使用以下命令重新配置 GitLab:
sudo gitlab-ctl reconfigure
这将会启动 GitLab 服务并完成初始化。
④访问 GitLab
打开浏览器,访问 http://gitlab.example.com,使用初始管理员账户 root 和默认密码(通常是在安装过程中提供的 URL)登录。完成初次配置并更改密码。
4. 配置 GitLab CI/CD 流水线
GitLab 的 CI/CD 流水线使用 .gitlab-ci.yml 文件进行配置,这是一个基于 YAML 的配置文件,定义了各种阶段(stages)、任务(jobs)、以及执行顺序。
创建项目并配置 CI/CD 流水线
①创建 GitLab 仓库
在 GitLab 中创建一个新项目,并将其克隆到本地:
git clone http://gitlab.example.com/myproject.git
cd myproject
②配置 .gitlab-ci.yml 文件
在项目根目录下创建 .gitlab-ci.yml 文件,定义流水线中的各个任务。以下是一个简单的 CI/CD 流水线配置示例:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the application..."
- make build
test_job:
stage: test
script:
- echo "Running tests..."
- make test
deploy_job:
stage: deploy
script:
- echo "Deploying application..."
- ./deploy.sh
在这个例子中,我们定义了三个阶段:build、test 和 deploy,每个阶段下都有相应的任务(job)。每个任务都会执行相应的脚本,构建、测试和部署应用。
推送配置文件
完成 .gitlab-ci.yml 文件后,将其推送到 GitLab 仓库:
git add .gitlab-ci.yml
git commit -m "Add GitLab CI/CD pipeline configuration"
git push origin master
验证流水线执行
推送代码后,GitLab 会自动检测到 .gitlab-ci.yml 文件,并触发 CI/CD 流水线的执行。你可以在 GitLab 项目页面的 CI/CD 标签下查看流水线的执行状态,查看每个任务的日志输出。
5. 配置 Runner
GitLab CI/CD 使用 Runner 来执行流水线中的任务。GitLab 提供了多种 Runner 类型,包括共享 Runner 和专用 Runner。这里我们安装并配置一个专用 Runner 来处理本地的构建任务。
安装 GitLab Runner
安装 GitLab Runner
sudo apt install gitlab-runner
注册 Runner
通过以下命令注册 Runner:
sudo gitlab-runner register
注册过程中,GitLab 会要求你输入以下信息:
- GitLab 实例的 URL(例如:http://gitlab.example.com)
- 注册 Token:在 GitLab 项目设置中获取。
- Runner 的描述(可选)。
- Runner 标签(可选)。
- 执行器类型:可以选择 shell、docker 等。
启动 Runner
配置完成后,启动 GitLab Runner:
sudo gitlab-runner start
此时,GitLab Runner 就可以开始执行流水线中的任务了。
6. 完整的 DevOps 流水线
通过上述步骤,你已经成功搭建了一个私有 GitLab 实例,并且配置了一个基本的 CI/CD 流水线。你可以根据实际需要,进一步扩展和优化流水线。例如,添加自动化测试、代码质量检查、容器化部署、蓝绿发布等高级功能。
高级功能示例
- 容器化部署:可以使用 Docker 部署应用,甚至将 GitLab Runner 配置为 Docker 执行器,利用容器来隔离每个任务的执行环境。
- 多阶段流水线:通过不同的阶段实现不同环境(开发、测试、生产)的构建、测试和部署。
- 通知与报警:通过 GitLab 集成 Slack 或邮件等工具,接收流水线执行状态的通知。
我们学习了如何在物理服务器上搭建私有 GitLab,配置并实现 CI/CD 流水线。GitLab 不仅提供了灵活的流水线配置能力,还支持与各种开发工具集成,帮助团队提高开发效率并保证代码质量。掌握了这些配置技巧之后,你可以根据项目的需求,进一步优化 DevOps 流水线,使开发、测试、部署过程更加自动化和高效。











