温馨提示×

GitLab在Linux上的持续集成/持续部署实践

小樊
57
2025-08-03 13:18:08
栏目: 智能运维

在Linux上使用GitLab进行持续集成(CI)和持续部署(CD)涉及多个步骤。以下是一个基本的指南,帮助你搭建一个完整的CI/CD管道。

1. 安装和配置GitLab

在Ubuntu上安装GitLab

  • 更新包列表:
    sudo apt-get update
    
  • 安装依赖项:
    sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
    
  • 添加GitLab的软件源:
    curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    
  • 安装GitLab CE:
    sudo apt-get install gitlab-ce
    

在CentOS上安装GitLab

  • 更新包列表:

    sudo yum update
    
  • 安装依赖项:

    sudo yum install -y curl policycoreutils-python openssh-server postfix
    
  • 添加GitLab的软件源:

    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    
  • 安装GitLab CE:

    sudo yum install gitlab-ce
    
  • 配置并启动GitLab:

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl start
    

2. 安装和配置GitLab Runner

在Ubuntu上安装GitLab Runner

  • 更新包列表:
    sudo apt update
    
  • 安装依赖包:
    sudo apt install curl openssh-server policycoreutils-python
    
  • 下载并安装GitLab Runner:
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash
    
  • 赋予执行权限并安装:
    sudo chmod +x /usr/local/bin/gitlab-runner
    
  • 创建一个gitlab-ci用户:
    sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
    
  • 安装,并作为服务启动:
    sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    

在CentOS上安装GitLab Runner

  • 更新包列表:
    sudo yum update
    
  • 安装依赖包:
    sudo yum install curl policycoreutils-python openssh-server openssh-clients postfix cronie policycoreutils-Python
    
  • 下载并安装GitLab Runner:
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
    
  • 赋予执行权限并安装:
    sudo chmod +x /usr/local/bin/gitlab-runner
    
  • 启动并启用GitLab Runner服务:
    sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runnersudo gitlab-runner start
    

注册GitLab Runner

在GitLab的管理界面中,依次进入 Settings -> CI/CD -> Runners,点击 Register a Runner。按照提示输入GitLab实例的URL和注册令牌,选择执行器(如 shell),然后保存。

3. 创建和配置 .gitlab-ci.yml 文件

在项目的根目录下创建一个 .gitlab-ci.yml 文件,用于定义CI/CD流程。以下是一个简单的示例:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    - npm install
    - npm run build

test_job:
  stage: test
  script:
    - echo "Running tests..."
    - npm test

deploy_job:
  stage: deploy
  script:
    - echo "Deploying the project..."
    - ssh user@server "cd /var/www/html && git pull"

4. 配置自动化测试和部署

你可以使用各种工具来实现自动化测试和部署,例如Maven、Gradle、npm、Docker等。以下是一个使用Maven和Docker的示例:

build:
  stage: build
  image: maven:3.6.3-jdk-8
  script:
    - mvn clean package

test:
  stage: test
  image: maven:3.6.3-jdk-8
  script:
    - mvn test

deploy:
  stage: deploy
  image: docker:dind
  variables:
    DOCKER_HOST: tcp://docker:2375
  script:
    - docker login -u "CI_REGISTRY_USER" -p "CI_REGISTRY_PASSWORD" CI_REGISTRY
    - docker build -t CI_REGISTRY_IMAGE:CI_COMMIT_SHA .
    - docker push CI_REGISTRY_IMAGE:CI_COMMIT_SHA

5. 监控和日志

GitLab提供了详细的CI/CD管道视图,你可以在项目的CI/CD菜单下查看所有的作业及其状态、持续时间和日志。这有助于你监控构建和部署的状态,并在出现问题时进行调试。

6. 代码审查和合并请求

GitLab支持代码审查和合并请求功能,你可以在 .gitlab-ci.yml 文件中定义代码审查任务,例如使用SonarQube进行静态代码分析:

sonarqube_check:
  stage: test
  image: sonarsource/sonar-scanner-cli
  variables:
    SONAR_USER_HOME: "{CI_PROJECT_DIR}/.sonar"
    GIT_DEPTH: "0"
  cache:
    key: "{CI_JOB_NAME}"
  paths:
    - .sonar/cache
  script:
    - sonar-scanner -Dsonar.qualitygate.waittrue allow_failure: true
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

通过以上步骤,你可以在Linux上实现GitLab的持续集成和持续部署。这不仅可以提高开发效率,还能确保代码的质量和稳定性。

0