【CICD】GitLab Runner 和执行器(Executor

GitLab Runner 和执行器(Executor)是 GitLab CI/CD 管道中的两个重要组成部分。理解它们之间的关系有助于更好地配置和使用 CI/CD 流水线。runer是gitlab的ci-agent对接gitlab,而执行器是接受runer下发的ci的任务来干活的。也就是说gitrunner是一个控制端,它负责去和gitlab-ci环境通信,获取任务,然后把这些任务分配给它的执行器来完成任务 Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。_gitlab runner docker in docker-CSDN博客

GitLab Runner

GitLab Runner 是 GitLab CI/CD 的客户端,负责执行 CI/CD 作业(jobs)。Runner 从 GitLab 服务器接收作业,并在指定的环境中运行这些作业。Runner 可以安装在多种平台上,包括 Linux、Windows、macOS 等。

执行器(Executor)

执行器(Executor) 是 GitLab Runner 的一部分,决定了 Runner 如何执行作业。不同的执行器类型提供了不同的执行环境和功能。GitLab 提供了多种执行器类型,每种类型适用于不同的场景。

常见的执行器类型

  1. Shell

    • 描述:直接在 Runner 所在的主机上执行命令。
    • 适用场景:适用于简单的脚本和命令,不需要复杂的隔离环境。
    • 配置示例
      sudo gitlab-runner register -n \--url https://gitlab.example.com/ \--registration-token REGISTRATION_TOKEN \--executor shell \--description "My Shell Runner"
  2. Docker

    • 描述:使用 Docker 容器来执行作业。每个作业都在一个新的容器中运行。
    • 适用场景:适用于需要隔离环境的作业,可以轻松地切换不同的运行环境。
    • 配置示例:  如果gitrunner是直接安装在主机上的,那么gitrunner没执行一个job会在主机上启动一个docker容器来执行。
      sudo gitlab-runner register -n \--url https://gitlab.example.com/ \--registration-token REGISTRATION_TOKEN \--executor docker \--description "My Docker Runner" \--docker-image alpine:latest
  3. Docker+Machine

    • 描述:结合了 Docker 和 Docker Machine,可以在需要时动态创建新的 Docker 主机。
    • 适用场景:适用于大规模的 CI/CD 管道,需要动态扩展资源。
    • 配置示例
      sudo gitlab-runner register -n \--url https://gitlab.example.com/ \--registration-token REGISTRATION_TOKEN \--executor docker+machine \--description "My Docker+Machine Runner" \--docker-machine-name my-docker-machine-$RUNNER_NUM \--docker-image alpine:latest
  4. Kubernetes

    • 描述:在 Kubernetes 集群中执行作业。每个作业都在一个新的 Pod 中运行。
    • 适用场景:适用于需要在 Kubernetes 集群中运行的作业。
    • 配置示例
      sudo gitlab-runner register -n \--url https://gitlab.example.com/ \--registration-token REGISTRATION_TOKEN \--executor kubernetes \--description "My Kubernetes Runner" \--kubernetes-namespace default
  5. Parallel

    • 描述:允许多个作业并行执行。
    • 适用场景:适用于需要并行执行多个任务的场景。
    • 配置示例
      sudo gitlab-runner register -n \--url https://gitlab.example.com/ \--registration-token REGISTRATION_TOKEN \--executor parallel \--description "My Parallel Runner" \--parallel-commands 4

在 .gitlab-ci.yml 中指定执行器

虽然 .gitlab-ci.yml 文件中的 default 块可以定义全局的执行器类型,但您也可以在特定的 job 中覆盖这些设置。

示例配置
# 全局配置
default:image: alpine:latestbefore_script:- echo "Running in Docker"stages:- build- test- deploy# 使用 Docker 执行器的 job
build_job:stage: buildscript:- echo "Building the application"- apk add --no-cache build-base- make build# 使用 Shell 执行器的 job
test_job:stage: testscript:- echo "Running tests"- ./run_tests.shbefore_script: []  # 清除全局的 before_scripttags:- shell# 使用 Docker 执行器的 job
deploy_job:stage: deployscript:- echo "Deploying the application"- ./deploy.sh

解释

  1. 全局配置

    • default 块定义了默认的 Docker 镜像和 before_script
    • stages 定义了 CI/CD 流水线的阶段。
  2. 使用 Docker 执行器的 job

    • build_job 和 deploy_job 使用全局配置的 Docker 执行器。
  3. 使用 Shell 执行器的 job

    • test_job 使用 shell 执行器。
    • before_script: [] 清除了全局的 before_script,以避免不必要的命令执行。
    • tags: ["shell"] 指定了该 job 应该在带有 shell 标签的 Runner 上运行。确保您有一个带有 shell 标签的 Runner 配置。

配置 Runner

确保您有一个带有 shell 标签的 Runner 配置。您可以在 GitLab 的 Runner 设置中添加一个 Shell 执行器类型的 Runner,并为其分配 shell 标签。

  1. 注册 Shell Runner

    • 下载并安装 GitLab Runner。
    • 注册一个新的 Runner,并选择 shell 作为执行器类型:
      sudo gitlab-runner register
    • 按照提示输入必要的信息,包括 shell 作为执行器类型。
    • 为 Runner 分配 shell 标签:
      sudo gitlab-runner tag <runner_id> shell
  2. 验证 Runner

    • 确保 Runner 已经成功注册并在线。
    • 检查 Runner 的标签是否正确设置。

通过以上步骤,您可以在 .gitlab-ci.yml 文件中指定某个 job 使用 shell 执行器,而其他 job 继续使用全局配置的 docker 执行器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring boot + Vue2小项目基本模板

Spring boot Vue2小项目基本模板 基本介绍基本环境安装项目搭建最终效果展示 基本介绍 项目来源哔哩哔哩的青戈&#xff0c;跟着学习搭建自己的简单vue小项目&#xff1b;看别人的项目总觉得看不懂&#xff0c;需要慢慢打磨 这里目前只简单的搭建了菜单导航和表格页面&#x…

“箱体分析”,箱体支撑压力位,分析市场方向 通达信主图 源码

使用技巧 该指标用于在通达信的K线图上绘制箱体分析图形&#xff0c;主要通过支撑位、波浪顶、箱体上下限等多个技术指标来识别股票的支撑和压力区域。 支撑位分析&#xff1a;可以帮助用户识别股价的支撑区域&#xff0c;并判断是否会反弹。 箱体震荡区间识别&#xff1a;通…

PICO+Unity MR视频透视

官方链接&#xff1a;视频透视 | PICO 开发者平台 在 PXR_Manager (Script) 面板上&#xff0c;勾选 Video Seethrough 选框 2.将 Clear Flags 设置为 Solid Color。颜色设置为黑色&#xff0c;Alpha 通道设置为完全透明 3.在代码中开启透视 using System.Collections; usin…

大学生福音!用gpt-4o和o1大模型拿捏大学化学作业

文章目录 零、前言一、使用GPT操作指导作业拍照使用o1-preview大模型小结 二、感受 零、前言 昨天发了gpt-4o拿捏大学物理作业&#xff0c;群友说&#xff0c;急需要一位化学老师指导 虚竹哥是宠粉的&#xff0c;连夜请了一位博士级的化学老师~ 一、使用GPT 操作指导 ChatG…

2024-11-12 学习人工智能的Day25 scikit-learn库初见

简简单单的数据集 from sklearn.datasets import load_iris/fectch 简单的引用世界数据集和玩具数据集方式 #下面是在获取数据集后常用的值 feature feature_names DESCR target target_names filename from sklearn.datasets import load_iris import numpy as np import…

2024 年将 Postman 文档导出为 HTML 或 Markdown

2024 年将 Postman 文档导出为 HTML 或 Markdown

访问网页的全过程(知识串联)

开发岗中总是会考很多计算机网络的知识点&#xff0c;但如果让面试官只靠一道题&#xff0c;便涵盖最多的计网知识点&#xff0c;那可能就是 网页浏览的全过程 了。本篇文章将带大家从头到尾过一遍这道被考烂的面试题&#xff0c;必会&#xff01;&#xff01;&#xff01; 总…

服务器硬件介绍

计算机介绍 现在的人们几乎无时无刻都在使用电脑&#xff01;而且已经离不开电脑了。像桌上的台式电脑(桌机)、笔记本电脑(笔电)、平板电脑、智能手机等等&#xff0c;这些东西都算是电脑。 台式机电脑介绍 计算机又被称为电脑。台式机电脑主要分为主机和显示器两个部分&…

04-HTTP协议、请求报文、响应报文

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

基于Multisim人数出入加减计数统计电路(含仿真和报告)

【全套资料.zip】人数出入加减计数统计电路Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 设计两路光控电路&#xff0c;一路放置在入口&#xff0c;另一路设置在出口&#xff0c;当有人…

车机安装第三方软件实现打开软件全屏教程

简介 越来越多的车友实现安装第三方软件了&#xff0c;但是有的车机的状态栏或者导航栏会遮挡安装的第三方软件。这样的话&#xff0c;第三方软件就会显示不全&#xff0c;体验感非常不好。所以&#xff0c;下面我教一下大家如何使用东君应用管家来实现打开第三方软件全屏。 全…

CLion配置QT开发环境

一、将qmake工程转为cmake工程&#xff08;方法一&#xff1a;用工具转换并做适当修改&#xff09; 1、工具链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1grW2QY3sW8X2JaHWM_ePPw 提取码&#xff1a;7at4 工具源码:https://github.com/milahu/qmake2cmake 2、执行…

第3章-需求 3.4 需求的合法合规性审查

3.4 需求的合法合规性审查 3.4.1 项目需求的合法性审查3.4.2 委托研发项目的法律问题3.4.3 项目实施过程中的知识产权问题1.开发成果的知识产权保护2.开发过程中的侵权风险防控 近年来随着依法治国的深度开展&#xff0c;企业合规的概念越来越多地出现在大众眼前&#xff0c;也…

怎么保护源代码,源代码防泄密的十种方法

在现代软件开发中&#xff0c;源代码被视为企业的“数字资产”&#xff0c;它不仅承载着企业的核心竞争力&#xff0c;更是推动技术创新和业务发展的基石。然而&#xff0c;随着信息技术的普及和开发环境的复杂化&#xff0c;源代码泄密的风险也在不断增加。保护源代码的安全已…

单相锁相环,原理与Matlab实现

单相锁相环基本原理 单相锁相环的基本原理图如下所示&#xff0c; u α u_\alpha uα​ u β u_\beta uβ​经Park变换、PI控制实现对角频率 ω \omega ω和角度 θ \theta θ的估算。不同锁相环方案之间的差异&#xff0c;主要表现在正交电压 u β u_\beta uβ​的生成&#x…

腾讯云双十一福利篇之CVM云服务器

&#x1f34b;引言 随着企业数字化转型的不断深入&#xff0c;对云计算的需求日益增长。腾讯云推出的云服务器&#xff08;CVM&#xff09;为企业提供了一种灵活、高效、经济的计算服务解决方案。CVM云服务器不仅能够快速响应业务需求&#xff0c;还可以帮助企业降低前期硬件投…

DDei在线设计器-国际化

国际化 从1.2.42版开始,DDei提供了国际化支持。默认提供了中文/英文两种语言。 编辑器会读取浏览器的语言设置&#xff0c;也能够在初始化时强行指定&#xff0c;默认使用zh_CN(中文)。 本示例基于教程快速指南开发&#xff0c;如果您不清楚怎样引入DDei设计器&#xff0c;请查…

NUXT3学习日记一(在我git中拉取代码、文件讲解)

Nuxt 3 是一个基于 Vue 3 的现代框架&#xff0c;用于构建服务器端渲染&#xff08;SSR&#xff09;和静态生成的应用程序。它提供了一种简化的方式来创建高性能的 Vue 应用&#xff0c;具有许多强大的功能和优点。以下是 Nuxt 3 的一些主要应用和优点&#xff1a; 一、应用场…

小米路由器3(R3)安装mixbox命令

sh -c /extdisks/sda1/ftp/install.sh && source /etc/profile &> /dev/null install.sh文件 或者在目录新建一个粘贴 #!/bin/sh -e #copyright by monlorclear logsh() {# 输出信息到/tmp/messages和标准输出logger -s -p 1 -t "$1" "$2&quo…

DAY27|贪心算法Part01|LeetCode:455.分发饼干、376. 摆动序列、53. 最大子序和

贪心算法 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 贪心算法并没有固定的套路&#xff0c;最难想的就在于如何通过局部最优去推出全局最优。在做一个题目的时候&#xff0c;靠自己手动模拟&#xff0c;如果模拟可行&#xff0c;就可以试一试贪心策略…