debian

Debian如何通过GitLab实现持续集成与部署

小樊
49
2025-10-21 14:25:13
栏目: 智能运维

1. 在Debian上安装GitLab
首先更新系统包并安装必要依赖,确保系统处于最新状态:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates postfix

添加GitLab官方APT仓库,替换$(lsb_release -cs)为你的Debian发行版代号(如bookworm):

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安装GitLab Community Edition(CE)并设置外部访问URL(替换为你的服务器IP或域名):

sudo EXTERNAL_URL="http://your_server_ip_or_domain" apt install -y gitlab-ce

完成安装后,重新配置GitLab并启动服务:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

通过浏览器访问http://your_server_ip_or_domain,完成管理员账号初始化设置。

2. 安装并配置GitLab Runner
GitLab Runner是执行CI/CD任务的代理工具,需单独安装。首先添加Runner仓库并安装:

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash
sudo apt install -y gitlab-ci-multi-runner

注册Runner到GitLab项目:运行以下命令,按提示输入GitLab实例URL(如http://your_server_ip_or_domain)和项目注册令牌(在GitLab项目→Settings→CI/CD→Runners中获取):

sudo gitlab-runner register

选择执行器(推荐shelldockerdocker可实现环境隔离),完成注册后启动Runner服务并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl start gitlab-runner
sudo systemctl enable gitlab-runner

验证Runner状态:

sudo gitlab-runner status

确保Runner显示为running,表示已就绪。

3. 创建.gitlab-ci.yml文件定义CI/CD流程
在项目根目录下创建.gitlab-ci.yml文件,定义流水线的阶段(stages)任务(jobs)。以下是一个基础示例,包含构建、测试、部署三个阶段:

stages:
  - build    # 构建阶段:编译代码、生成产物
  - test     # 测试阶段:运行单元测试、集成测试
  - deploy   # 部署阶段:将产物部署到目标环境

variables:
  DOCKER_IMAGE: "myapp:latest"  # 定义Docker镜像名称(可选)

build_job:
  stage: build
  script:
    - echo "Building the project..."
    - ./gradlew build  # 示例:Gradle构建(根据项目类型调整)
  artifacts:
    paths:
      - build/         # 保存构建产物,供后续阶段使用

test_job:
  stage: test
  script:
    - echo "Running tests..."
    - ./gradlew test   # 示例:Gradle测试(根据项目类型调整)

deploy_job:
  stage: deploy
  script:
    - echo "Deploying to production..."
    - scp -r build/* user@your_production_server:/var/www/myapp/  # 示例:SCP复制产物到生产服务器
  only:
    - master           # 仅当master分支有推送时触发

将文件提交到GitLab仓库,触发流水线:

git add .gitlab-ci.yml
git commit -m "Add CI/CD configuration with GitLab Runner"
git push origin master

在GitLab项目→CI/CD→Pipelines页面,可查看流水线运行状态和日志。

4. 高级配置优化

0
看了该问题的人还看了