CentOS 7上的GitLab Runner,让你的项目加速奔跑

简介: CentOS 7上的GitLab Runner,让你的项目加速奔跑

前言

软件开发的道路上,持续集成和持续部署是不可或缺的一环,就像是您的项目的生命力源泉。而GitLab Runner,则是这条流水线上的得力助手,为您的代码提供快速、可靠的构建和部署。今天,就让我们一起来探索如何在CentOS 7上搭建GitLab Runner,释放持续集成的魔力吧!

安装GitLab Runner

安装前提

GitLab Runner 15.0引入了注册 API 请求格式的更改。它阻止 GitLab Runner 与低于 14.8 的 GitLab 版本进行通信。您必须使用适合 GitLab 版本的 Runner 版本,或者升级 GitLab 应用程序。

如果直接使用yum install git会出现git版本为1.8,太老了,不适用

#安装源git
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
#安装git
yum install git
#更新git
yum update git

1. 下载并安装 GitLab Runner

  1. 添加 GitLab Runner 的官方仓库:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
  1. 安装 GitLab Runner:
# 这里如果很慢可以在本机下载再上传一下,https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/index.html
sudo yum install gitlab-runner

2. 注册到 GitLab 服务器

  1. 登录到你的 GitLab 服务器。
  2. 转到你项目的设置页面。
  3. 在左侧导航栏中选择 CI/CD -> Runners 设置。
  4. 复制注册 Runner 的 URL 和 Token。
  5. 回到你的 Runner 主机上,在终端中执行注册命令,使用提供的 URL 和 Token:
gitlab-runner register --url --token

