【基于 GitLab 的 CI/CD 实践】02、gitlab-runner 实践

目录

一、gitlab-runner 简介

1.1 要求

1.2 特点

二、GitLab Runner 安装

2.1 使用 GItLab 官方仓库安装

2.2 使用 deb/rpm 软件包

2.3 在容器中运行 GitLab Runner

三、GitLab Runner 注册

3.1 GitLabRunner 类型

3.2 获取 runner token

获取 shared 类型 runner token  

​获取 group 类型的 runner token  

​获取 specific 类型的 runner token  

3.3 进行注册

四、GitLab Runner 命令

4.1 启动命令

4.2 注册命令

4.3 服务管理

五、运行流水线任务(效果演示)

5.1 编写一个简单的 yml 文件

5.2 测试流水线


一、gitlab-runner 简介

        GitLab Runner 是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与 Gitlab CI 结合使用, Gitlab CI 是 Gitlab 随附的用于协调作业的开源持续集成服务。

1.1 要求

  • GitLab Runner 是用 Go 编写的,可以作为一个二进制文件运行,不需要特定于语言的要求。它旨在在 GNU/Linux,macOS 和 Windows 操作系统上运行。只要您可以在其他操作系统上编译 Go 二进制文件,其他操作系统就可能会运行。

  • 如果要使用 Docker,请安装最新版本。GitLab Runner 需要最少的 Docker v1.13.0

  • GitLab Runner 版本应与 GitLab 版本同步。尽管较旧的 Runner 仍可以使用较新的 GitLab 版本,反之亦然,但在某些情况下,如果版本存在差异,则功能可能不可用或无法正常工作。在次要版本更新之间可以保证向后兼容性,但是请注意,GitLab 的次要版本更新会引入新功能,这些新功能将要求 Runner 在同一次要版本上使用。

1.2 特点

  • 允许运行:

    • 同时执行多个作业。

    • 对多个服务器(甚至每个项目)使用多个令牌。

    • 限制每个令牌的并行作业数。

  • 可以运行作业:

    • 在本地。

    • 使用 Docker 容器。

    • 使用 Docker 容器并通过 SSH 执行作业。

    • 使用 Docker 容器在不同的云和虚拟化管理程序上自动缩放。

    • 连接到远程 SSH 服务器。

  • 用 Go 编写并以单个二进制文件的形式分发,而没有其他要求。

  • 支持 Bash,Windows Batch 和 Windows PowerShell。

  • 在 GNU / Linux,macOS 和 Windows(几乎可以在任何可以运行 Docker 的地方)上运行。

  • 允许自定义作业运行环境。

  • 自动重新加载配置,无需重启。

  • 易于使用的设置,并支持 Docker,Docker-SSH,Parallels 或 SSH 运行环境。

  • 启用 Docker 容器的缓存。

  • 易于安装,可作为 GNU / Linux,macOS 和 Windows 的服务。

  • 嵌入式 Prometheus 指标 HTTP 服务器。

  • 裁判工作者监视 Prometheus 度量标准和其他特定于工作的数据并将其传递给 GitLab。

二、GitLab Runner 安装

2.1 使用 GItLab 官方仓库安装

参考官方文档:使用官方极狐GitLab 仓库安装极狐GitLab Runner | 极狐GitLab 

2.2 使用 deb/rpm 软件包

清华源下载地址:Index of /gitlab-runner/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

# 安装
rpm -ivh gitlab-runner-15.3.3-1.x86_64.rpm# 启动服务
systemctl start gitlab-runner

2.3 在容器中运行 GitLab Runner

参考官方文档:在容器中运行极狐GitLab Runner | 极狐GitLab

三、GitLab Runner 注册

官方参考文档:注册 Runner | 极狐GitLab 

大概过程:获取 runner token -> 进行注册 

3.1 GitLabRunner 类型

  • shared:运行整个平台项目的作业(gitlab)

  • group:运行特定 group 下的所有项目的作业(group)

  • specific: 运行指定的项目作业(project)

  • locked:无法运行项目作业

  • paused:不会运行作业

