CI/CD笔记:安装配置Gitlab Runner

举报
jcLee95 发表于 2024/02/26 15:00:28 2024/02/26
【摘要】 GitLab Runner 是一个开源项目,用于运行 CI/CD 作业。它与 GitLab CI/CD 集成,可以在 GitLab 上执行自动化构建、测试和部署任务。
CI/CD笔记
安装配置Gitlab Runner

- 文章信息 -
Author: 李俊才 (jcLee95)
Visit me at: https://jclee95.blog.csdn.net
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/136296840
Address of this article(HuaWei):https://bbs.huaweicloud.cn/blogs/422579

【介绍】:GitLab Runner 是一个开源项目,用于运行 CI/CD 作业。它与 GitLab CI/CD 集成,可以在 GitLab 上执行自动化构建、测试和部署任务。




GitLab Runner  GitLab CI/CD 的一个核心组件,承担着负责执行 CI/CD 作业的重要角色。它的设计目的在于为开发团队提供一个灵活且可靠的工具,用于自动化地构建、测试和部署他们的代码。不仅如此,GitLab Runner 还具有多样化的运行环境支持,包括本地机器、虚拟机和容器等不同的部署场景。这意味着团队可以根据项目的需求和特点,在不同的环境中灵活地执行作业,无需受到特定部署平台的限制。此外,GitLab Runner 提供了丰富的配置选项,使得团队可以根据自身需求进行定制化配置,以满足复杂的 CI/CD 流程。这种灵活性和可定制性为团队带来了更高的效率和便利性,使得他们能够更好地适应不同的项目和工作场景。

GitLab Runner 的工作原理是基于 与 GitLab 服务器之间的协作和通信

首先,当有作业需要执行时,GitLab 服务器会将作业信息发送给 Runner。这个作业信息包括了作业的定义、所需执行的命令以及其他相关配置。

Runner 接收到作业信息后,根据其中的定义和配置,开始在指定的执行环境中执行作业。这个执行环境可以是本地机器、虚拟机、容器等各种不同的平台,取决于在注册 Runner 时所配置的执行器。在执行作业的过程中,Runner 会按照作业定义的步骤逐一执行命令,例如拉取代码、运行测试、构建应用程序等。

一旦作业执行完成,Runner 会将执行结果返回给 GitLab 服务器。这个执行结果包括了作业的执行状态、输出日志以及其他相关信息。GitLab 服务器会将这些信息记录下来,并在构建页面中进行展示和分析,以便开发团队查看作业的执行情况和结果。通过这种协作方式,GitLab Runner 实现了作业的自动化执行和管理,为团队提供了高效、可靠的 CI/CD 解决方案。



 GitLab Runner 中,有两种常见的类型:Shared Runner  Specific Runner。它们各自适用于不同的场景和需求。

Shared Runner 是一种全局性质的 Runner,它被配置为可供多个项目共享使用。这意味着同一个 Shared Runner 可以被多个项目同时利用。Shared Runner 通常适用于简单的 CI/CD 流程,其中的作业比较标准化,不需要针对特定项目进行定制。通过共享 Runner,团队可以更好地利用资源,减少重复配置的工作,并且能够更方便地管理和维护 Runner

相比之下,Specific Runner 则是专门为单个项目配置的 Runner。每个项目都可以拥有自己的 Specific Runner,该 Runner 的配置与该项目的需求和特点密切相关。Specific Runner 适用于需要定制化或具有特定要求的 CI/CD 流程的项目。例如,某个项目可能需要在特定环境下运行测试,或者依赖于某些特定的软件包或工具。在这种情况下,为该项目配置一个 Specific Runner 可以确保作业在合适的环境中执行,并且能够满足项目特定的要求。

总的来说,Shared Runner 适用于简单的、标准化的 CI/CD 流程,能够为多个项目提供共享资源;而 Specific Runner 则适用于定制化或具有特定要求的 CI/CD 流程,能够为单个项目提供定制化的执行环境和配置。选择使用哪种类型的 Runner,取决于项目的需求和团队的实际情况,以确保 CI/CD 流程的顺利运行和高效管理。


