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

news2024/11/24 18:31:39

目录

一、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
  - deploy
 

build:
  stage: build
  tags:
    - build
  only:
    - master
  script:
    - echo "mvn clean "
    - echo "mvn install"


deploy:
  stage: deploy
  tags:
    - deploy
  only:
    - master
  script:
    - 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博客

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

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

相关文章

Linux驱动之从点LED灯开始

目录 一、环境 二、Linux 下 LED 灯驱动原理 2.1 地址映射 2.2 I/O 内存访问函数 三、硬件原理图分析 四、实验程序编写 4.1驱动程序编写 4.2测试APP编写 五、编译驱动程序和测试 APP 5.1 编译驱动程序 5.2 编译测试 APP 六、测试 本期的内容到这就结束了&#xff…

Ubuntu下的rdate命令

介绍 用途&#xff1a;rdate命令的用途是从远程服务器上同步时间并设置到本地。 安装rdate 执行命令sudo apt install rdate进行安装&#xff1a; 查看rdate命令的帮助信息 执行命令man rdate&#xff0c;可以查看rdate的帮助信息&#xff1a; 示例 从远程服务器上同…

基于opencv对高空拍摄视频消抖处理

一、问题背景 无人机在拍摄视频时&#xff0c;由于风向等影响因素&#xff0c;不可避免会出现位移和旋转&#xff0c;导致拍摄出的画面存在平移和旋转的帧间变换&#xff0c; 即“抖动” 抖动会改变目标物体 (车辆、行人) 的坐标&#xff0c;给后续的检测、跟踪任务引入额外误差…

Html基础知识学习——圣杯布局、margin负值、等高布局(十七)

文章目录 圣杯布局margin负值等高布局 圣杯布局 两边页面固定中间页面宽度随着浏览器大小自适应 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

macOS - 安装 node、npm

文章目录 关于 node安装安装 node、npm 关于 node node.js 官网 : https://nodejs.org/engithub : https://github.com/nodejs Node.js is a free, open-sourced, cross-platform JavaScript run-time environment— that lets developers write command line tools and serv…

使用QTableWidget实现录像排程操作

一、介绍 该录像排程&#xff0c;是采用继承于QTableWidget的ScheduleTableWidget类进行实现。在ScheduleTableWidget实现类中&#xff0c;去除了Table原本的横向表头和纵向表头&#xff0c;分别采用第一行和第一列构成新的表头。新的横向表头代表一天24小时&#xff0c;新的纵…

CMake基础入门

文章目录 一、一个目录下有一个源文件&#xff08;入门&#xff09;1.1 预定义的变量1.2 语法介绍cmake_minimum_requiredprojectsetmessageadd_executable 1.3 最基础的实例1.4 第一步优化&#xff1a;build目录实操流程 1.5 第二步优化&#xff1a;src目录1.5.1 实操流程1.5.…

用心做好一款堡垒机,升级版《新一代堡垒机建设指南》白皮书现已开放下载!

编者注&#xff1a;本文刊登在《新一代堡垒机建设指南》&#xff08;JumpServer v3.0发布纪念版&#xff09;序言部分&#xff0c;文章作者为JumpServer开源堡垒机项目创始人广宏伟。点击文章底部“阅读原文”链接&#xff0c;即可下载新版《新一代堡垒机建设指南》白皮书。 “…

Vue3 – 实现过渡动画

1 认识Vue的动画原理 2 动画中常见类的作用 3 animation动画实现 4 动画的常见属性设置 5 列表元素动画组实现 6 列表元素的移动动画 认识Vue的动画原理 利用transition标签和一系列的动画类来控制标签的动画效果。 transition标签的本质是帮你添加和删除动画类的。 trans…

SpringBoot整合EasyExcel实现读操作

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot整合EasyExcel实现读操作 ⏱️ 创作时间&#xff1a; 2023年…

linux中的sendmail发送邮件

