CI/CD: GitLab Runner安装注册配置管理

news2025/1/18 20:55:50

点击上方蓝字⭐️关注“DevOps云学堂”,接收最新技术实践

b40da5efcd33a0b0dd79aaf1edc5e83f.gif

今天是「DevOps云学堂」与你共同进步的第 21 

01db2a2d0d831284444e83a951b79411.png

本文是《GitLabCI实践》教程部分内容

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

安装要求

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

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

GitLab Runner版本应与GitLab版本同步。

可以在GNU / Linux,macOS,FreeBSD和Windows上安装和使用GitLab Runner 。您可以使用Docker安装它,手动下载二进制文件,也可以使用GitLab提供的rpm / deb软件包的存储库。

基于centos安装

curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_<arch>.rpm


rpm -i gitlab-runner_<arch>.rpm


rpm -Uvh gitlab-runner_<arch>.rpm

基于macos系统安装

sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/v12.6/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
gitlab-runner install
gitlab-runner start

基于Docker运行

mkdir ~/data/gitlab-runner/config
docker run --rm -t -id -v ~/data/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0

GitLab Runner注册

  • 类型

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

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

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

  • 状态

    • locked:锁定无法运行项目作业

    • paused:暂停不会运行作业

获取shared类型runnertoken

b697cf27ec4bd3a5a5679841f6f5d654.png

获取group类型的runnertoken

进入group -> Settings -> CI/CD -> Runners -> Group Runners

e22c4b0de04e757c1378f55ec3c928e5.png

获取specific类型的runnertoken

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

b6745822232bd68eef0b1a43848ecc20.png

启动容器交互式注册

docker run --rm -t -i -v ~/data/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:v12.6.0 register


Runtime platform                                    arch=amd64 os=linux pid=6 revision=ac8e767a version=12.6.0
Running in system-mode.


Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.1.105
Please enter the gitlab-ci token for this runner:
4tutaeWWL3srNEcmHs1s
Please enter the gitlab-ci description for this runner:
[00e4f023b5ae]: devops-service-runner
Please enter the gitlab-ci tags for this runner (comma separated):
build
Registering runner... succeeded                     runner=4tutaeWW
Please enter the executor: parallels, virtualbox, docker-ssh+machine, kubernetes, docker+machine, custom, docker, docker-ssh, shell, ssh:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

非交互式注册

docker run -itd --rm -v ~/data/gitlab-runner/config:/etc/gitlab-runner  gitlab/gitlab-runner:v12.6.0 register \
  --non-interactive \
  --executor "shell" \
  --url "http://192.168.1.200:30088/" \
  --registration-token "JRzzw2j1Ji6aBjwvkxAv" \
  --description "devops-runner" \
  --tag-list "build,deploy" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

效果

c33be8681305031140fb7944ab07089c.png

常用命令

启动命令

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

注册命令

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://gitlab.example.com/ --token t0k3n


#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner


#注销所有
gitlab-runner unregister --all-runners

服务管理

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服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零。

运行Pipeline

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"

d02a9da621896ca434c1b69a64a17fea.png


GitLabCI 有助于DevOps人员,例如敏捷开发中,开发与运维是同一个人,最便捷的开发方式。JenkinsCI适合在多角色团队中,职责分明、配置与代码分离、插件丰富。

c0b1bc08112238d39acd51c72108a28d.png


往期文章推荐


e7800479c440603e4b4641918e7a1ab9.jpeg

Bytebase SQL审核|将结果与代码提交进行关联

1f00ae0ac933e7c84ab196dad104ffe7.jpeg

度量: 采集流水线中的构建数据

0b9ea734f6a382ad12d880d1e4de1463.jpeg

基于Jira的持续交付流水线实践方式

4e0f656e7298325439747ed9bcc2666e.jpeg

如何使用GitLab CI/CD 触发多项目管道

e04335975dca80f9ec65a0376e16d867.jpeg

SonarQube 9.9 LTS 版本特性分析

如果这篇文章对您有帮助,欢迎转发点赞分享。您的关注是我持续分享的动力!

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

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

相关文章

计算机网络学习10(ARP协议详解)

ARP 协议&#xff0c;可以说是在协议栈中属于一个偏底层的、非常重要的、又非常简单的通信协议。 开始阅读这篇文章之前&#xff0c;你可以先看看下面几个问题&#xff1a; ARP 协议在协议栈中的位置&#xff1f; ARP 协议在协议栈中的位置非常重要&#xff0c;在理解了它的工…

Linux 内存 pt.1

哈喽大家好&#xff0c;我是咸鱼 今天我们来学习一下 Linux 操作系统核心之一&#xff1a;内存 跟 CPU 一样&#xff0c;内存也是操作系统最核心的功能之一&#xff0c;内存主要用来存储系统和程序的指令、数据、缓存等 关于内存的学习&#xff0c;我会尽量以通俗易懂的方式…

R语言的基本数学运算

目录 一、对象命名原则 二、基本数学运算 2.1 四则运算 2.2 余数和整除 2.3 次方或平方根 2.4 绝对值 2.5 exp()与对数 2.6 科学符号e 2.7 圆周率与三角函数 2.8 四舍五入函数 2.9 近似函数 2.10 阶乘 三、R语言控制运算的优先级 四、无限大 五、非数字&#xf…

OpenCV 实战3 对图像画框、获取图像像素位置

一、函数介绍 opencv中进行鼠标操作主要用到setMouseCallback这个函数&#xff0c;如下&#xff1a; void setMouseCallback(const String& winname, MouseCallback onMouse, void* userdata 0); winname&#xff1a;窗口名称 onMouse&#xff1a;鼠标响应函数&#x…