GitLab Runner 的特性丰富多样,通过支持多种执行器、灵活配置 Runner 标签以及提供高级功能如缓存、并发、重试等,为团队提供了一个强大而灵活的 CI/CD 解决方案,帮助团队更高效地构建、测试和部署他们的应用程序。

首先,GitLab Runner 支持多种执行器,包括 ShellDockerKubernetes、SSH 等。这意味着你可以根据项目的需求选择合适的执行环境。例如,对于容器化的应用程序,你可以选择 Docker 执行器来在容器中执行作业,而对于需要在 Kubernetes 集群中运行的作业,你可以选择 Kubernetes 执行器。

其次,GitLab Runner 支持配置不同标签的 Runner。通过为 Runner 分配标签,你可以灵活地将 Runner 分配给不同的作业或项目。这样一来,你可以根据作业的特点和需求,将特定的 Runner 分配给相应的作业,从而实现作业的定制化执行。

另外,GitLab Runner 还支持一系列高级功能,如缓存并发重试等。

  • 缓存功能可以在作业执行过程中缓存依赖项,从而加速后续的作业执行速度。
  • 并发功能允许同时执行多个作业,提高了整体的 CI/CD 效率。
  • 重试功能可以在作业执行失败时自动进行重试,提高了系统的稳定性和可靠性。

这些功能的结合使用,可以有效地提高 CI/CD 流程的效率和稳定性,使团队能够更快速、更可靠地交付软件。


你可以遵循以下步骤安装和配置 GitLab Runne

注:下面的介绍假设你已经安装了 Docker 或桌面版的 Docker Desktop 并且 Docker 正在运行。


首先,你需要从 Docker Hub 获取 GitLab Runner 的 Docker 镜像。打开命令提示符或 PowerShell 并运行以下命令:

docker pull gitlab/gitlab-runner:latest

这将下载最新版本的 GitLab Runner Docker 镜像。


接下来,需要创建并启动一个 GitLab Runner 容器。你可以通过以下命令来实现:

docker run -d --name gitlab-runner --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  gitlab/gitlab-runner:latest

该命令做了下面几件事情:

  1. -d 使容器在后台运行。
  2. --name gitlab-runner 给容器命名为 gitlab-runner。
  3. --restart always 确保容器在退出时自动重启。
  4. -v /var/run/docker.sock:/var/run/docker.sock
    允许 GitLab Runner 容器内部启动新的 Docker 容器,这对于大多数 CI/CD 任务是必需的。
  5. -v /srv/gitlab-runner/config:/etc/gitlab-runner
     GitLab Runner 的配置文件持久化到宿主机的 /srv/gitlab-runner/config 目录。

注意:Windows 用户可能需要调整卷挂载的路径(/srv/gitlab-runner/config 和 /var/run/docker.sock),确保它们在你的系统上有效。


在容器启动后,你需要注册 GitLab Runner 到你的 GitLab 实例。首先,进入到你的 GitLab Runner 容器:

docker exec -it gitlab-runner bash

然后,运行注册命令:

gitlab-runner register

在注册过程中,你将需要提供:

  • 你的 GitLab 实例的 URL。
  • Runner 的注册令牌,可以在 GitLab 项目的 Settings > CI/CD > Runners 部分找到。
  • Runner 的描述和标签。
  • 执行器类型,对于 Docker,选择 docker。
  • Docker 镜像,例如 ubuntu:latest。

按照提示完成注册过程即可。


注册完成后,你可以在 GitLab 的 Settings > CI/CD > Runners 部分看到你的 Runner。如果 Runner 显示为在线状态,那么你已经成功设置了 GitLab Runner。


注册完成后,你可以输入 exit 命令退出容器。至此,已经成功在 ocker 上安装并配置了 GitLab Runner。后续可以开始使用它来执行 CI/CD 任务了。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。