3.2 获取 runner token

获取 shared 类型 runner token  

需要管理员访问极狐 GitLab 管理中心并点击 概览 > Runner。 

获取 group 类型的 runner token  

访问 设置 > CI/CD 并展开 Runner

​ 获取 specific 类型的 runner token  

进入具体的项目 -> Settings -> CI/CD -> Runners -> Specific Runners  

​ 

3.3 进行注册

方式一:交互式注册

官方步骤:注册 Runner | 极狐GitLab 

[root@run01 ~]# gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=3293 revision=f767c145 version=15.3.3
Running in system-mode.                            Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.170.133/
Enter the registration token:
GR1348941sUxNyye1qD4HcTSW-TMw
Enter a description for the runner:
[run01]: test
Enter tags for the runner (comma-separated):
build
Enter optional maintenance note for the runner:
this is d test
Registering runner... succeeded                     runner=GR1348941sUxNyye1
Enter an executor: custom, parallels, shell, docker-ssh+machine, docker, docker-ssh, ssh, virtualbox, docker+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml" 

方式二:直接注册

参考官方文档:注册 Runner | 极狐GitLab

效果:注册了一个指定的 runner 并且是锁定状态的

四、GitLab Runner 命令

GitLab Runner 包含一组命令,可用于注册,管理和运行构建。

4.1 启动命令

gitlab-runner --debug <command>   # 调试模式排查错误特别有用。
gitlab-runner <command> --help    # 获取帮助信息
gitlab-runner run                 # 普通用户模式  配置文件位置 ~/.gitlab-runner/config.toml
sudo gitlab-runner run            # 超级用户模式  配置文件位置 /etc/gitlab-runner/config.toml

4.2 注册命令

gitlab-runner register      # 默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner list          # 此命令列出了保存在配置文件中的所有运行程序
gitlab-runner verify        # 此命令检查注册的 runner 是否可以连接,但不验证 GitLab 服务是否正在使用 runner。 --delete 删除
gitlab-runner unregister    # 该命令使用 GitLab 取消已注册的 runner。# 使用令牌注销
gitlab-runner unregister --url http://xxx/ --token t0kxx# 使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner# 注销所有
gitlab-runner unregister --all-runners

4.3 服务管理

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner# --user 指定将用于执行构建的用户
# --working-directory  指定将使用 Shell executor 运行构建时所有数据将存储在其中的根目录gitlab-runner uninstall # 该命令停止运行并从服务中卸载 GitLab Runner。gitlab-runner start     # 该命令启动 GitLab Runner 服务。gitlab-runner stop      # 该命令停止 GitLab Runner 服务。gitlab-runner restart   # 该命令将停止,然后启动 GitLab Runner 服务。gitlab-runner status    # 此命令显示 GitLab Runner 服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零。# 也可以是使用 systemctl 管理 runner

五、运行流水线任务(效果演示)

5.1 编写一个简单的 yml 文件

在 gitlab 仓库中项目根目录添加一个 .gitlab-ci.yml 文件,文件内容如下:

stages:- build- deploybuild:stage: buildtags:- buildonly:- masterscript:- echo "mvn clean "- echo "mvn install"deploy:stage: deploytags:- deployonly:- masterscript:- echo "hello deploy"

这个流水线共包含两个 job,分别是 build 和 deploy

  build job 包含一个 stage build。 build stage 配置了在具有 build 标签的 runner 中运行,限制为 master 分支提交,运行构建命令。

  deploy job 包含一个 stage deploy。 deploy stage 配置了在具有 deploy 标签的 runner 中运行,限制为 master 分支提交,运行发布命令。

5.2 测试流水线

编写好 yml 文件之后,开始模拟在 master 分支提交代码,此时会发现流水线正在运行。 

上一篇文章:【基于 GitLab 的 CI/CD 实践】01、GitLab CI/CD 基础概念_Stars.Sky的博客-CSDN博客