3.配置runner

  • 执行gitlab-runner register --url --token
  • Enter the GitLab instance URL (for example, https://gitlab.com/):
  • Enter a name for the runner. This is stored only in the local config.toml file:
  • 在这里,你需要为 GitLab Runner 指定一个名称。这个名称仅会存储在本地的配置文件 config.toml 中,用于识别该 Runner。
    你可以根据需要选择一个描述性的名称,以便于识别和管理。例如,你可以使用项目名称、环境名称或者其他有意义的标识作为 Runner 的名称。
  • Enter an executor: instance, shell, ssh, virtualbox, docker, kubernetes, docker-autoscaler, custom, parallels, docker-windows, docker+machine:
  • 在这里,你需要选择一个执行器(executor),用于指定 GitLab Runner 在执行 CI/CD 任务时的运行环境。以下是常见的执行器选项及其简要说明:
  • shell: 在 Runner 主机上使用 Shell 执行任务。
  • docker: 使用 Docker 容器来运行任务。
  • docker+machine: 使用 Docker Machine 在虚拟机中运行 Docker 容器。
  • docker-windows: 在 Windows 主机上使用 Docker 运行任务。
  • ssh: 通过 SSH 连接到远程主机并执行任务。
  • kubernetes: 在 Kubernetes 集群中运行任务。
  • virtualbox: 在 VirtualBox 虚拟机中运行任务。
  • custom: 自定义执行器,你可以自己编写脚本来定义任务的执行方式。
  • 根据你的需求和环境选择一个合适的执行器,并输入其名称。

4. 验证 Runner 是否注册成功

  1. 回到 GitLab 服务器的项目设置页面。
  2. 在 CI/CD -> Runners 部分,你应该能够看到刚刚注册的 Runner。
  3. 确保 Runner 的状态为“活跃”。

5. 测试 Runner 是否正常工作

  1. 在你的项目中创建一个简单的 CI/CD 配置文件(如 .gitlab-ci.yml)。
  2. 将配置文件提交到你的项目中。
  3. 在 GitLab 服务器的项目页面上触发一个 Pipeline,观察任务是否由 Runner 正常执行。

通过以上步骤,你应该能够成功在 CentOS 7 上搭建和注册 GitLab Runner,并确保它能够正常工作。如果遇到任何问题,请查阅官方文档或在社区寻求帮助。

配置Runner执行器

在配置Runner执行器时,需要指定执行器的类型和相关参数,以确保任务能够按照预期顺利执行。以下是配置Runner执行器的一般步骤:

  1. 选择执行器类型:根据实际需求选择适合的执行器类型,常见的包括:
  • shell:在本地或远程服务器上执行脚本命令。
  • docker:在Docker容器中执行任务,可用于构建和运行应用程序。
  • kubernetes:在Kubernetes集群中执行任务,适用于复杂的容器化环境。
  • virtualbox:在虚拟机中执行任务,可用于本地开发和测试。
  • ssh:通过SSH协议连接到远程主机并执行任务。
  • custom:自定义执行器,根据需要编写自己的执行器逻辑。
  1. 设置执行器参数:根据选定的执行器类型,设置相关参数,如并发度、超时时间等。
  • 并发度:指定Runner同时执行的任务数量,可以根据服务器性能和任务负载进行调整。
  • 超时时间:设置任务执行的最大时间,超过该时间将视为超时并中止任务。
  1. 配置Runner:编辑.gitlab-ci.yml文件,添加或修改相应的配置项,指定执行器类型和参数。

示例配置文件如下所示:

stages:
  - build
  - test
build_job:
  stage: build
  script:
    - npm install
    - npm run build
  tags:
    - docker
  variables:
    DOCKER_DRIVER: overlay2
  artifacts:
    paths:
      - public/
test_job:
  stage: test
  script:
    - npm test
  tags:
    - docker
  variables:
    DOCKER_DRIVER: overlay2
  allow_failure: true

在上面的示例中,我们使用了Docker执行器,并设置了相关参数,如标签(tags)、Docker驱动器(DOCKER_DRIVER)等。这样配置的Runner将会在Docker容器中执行构建和测试任务。

根据实际情况,可以根据需要添加其他执行器类型和参数,以满足项目的具体要求。

高级配置

在配置Runner执行器的高级配置和扩展时,可以进一步优化CI/CD流程,并集成各种第三方工具和服务,以满足更复杂的需求。以下是一些高级配置和扩展的示例:

  1. 缓存和共享卷
  • 缓存:通过设置缓存,可以在不同作业之间共享和重用依赖项,加快构建速度。可以缓存编译依赖项、依赖库、下载的软件包等。
  • 共享卷:共享卷允许在不同作业之间共享文件或目录,便于数据传递和共享。可以将构建产生的文件、测试报告等存储到共享卷中,并在后续作业中使用。
  1. 集成第三方工具和服务
  • Docker:可以使用Docker容器作为执行器,实现环境隔离和一致性。还可以利用Docker镜像来构建、测试和部署应用程序。
  • AWS、Azure等云服务:可以利用云服务提供的资源来执行CI/CD作业,例如在AWS上运行测试套件、部署到Azure容器实例等。
  • 第三方CI/CD工具:如Jenkins、Travis CI等,可以与GitLab Runner集成,实现更复杂的CI/CD流程。
  1. 定制特定环境下的作业
  • Java、Python、Node.js等:针对不同的编程语言和框架,可以定制特定的CI/CD作业,包括编译、测试、打包、部署等。
  • 安全检查和代码分析:集成静态代码分析工具、安全漏洞扫描工具等,对代码进行质量检查和安全扫描。

示例配置文件如下所示:

stages:
  - build
  - test
build_job:
  stage: build
  script:
    - npm install
    - npm run build
  cache:
    paths:
      - node_modules/
  artifacts:
    paths:
      - dist/
test_job:
  stage: test
  script:
    - npm test
  cache:
    key: "$CI_COMMIT_REF_NAME"
    paths:
      - node_modules/
  artifacts:
    paths:
      - test_reports/
  dependencies:
    - build_job

在上面的示例中,我们配置了缓存(cache)和共享卷(artifacts),以及与其他作业的依赖关系(dependencies)。这样可以加速构建过程,同时实现测试报告等数据的共享和传递。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
818 4
|
6月前
|
JavaScript Java 应用服务中间件
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
167 2
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
80 0
|
3月前
|
Shell Docker 容器
5-17|gitlab的runner什么意思
5-17|gitlab的runner什么意思
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
224 0
6-14|gitlab的runner的流水线怎么看
6-14|gitlab的runner的流水线怎么看
|
3月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
4月前
|
缓存 Kubernetes Shell
CI/CD:安装配置Gitlab Runner
CI/CD:安装配置Gitlab Runner
382 0
|
7月前
|
开发工具 git
修改GitLab项目文件路径重新刷新配置报错问题原因及解决方案
修改GitLab项目文件路径重新刷新配置报错问题原因及解决方案
352 0
|
4月前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
下一篇
DataWorks