【基于 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
  - 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博客

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Gitlab CI/CD指的是Gitlab提供的持续集成和持续交付的功能。它可以帮助开发团队实现自动化的构建、测试和部署过程,从而提高开发效率和软件质量。 要使用GitLab CI/CD,需要熟悉.gitlab-ci.yml配置文件的语法及其属性。这个配置文件定义了构建和部署流程的步骤、依赖关系和环境变量等信息。你可以根据项目的需求自定义配置文件,GitLab CI/CD会根据配置文件的内容来执行相应的操作。 GitLab CI/CDGitLab中内置的一个功能强大的工具,它可以将连续集成、交付和部署应用于软件项目,而无需依赖第三方应用程序或集成。具体来说,它通过使用GitLab Runner来执行构建和部署作业,可以支持各种不同的项目类型和编程语言。你可以在GitLab的界面上配置、管理和监控CI/CD管道,查看运行结果和日志。 总之,GitLab CI/CD是一个强大的工具,可以帮助开发团队实现持续集成和持续交付,提高软件开发的效率和质量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Gitlab CI/CD 简单介绍](https://blog.csdn.net/wangjiang_qianmo/article/details/122867335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用GitLab进行CI/CD简介](https://blog.csdn.net/FatTigerx/article/details/103766541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stars.Sky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值