直击德国PLS展,联诚发倾力打造沉浸式视觉盛宴!

当地时间4月25-28日&#xff0c;备受关注的2023德国法兰克福国际专业灯光音响展ProlightSound&#xff08;以下简称“PLS展”&#xff09;在德国法兰克福盛大召开。联诚发携多款创新产品及多领域的应用解决方案精彩亮相&#xff0c;为全球客户打造沉浸式视觉盛宴&#xff0c;展…

HNU-计算机系统-实验1-PrototypeSystemLab

《计算机系统》 原型机实验报告 班级&#xff1a;计科21XX 学号&#xff1a;20210801XXXX 姓名&#xff1a;wolf 目录 1 实验项目一 1.1项目名称 1.2实验目的 1.3实验资源 2 实验任务 2.1原型机I 2.1.1练习内容 2.1.2思考问题 2.2原型机II-扩充指令集 2.2.1…

《编程思维与实践》1040.字符串消除

《编程思维与实践》1040.字符串消除 题目 思路 每次消除都可能会受到第一次插入字符的影响,所以难以直接判断在哪个位置插入哪个字符后消除的字符数最多. 因此考虑暴力枚举: 在每个位置依此插入A,B,C 对所有情况消除的字符数进行比较,求出最大值. 对于字符串的插入可以利用str…

这个看过吗

el-upload调两个接口&#xff0c;获取二进制文件 &#xff0c;并且上传后不立即执行&#xff0c;通过 this.$refs.upload.submit();触发提交&#xff0c;直接调两个接口&#xff0c;获取到二进制文件后传输 <el-upload:auto-upload"false":data"{report…

springboot+vue在线动漫信息平台(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线动漫信息平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

TPS和QPS的区别与联系

今天在工作中遇到了两个指标&#xff0c;将这两个指标作以解析。 1、TPS&#xff1a; Transactions Per Second&#xff0c;意思是每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程&#xff0c;具体的事务定义&#xff0c;可以是一个接口、多个接口、…

IDEA中application.yaml文件无法自动提示

问题描述&#xff1a; 在IDEA中application.properties可以自动提示&#xff0c;但是application.yml/application.yaml文件却不可以实现关键词提示和代码跳转 甚至&#xff0c;在Modules模块中都无法识别到application.yml文件&#xff01;&#xff01; 总感觉这个yml文件图标…

【C++学习】类和对象--继承

基本语法 继承是面向对象三大特性之一&#xff0c;有些类和类之间存在特殊关系。 下级别成员除了拥有上一级的共性还有自己的特点。 这个时候我们就可以考虑利用继承的技术&#xff0c;减少重复代码。 基本语法&#xff1a;class 子类 &#xff1a;继承方式 父类 子类也称为…

【HTML 标签详解】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

MySQL(三)-数据类型

MYSQL数据类型 1 整数类型2 浮点数类型和定点数类型3 日期与时间类型4 文本字符串类型5 二进制字符串类型6 数据类型的选择 表是由多列字段组成&#xff0c;每一个字段会有不同的数据类型&#xff0c;不同的数据类型决定了字段包含的数据内容。不同的数据类型也决定了mysql在使…

SpringBoot项目结构及依赖技术栈

目录 1、pom.xml文件配置说明 2、SpringBoot项目结构说明 3、入门案例关键配置说明 &#x1f308; 前面我们学习了SpringBoot快速入门案例&#xff0c;本节我们通过POM文件和项目结构分析两部分内容了解下关于SpringBoot的一些配置说明&#xff0c;以便全面了解SpringBoot项…

Javaweb | 转发、重定向

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 转发 转发与页面跳转 转发 转发的作用在服务器端&#xff0c;将请求发送给服务器上的其他资源&#xff0c;以共同完成一次请求的处理 页面跳转 使用forward跳转时&am…

MySQL(七)-日期和时间函数的使用解析

日期和时间函数的使用解析 1 获取当前日期的函数和获取当前时间的函数2 获取当前日期和时间的函数3 UNIX时间戳函数4 返回UTC日期的函数和返 UTC 时间的函数5 获取月份的函数MONTH(date)和 MONTHNAME(date)6 获取星期的函数DAYNAME(d)DAYOFWEEK(d)和WEEKDAY(d)7 获取星期数的函…

芯片封装基本流程及失效分析处理方法

芯片封装 芯片封装的目的在于对芯片进行保护与支撑作用、形成良好的散热与隔绝层、保证芯片的可靠性&#xff0c;使其在应用过程中高效稳定地发挥功效。 工艺流程 硅片减薄 使用物理手段&#xff0c;如磨削、研磨等&#xff1b;或者化学手段&#xff0c;如电化学腐蚀、湿法腐蚀…

2023-04-24:用go语言重写ffmpeg的muxing.c示例。

2023-04-24&#xff1a;用go语言重写ffmpeg的muxing.c示例。 答案2022-04-24&#xff1a; 本程序的大体过程如下&#xff1a; 打开输出文件并写入头部信息。 添加音频和视频流&#xff0c;并为每个流创建 AVCodecContext 对象&#xff0c;根据输入格式设置编码器参数&#x…

springboot 整合itext 实现pdf下载

一 itext介绍 1.1 核心组件介绍 Text中用文本块(Chunk)、短语(Phrase)和段落(paragraph)处理文本。 1.文本块(Chunk)是处理文本的最小单位&#xff0c;有一串带格式&#xff08;包括字体、颜色、大小&#xff09;的字符串组成。如以下代码就是产生一个字体为HELVETICA、大小为…