下一篇文章:【基于 GitLab 的 CI/CD 实践】03、GitLab Pipeline 实践(上)_Stars.Sky的博客-CSDN博客

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

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

相关文章

基于Gerapy部署分布式爬虫管理平台

文章目录 1. 服务器安装scrapyd1.1 scrapyd安装1.2 scrapyd配置允许外网访问1.3 服务器安全组开启端口1.4 服务器防火墙开启端口1.5 scrapyd测试 2. Gerapy 环境搭建2.1 gerapy安装2.2 gerapy测试2.3 项目部署2.4 定时任务2.5 线上代码修改 Gerapy是一个Python的分布式爬虫部署…

基于单片机的智能台灯 灯光控制系统人体感应楼梯灯系统的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b;主通过光敏采集当前光线强度&#xff1b;通过PMW灯光调节电路&#xff0c;我们可以根据不同的光线亮度&#xff0c;进行3挡调节&#xff1b;通过人体红外检测当前是否有人&#xff1b;通过不同光线情况下使用PWM脉冲电路进行调节…

Knife4j-的使用(详细教程)

文章目录 前言一、简介二、版本参考三、基本使用1. 导入相关依赖2. 比对效果3. 增强特性应用 四、Spring-Cloud 整合1. 项目准备2. 实现步骤2.1 依赖引入2.2 编写配置类2.2.1基础信息配置2.2.2 配置接口信息2.2.3 安全认证配置 2.3 常用注解的使用2.3.1 Api2.3.2 ApiOperation2…

【全方位解析】如何写好技术文章

前言 为何而写 技术成长&#xff1a;相对于庞大的计算机领域的知识体系&#xff0c;人的记忆还是太有限了&#xff0c;而且随着年龄的增大&#xff0c;记忆同样也会逐渐衰退&#xff0c;正如俗话所说“好记性不如烂笔头”。并且在分享博客的过程中&#xff0c;我们也可以和大…

OKCC呼叫中心的坐席监控功能有什么

最近很多客户都在跟我谈他们企业的电话客服工作量都非常大&#xff0c;虽然客服人员在服务时应该态度谦和&#xff0c;但是遇到难缠的客户&#xff0c;客服人员总有脾气忍不住的时候&#xff0c;言语上会带有情绪&#xff0c;这些客服人员会因为服务水平欠佳让客户不满意从而产…

【EXCEL】数据录入的快捷键和正确格式

目录 0.环境 1.内容概述 2.具体内容 2.1数据录入换行换列的快捷键&#xff08;标准的数据输入方式&#xff09; 2.2日期的正确格式和使用&#xff08;标准日期格式与长日期&#xff09; 2.2.1 标准日期 2.2.2 长日期 2.2.3 显示当前日期和时间的快捷键 2.3百分比的正确…

ChatGPT助力DevOps的优势与局限

一、前言 DevOps 是一种方法论&#xff0c;旨在提高软件开发和 IT 运营团队的协作和效率。DevOps 涉及各种任务和流程的自动化&#xff0c;例如规划、编码、测试、部署、监控和故障排除。然而&#xff0c;其中一些任务和流程仍然有大量任务需要人工手动处理&#xff0c;而这会…

C#基础--委托

C#基础–委托 C#基础–委托 简单说它就是一个能把方法当参数传递的对象&#xff0c;而且还知道怎么调用这个方法&#xff0c;同时也是粒度更小的“接口”&#xff08;约束了指向方法的签名&#xff09; 一、什么是委托&#xff0c;委托的本质是什么&#xff1f; 跟方法有点类似…

【2023 年第三届长三角高校数学建模竞赛】B 题 长三角新能源汽车发展与双碳关系研究 18页论文、数据和代码

【2023 年第三届长三角高校数学建模竞赛】B 题 长三角新能源汽车发展与双碳关系研究 18页论文、数据和代码 1 题目 《节能与新能源汽车技术路线图 2.0》提出至 2035 年&#xff0c;新能源汽车市场占比超过 50%&#xff0c;燃料电池汽车保有量达到 100 万辆&#xff0c;节能汽车…

