当前位置: 首页 > news >正文

如何安装和注册 GitLab Runner

如何安装和注册 GitLab Runner

GitLab Runner 是一个用于运行 GitLab CI/CD (Continuous Integration/Continuous Deployment) 作业。它是一个与 GitLab 配合使用的应用程序,可以在本地或云中运行。Runner 可以执行不同类型的作业,例如编译代码、运行测试、部署应用程序等。它支持多种执行器,包括 Shell、Docker、Kubernetes 等,以便灵活地运行作业。

1. GitLab Runner 的安装

在开始安装 GitLab Runner 之前,首先需要确认你的服务器上已经安装了 Git 和 Docker(如果你打算使用 Docker executor)。下面将展示在不同操作系统上安装 GitLab Runner 的方法。

1.1 在 Linux 上安装 GitLab Runner

  1. 打开终端,下载 GitLab Runner 的二进制文件:

    curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    
  2. 为二进制文件添加执行权限:

    chmod +x /usr/local/bin/gitlab-runner
    
  3. 安装并启动 GitLab Runner 服务:

    gitlab-runner install
    gitlab-runner start
    

1.2 在 macOS 上安装 GitLab Runner

  1. 使用 Homebrew 安装 GitLab Runner:

    brew install gitlab-runner
    
  2. 安装后,启动 GitLab Runner:

    gitlab-runner start
    

1.3 在 Windows 上安装 GitLab Runner

  1. 下载 Windows 版本的 GitLab Runner 安装包,网址:GitLab Runner 下载

  2. 将下载的文件重命名为 gitlab-runner.exe,并将其移动到一个可执行路径中,例如 C:\GitLab-Runner

  3. 在命令提示符中安装 GitLab Runner 服务:

    gitlab-runner.exe install
    gitlab-runner.exe start
    

1.4 在 Ubuntu 上安装 GitLab Runner

  1. 添加 GitLab Runner 官方仓库

首先,添加 GitLab Runner 的官方仓库并导入 GPG 密钥。

# 安装必要的依赖
sudo apt-get install -y curl# 添加 GitLab 官方 GPG 密钥
curl -fsSL https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
  1. 安装 GitLab Runner

现在使用 apt 包管理器来安装 GitLab Runner。

sudo apt-get install gitlab-runner
  1. 启动 GitLab Runner

在 Ubuntu 系统上,GitLab Runner 会作为系统服务运行。可以使用以下命令启动并启用 GitLab Runner 服务,以便在系统启动时自动运行:

sudo systemctl start gitlab-runner
sudo systemctl enable gitlab-runner

2. 注册 GitLab Runner

安装完 GitLab Runner 后,需要将其注册到你的 GitLab 实例中,这样它才能运行特定项目的任务。

2.1 获取注册令牌

  1. 登录到你的 GitLab 实例。
  2. 导航到你想要注册 Runner 的项目。
  3. 进入 Settings -> CI / CD,在 Runners 部分找到 Set up a specific Runner manually
  4. 复制项目的注册令牌。

2.2 运行注册命令

在你的服务器上运行以下命令开始注册:

gitlab-runner register

然后按照提示完成注册:

  1. 输入 GitLab 实例的 URL,例如 https://gitlab.com/
  2. 输入上一步获取的注册令牌。
  3. 输入描述信息和标记(tags),用于标识 Runner,多个标签用逗号分隔。
  4. 选择 Runner 执行器(executor),例如 dockershellvirtualbox 等。通常推荐选择 docker 以便于隔离和管理。

2.3 配置 Runner

完成注册后,可以通过编辑 config.toml 文件进一步配置 Runner。此文件通常位于 Runner 安装路径下的 ~/.gitlab-runner/ 目录中。根据安装环境的不同,该文件可能也位于 /etc/gitlab-runner/ 目录中。config.toml 文件用于定义 Runner 的行为和特性,如使用的执行器、环境变量、缓存设置等。

可以使用以下配置示例对 config.toml 进行修改:

[[runners]]name = "my-runner"url = "https://gitlab.com/"token = "xxxxxxxxxxxxxxxxxxxx"executor = "docker"[runners.custom_build_dir][runners.docker]tls_verify = falseimage = "alpine:latest"privileged = truedisable_entrypoint_overwrite = falseoom_kill_disable = falsedisable_cache = falsevolumes = ["/cache"]shm_size = 0[runners.cache]