Linux/UNIX 下的老牌邮件服务器。 Sendmail 作为一种免费的邮件服务器软件&#xff0c;已被广泛的应用于各种服务器中&#xff0c;它在稳定性、可移植性、及确保没有 bug 等方面具有一定的特色&#xff0c;且可以在网络中搜索到大量的使用资料。 一、邮件发送原理图 MUA&#x…

通过弹性算力支持与托管式机器学习服务,亚马逊云科技为客户提升技术竞争力

时下数字化浪潮中&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;已成为企业实现业务增长和数字化转型的重要技术&#xff0c;为企业提供了重新定义和调优业务模式的机遇。越来越多的企业希望利用人工智能技术提升竞争力&#xff0c;应对复杂的商业环境和市场挑战&…

机器学习实战:Python基于Ridge岭回归进行正则化(十三)

文章目录 1.前言1.1 岭回归的介绍1.2 岭回归的应用 2.自定义数据集实战演示2.1 导入函数2.2 创建数据集2.3 alpha0、1、10、100的分别情况 3.Dushanbe_house数据集实战演示3.1 导入函数和数据3.2 剔除空值及可视化3.3 整理数据3.4 训练和测试数据集3.5 评估数据集 4.讨论 1.前言…

mysql更新关联字段问题

现象 ### 表结构 CREATE TABLE wjf_test_update_num (id bigint(20) NOT NULL AUTO_INCREMENT,num1 int(11) DEFAULT NULL,num2 int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT3 DEFAULT CHARSETutf8 |## 插入两行数据 insert into wjf_test_update_nu…

从源码理解Scala中函数reduceRight的计算过程

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 以List集合为例&#xff0c;进行reduceRight()的计算过程分析&#xff0c;总体分为两部分&#xff0c;一部分是看最顶层特质的那个通用的reduceRight方法&#xff0c;另一部分是讲直接混入的特质的…

【Linux】分布式存储系统 Ceph

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 分布式存储系统 Ceph Ceph 概述1、Ceph 简介2、存储基础3、Ceph 优势4、Ceph 架构4、Ceph 核心组件5、OSD 存储后端6、Ceph 数据的存储过程7、Ceph 版本发行生命周期 Ceph 集…

Day13 02-Linux常用命令汇总

文章目录 第三章 Linux的常用命令【重要】3.1 命令格式的说明3.2 帮助命令3.2.1 man3.2.2 help 3.3 文件处理命令3.3.1 cd3.3.2 ls3.3.3 pwd3.3.4 mkdir3.3.5 touch3.3.6 echo3.3.7 cp3.3.8 mv3.3.9 rm3.3.10 vi编辑器3.3.11 ln 3.4 查看命令3.4.1 cat3.4.2 more3.4.3 head3.4.…

代码量、代码行数计算工具

cloc 极客命令行工具 下载地址&#xff1a;https://github.com/AlDanial/cloc 常用命令&#xff1a; // 文件夹的名称 cloc ./StaticAnalyzer/计算结果&#xff1a; 速度快&#xff0c;结果精准&#xff0c;十分实用&#xff01;

51单片机学习--数码管显示

首先实现静态数码管显示 SMG表示共阴极 &#xff0c;要让第三位显示数字6&#xff0c;需要LED6端口接0&#xff0c;即Y50&#xff0c;5的二进制为101&#xff0c;按P2_4 到 P2_2 的顺序接&#xff0c;则CBA分别接101 然后在数码管另一端&#xff0c;需要点亮的接上1&#xff…

亚信科技荣任「DBL电信行业工作组」副组长单位,AntDB数据库连年入选《中国数据库产品图谱》

日前&#xff0c;“2023可信数据库发展大会”在京圆满召开。亚信科技凭借自研的电信级核心交易数据库AntDB在通信行业15年的技术积累和行业贡献&#xff0c;成功当选为数据库应用创新实验室&#xff08;DBL&#xff09;电信行业工作组副组长单位。AntDB数据库连续两年入选《全球…