【MySQL】MySQL在Centos7环境下安装

目录 一、卸载不要的环境 1.1、查看是否有安装mysql 1.2、关闭运行的程序 1.3、卸载安装 二、配置yum 源 2.1、下载yum 源 2.2 安装yum源 2.3 查看是否已经生效 三、安装mysql服务 四、启动服务 五、登录方法 方法一&#xff08;不行就下一个&#xff09; 方法二&#xff08;不…

动态sql语句

1.1 动态sql语句概述 Mybatis 的映射文件中&#xff0c;业务逻辑复杂时&#xff0c; SQL是动态变化的&#xff0c;此时在前面的学习中 SQL 就不能满足要求了。 参考的官方文档&#xff1a; 1.2 动态 SQL 之<if> 根据实体类的不同取值&#xff0c;使用不同的 SQL语句…

浅谈自动化测试工具 Appium

目录 前言&#xff1a; 一、简单介绍 &#xff08;一&#xff09;测试对象 &#xff08;二&#xff09;支持平台及语言 &#xff08;三&#xff09;工作原理 &#xff08;四&#xff09;安装工具 二、环境搭建 &#xff08;一&#xff09;安装 Android SDK &#xff0…

和chatgpt学架构02-环境搭建

目录 1 安装vs code2 vs code功能介绍3 安装nodejs4 安装vue5 在vs code打开工程总结 我们在上一篇 技术选型 里咨询了chatgpt前后端的框架选择和数据库的选择。有了框架之后就需要选择合适的开发工具了&#xff0c;继续咨询一下chatgpt 我现在选型&#xff0c;前端使用vue&am…

将媒体公司资产迁移到 Amazon S3 的技术方案

随着媒体公司的发展&#xff0c;他们在仓库中积累了大量的旧磁带和未数字化的视频。这些资产可能很有价值&#xff0c;但以目前的形式很难访问和货币化。此外&#xff0c;将这些资产存储在仓库中既有风险又昂贵。 媒体企业可以通过将其资产迁移到云存储来解决这些问题&#xf…

Lua 批量修改文件夹下文件名

local s io.popen("dir C:\\Users\\lizhiyuan\\Desktop\\国家知识产权局ftp法律状态数据\\data /b/s") local filelist s:read("*a")local start_pos 0while 1 do_,end_pos,line string.find(filelist, "([^\n\r].xml)", start_pos)if not e…

Java List中通过对象属性排序,可实现多条件排序

直接上代码&#xff1a; import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Data;import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;/*** List 对象属性排序*/Data AllArgsConstructor clas…

xml.etree.ElementTree

python使用 xml.etree.ElementTree包的时候&#xff0c;对xml中的空标签进行了简写&#xff0c;想恢复成正常模式怎么弄

(学习笔记-TCP连接断开)TCP四次挥手

TCP四次挥手过程 TCP断开连接是通过四次挥手实现的&#xff0c;双方都可以主动断开连接&#xff0c;断开连接后主机中的资源将被释放&#xff0c;四次挥手的过程如下&#xff1a; 客户端打算关闭连接时&#xff0c;会发送一个TCP首部FIN标志位为1的报文&#xff0c;也就是FIN报…

基础语言模型LLaMA

LLaMA包含从7B到65B参数的基础语言模型集合。Meta在数万亿个tokens上训练了模型&#xff0c;LLaMA-13B在大多数基准测试中优于GPT-3&#xff08;175B&#xff09;。 来自&#xff1a;LLaMA: Open and Efficient Foundation Language Models 目录 背景概述方法预训练数据架构Op…

LangChain + Embedding + Chromdb,关联使用ChatGLM的本地搭建训练平台教程

一.介绍 OpenAI 在国内用户注册会遇到各种阻力&#xff0c;目前可行的方法是使用本地数据集的功能实现联网搜索并给出回答&#xff0c;提炼出TXT、WORD 文档里的内容。 现在主流的技术是基于强大的第三方开源库&#xff1a;LangChain 。 文档地址&#xff1a;&#x1f99c;…