3. 启动并验证 Runner

注册完成后,GitLab Runner 服务会自动运行。你可以通过以下命令查看其状态:

gitlab-runner status

如果一切正常,GitLab 中的项目设置页面会显示新的 Runner 已注册并可以使用。

配置runner以root用户运行

在某些场景下,您可能希望以 root 用户身份运行 GitLab Runner,以便拥有更高的权限来执行 CI/CD 作业。

1. 编辑配置文件

GitLab Runner 注册完成后,默认的配置文件位于 /etc/gitlab-runner/config.toml。使用文本编辑器打开该文件:

sudo nano /etc/gitlab-runner/config.toml

[[runners]] 配置块中,添加或修改 user 选项为 root

[[runners]]name = "my-runner"url = "https://gitlab.com/"token = "YOUR_RUNNER_TOKEN"executor = "shell"user = "root"[runners.custom_build_dir][runners.cache]

2. 重启 GitLab Runner

保存配置文件后,需要重启 GitLab Runner 以使更改生效:

sudo gitlab-runner stop
sudo gitlab-runner start

或者使用系统服务管理工具:

sudo systemctl daemon-reload
sudo systemctl restart gitlab-runner

参考链接

  • GitLab Runner 文档:https://docs.gitlab.com/runner/
  • GitLab CI/CD 配置:https://docs.gitlab.com/ee/ci/
  • Docker 安装指南:https://docs.docker.com/engine/install/

在这里插入图片描述

相关文章:

如何安装和注册 GitLab Runner

如何安装和注册 GitLab Runner GitLab Runner 是一个用于运行 GitLab CI/CD (Continuous Integration/Continuous Deployment) 作业。它是一个与 GitLab 配合使用的应用程序,可以在本地或云中运行。Runner 可以执行不同类型的作业,例如编译代码、运行测…...

专业学习|动态规划(概念、模型特征、解题步骤及例题)

一、引言 (一)从斐波那契数列引入自底向上算法 (1)知识讲解 (2)matlap实现递归 (3)带有备忘录的遗传算法 (4)matlap实现带有备忘录的递归算法 “&#xff1…...

数据结构与算法 #时间复杂度 #空间复杂度

文章目录 前言 一、算法的复杂度 二、时间复杂度 三、空间复杂度 四、例题 1、例1:冒泡排序 2、例2: 3、例3: 4、例4: 二分查找 5、例5: 阶乘 6、例6: 斐波那契 五、常见算法复杂度 总结 前言 路漫漫其修远兮,吾将上下而求索&…...

【多机器人轨迹规划最优解问题】

此类应用场景通常很难有严格意义上的最优解,一般只能得到较优解。限制其获得最优解的主要因素如下: 一、问题的复杂性 多机器人系统的高维度性:每台机器人都有自己的位置、速度、任务等多个状态变量,多台机器人组合在一起使得问…...

机器学习及其应用领域【金融领域】

机器学习及其应用领域【金融领域】 一、智能投顾与资产配置二、信贷审批与风险评估三、支付与交易安全四、金融欺诈检测五、市场预测与情绪分析六、客户服务与个性化推荐七、面临的挑战与未来趋势八、总结 一、智能投顾与资产配置 智能投顾:通过机器学习技术&#…...

【实战教程】PHP与七牛云的完美对接,你值得拥有!

前言: 随着互联网的迅速发展,越来越多的网站和应用程序需要处理大量的图片、视频和其他文件。为了有效地存储和管理这些文件,并提供快速的内容分发服务,开发者们常常依赖于云存储和CDN服务提供商。 七牛云是一家领先的云存储和CD…...

2024网易低代码大赛 | 想参赛但不知道搭什么?灵感就这么水灵灵地来了!

9月6日-10月15日,报名进行时!戳我即可报名! 如果你还没想好要开发什么作品来参赛,那就必须往下 我们采访了n位网易内部人士,搜罗了他们的建议,给你多一些灵感! 注意:下文仅为本次比赛…...

(附源码)基于django的电力工程作业现场物资管理系统的设计与实现-计算机毕设 22067

基于django的电力工程作业现场物资管理系统的设计与实现 摘 要 随着电力工程的快速发展,作业现场物资管理成为保障工程进度和质量的关键环节。本文旨在设计并实现一个基于Django框架的电力工程作业现场物资管理系统,以提高物资管理的效率和准确性。该系统…...

