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

这篇具有很好参考价值的文章主要介绍了【基于 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

gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd

# 安装
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。 

gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd

gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd获取 group 类型的 runner token  

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

gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd​ gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cdgitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd获取 specific 类型的 runner token  

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

gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd​ gitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cdgitlab runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd

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 的 CI/CD 实践,gitlab,ci/cd

四、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 runner 使用,基于 GitLab 的 CI/CD 实践,gitlab,ci/cd

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

下一篇文章:【基于 GitLab 的 CI/CD 实践】03、GitLab Pipeline 实践(上)_Stars.Sky的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-597368.html

到了这里,关于【基于 GitLab 的 CI/CD 实践】02、gitlab-runner 实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GitLab与GitLab Runner安装(RPM与Docker方式),CI/CD初体验

    GitLab 是一个强大的版本控制系统和协作平台,记录一下在实际工作中关于 GitLab 的安装使用记录。 一开始使用 GitLab 时,是在 CentOS7 上直接以 rpm 包的方式进行安装,仅作为代码托管工具来使用,版本: 14.10.4 。 后续预研 GitLab 的 CI/CD 及流水线时,采用 Docker 方式安装,版本

    2024年02月11日
    浏览(41)
  • 实现基于 GitLab 的数据库 CI/CD 最佳实践

    数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA(DevOps Research Assessment)是一家专注于 DevOps 的研究机构, 在该领域以专业与客

    2024年02月07日
    浏览(97)
  • kubernetes基于helm部署gitlab-runner

    这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-runner。 先决条件: 已运行的 Kubernetes 集群 已运行的 gitlab 实例 项目地址:https://gitlab.com/gitlab-org/charts/gitlab-runner 官方文档:https://docs.gitlab.com/runner/install/kubernetes.html 1、登陆UI创建新的runner 选择Your work– Admin Area 2、选择CI/

    2024年02月13日
    浏览(34)
  • gitlab-Runner搭建

    root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行: gitlab-runner register --url https://gitlab.com --token glrt-Upn7mu 基于权限: root sudo chmod +x /usr/lib/gitlab-runner/gitlab-runner 直接运

    2024年02月14日
    浏览(50)
  • 安装注册使用gitlab-runner

    指路下载gitlab-runner 注意: 一个项目使用一个gitlab-runner,不同的项目需要注册多个gitlab-runner 注册时候,需要使用gitlab上给的指令进行注册,那在该项目中的runner才可以使用。 找到放置下载后的exe文件的位置,复制地址。 管理员身份打开powershell cd 到放置exe文件的地址 敲进

    2024年02月08日
    浏览(84)
  • Docker中gitlab以及gitlab-runner的安装与使用

    1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner,并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用,本文未讲述https配置,如有需求,可自行百度 3、 Docker如何安装可以自行百度 1、使用命令直接安装gitlab最新版本(建议安装最新版本,更加安

    2024年02月14日
    浏览(45)
  • gitlab-runner安装和部署项目

    目录 1.安装gitlab-runner 1.1 添加官方仓库 1.2.1 安装最新版本 1.2.2 安装指定版本(可选) 1.2.3 更新runner(可选) 1.3 随便点开gitlab上的一个项目 1.4 gitlab-runner的注册 2.配置gitlab-runner 3.runner一些命令 gitlab官网:Install GitLab Runner | GitLab .gitlab-ci.yml文件语法参考:`.gitlab-ci.yml` keywor

    2024年02月10日
    浏览(39)
  • 本地gitlab-runner的创建与注册

    引言 之前通过一些方式在本地创建runner,时而会出现一些未知的坑,所以写下本文记录runner可以无坑创建的方式。 以下注册runner到相应仓库的前提是已经在本地安装了gitlab-runner 具体安装方式见官网 本地gitlab-runner安装常用的指令 查看gitlab runner服务状态 sudo gitlab-runner statu

    2024年03月25日
    浏览(58)
  • Git引起的 gitlab-runner 报错

    在查看gitlab CI作业时,发现意外报错  报错时由于git版本引起的,查看git版本 使用yum list | grep git,yum默认阿里云源里面最新的版本就是1.18.3  我们需要升级git 的版本 3、检查版本测试 版本已经更新最2.31了,再次执行gitlab CI作业,报错已经解决了。  

    2024年02月12日
    浏览(43)
  • 极狐GitLab 企业级 CI/CD 规模化落地实践指南(一)

    目录 template 引用,减少代码冗余,增强 CI/CD 构建扩展性 问题 1:代码冗余,低效实践 问题 2:维护性难,工作量大 ➤ local ➤ file ➤ remote ➤ template 收益 1:一处修改,多处生效 收益 2:高效构建,简单便捷 Component,打造 CI/CD Pipeline 单一可信源,简化 CI/CD Pipeline 构建 Co

    2024年02月12日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包