数据链路层协议 —— 以太网协议

目录 1.数据链路层解决的问题 2.局域网通信方式 以太网 令牌环网 无线局域网 3.以太网协议 以太网帧格式 对比理解Mac地址和IP地址 认识MTU MTU对IP协议的影响 MTU对UDP的影响 MTU对TCP的影响 基于以太网协议的报文转发流程 交换机的工作原理 4.ARP协议 ARP协议…...

【Javascript】一文看懂JS中的symbol到底是什么东西

作为一名经验丰富的 JavaScript 开发者,你可能对 JavaScript 中的各种数据类型已经了如指掌,比如数字、字符串、布尔值和对象。但是你知道吗?JavaScript 还有一种叫做 Symbol 的类型。在这篇文章里,我们将深入探讨 Symbol 的世界&…...

go语言网络编程

网络编程Go语言网络编程相关APIGo语言网络编程架构Go语言的网络编程实现基于以下几个关键原理:bufiobufio 包的主要功能和使用场景主要类型示例 tcp通信解决粘包粘包和拆包的产生原因解决方法示例 网络编程 Go语言网络编程相关API 1.1 net包net.Listen(network, a…...

LeetcodeLCR 116. 省份数量

文章目录 题目原题链接思路C代码 题目 原题链接 LCR 116. 省份数量 思路 利用并查集的思想,将连接的诚实放在一个集合当中,最后遍历并查集数组判断有几颗树 初始化一个并查集;将连通的城市合并;统计并查集中树的个数&#xff1b…...

Linux系统上搭建Vulhub靶场

Linux系统上搭建Vulhub靶场 ​vulhub​ 是一个开源的漏洞靶场,它提供了各种易受攻击的服务和应用程序,供安全研究人员和学习者测试和练习。要在 Linux 系统上安装和运行 vulhub​,可以按照以下步骤进行: 1. 安装 Docker 和 Docke…...

Avalonia的第三方UI库SukiUI详细教程

文章目录 一、SukiUI 简介二、安装与配置1、安装 SukiUI 库:2、配置 Avalonia 项目以使用 SukiUI:三、基本组件使用1、按钮(SukiButton):2、文本框(SukiTextBox):3、标签(SukiLabel):4、下拉列表(SukiComboBox):四、布局与容器1、布局容器介绍:2、使用布局容器组…...

https协议文件上传比http协议慢

一.自己写一个文件上传的接口,在浏览器文件上传https协议比http协议慢(速度上https协议是http协议的八分之一左右),在postman上传是正常的(证明代码是没有问题的),那就是协议的问题 二.经发现&…...

Elasticsearch在大数据处理中的优势

Elasticsearch 在大数据处理中的优势主要体现在以下几个方面: 1. 分布式架构 水平扩展:Elasticsearch 设计为分布式系统,可以轻松地通过增加节点来水平扩展,处理 PB 级别的数据。数据分片和复制:数据自动分片并跨多个…...

cmake--target_compile_definitions

作用 笼统的说是:该命令添加预编译选项到编译目标中。 预编译选项 预编译选项(Preprocessor Options)是一类用于控制 C/C 预处理器行为的编译选项。预处理器是 C/C 编译过程中的第一个处理阶段,主要负责对源代码中的预处理指令…...

MATLAB数据文件读写:1.格式化读写文件

格式化读写文件 matlab提供了对数据文件建立、打开、读取、写入、关闭等操作的函数。 数据文件可以分为两类: 文本文件:以ASCII码形式存储的文本文件;编码基于字符定长,译码相对容易二进制文件:以二进制形式存储的文…...

NFTScan | 09.16~09.23 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.09.16~ 2024.09.22 NFT Hot News 01/ ​DeGods 推出代币 DEGOD,用户可通过 DeGods、y00ts 或 DUST 进行转换 9 月 16 日,Solana NFT 项目 DeGods 推出代币…...

rabbitmq整合skywalking并编写自定义插件增强

rabbitmq整合skywalking 首先先下载准备好skywalking 的服务端和ui控制台,java-agent https://skywalking.apache.org/downloads/ 整合skywalking 我的流程是在生产者和消费者服务中去引入一个mq的sdk,具体SDK的内容可以查看这篇文章 在sdk的pom文件…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...