如何安装和注册 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 = false
    image = "alpine:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/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/

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

传统软件应用技术的价值转换率越来越低

为什么感觉到卷?可能的一个原因是大家都在进步,用户和竞争对手也在进步,而自己却没有进步,也谈不上思维模式的改变。 我们不谈理论、不谈理想、不谈市场环境不好,就谈与用户接触过程的案例,这是最有说服力的…

传输层协议(TCP和UDP)

目录 一、UDP 1、UDPAPI 2、UDPAPI的使用 二、TCP 1、TCPAPI 2、TCP的相关特性 2.1 确认应答 2.2 超时重传 2.3 连接管理(三次握手,四次挥手) 2.4 滑动窗口 2.5 流量控制 2.6 拥塞控制 2.7 延时应答 2.8 捎带应答 2.9 面向字节…

1.3 计算机网络的分类

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言一、按分布范围分类二、按传输技术分类三、按拓扑结构分类四、按使用者分类五、按传输介质分类 前言 计算机网络根据不同的标准可以被分为多种类型,本章从分布…

SqlSugar的where条件中使用可空类型报语法错误

SQLServer数据表中有两列可空列,均为数值类型,同时在数据库中录入测试数据,Age和Height列均部分有值。   使用SqlSugar的DbFirst功能生成数据库表类,其中Age、Height属性均为可空类型。   当Where函数中的检索条件较多时&a…

【Elasticsearch系列四】ELK Stack

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

idea中java及java web项目的常见问题

1、乱码问题,主要有几处地方,需要检查。 ①确保文件编码,其实主要就是在idea启动文件中,增加了 -Dfile.encodingUTF-8的设置 ②编辑器默认编码,都改为UTF-8 ③Tomcat的运行配置,编码也改为UTF-8,同样使用…

Wpf使用NLog将日志输出到LogViewer

1 LogViewer LogViewer是通过UDP传输的高性能实时log查看器。 具有一下特性: 通过UDP读取日志通过文件导入日志导出日志到一个文件中排序、过滤(日志树,日志等级)和查找突出显示搜索文本从UPD接收日志时忽略IP地址列表多接收器支…

RabbitMQ08_保证消息可靠性

保证消息可靠性 一、生产者可靠性1、生产者重连机制(防止网络波动)2、生产者确认机制Publisher Return 确认机制Publisher Confirm 确认机制 二、MQ 可靠性1、数据持久化交换机、队列持久化消息持久化 2、Lazy Queue 惰性队列 三、消费者可靠性1、消费者…

【吊打面试官系列-MySQL面试题】MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?

大家好,我是锋哥。今天分享关于【MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?】面试题,希望对大家有帮助; MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么? 以下是 MySQL_fetch_array 和 MySQL_fe…

[数据结构与算法·C++] 笔记 1.4 算法复杂性分析

1.4 算法复杂性分析 算法的渐进分析 数据规模 n 逐步增大时, f(n)的增长趋势当 n 增大到一定值以后,计算公式中影响最大的就是 n 的幂次最高的项其他的常数项和低幂次项都可以忽略 大O表示法 函数f,g定义域为自然数,值域非负实数集定义: …

C++/Qt 集成 AutoHotkey

C/Qt 集成 AutoHotkey 前言AutoHotkey 介绍 方案一:子进程启动编写AutoHotkey脚本准备 AutoHotkey 运行环境编写 C/Qt 代码 方案二:显式动态链接方案探索编译动态链接库集成到C工程关于AutoHotkeyDll.dll中的函数原型 总结 前言 上一篇介绍了AutoHotkey…

动手学深度学习(李沐)PyTorch 第 1 章 引言

在线电子书 深度学习介绍 安装 使用conda环境 conda create -n d2l-zh python3.8 pip安装需要的包 pip install jupyter d2l torch torchvision下载代码并执行 wget https://zh-v2.d2l.ai/d2l-zh.zip unzip d2l-zh.zip jupyter notebookpip install rise如果不想使用jupyt…

Ubuntu20-xrdp与Windows-mstsc远程桌面连接

前期准备 两者在同一网段,网线连接。ubuntu端 sudo adduser yu //输入密码和确认密码,后面一路回车,新建用户yu,确保用户没有被登录 sudo apt install xrdp //安装xrdp sudo systemctl status xrdp //查看xrdp服务状态 sudo…

《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)

目录 一、最终实现后,效果如下。 (1)简单介绍本游戏项目(待完善) (2)运行效果图(具体大家自己可以试) 初始运行情况。 手动更换背景图。 通过子弹攻击敌机,累…

828华为云征文|Flexus云服务器X实例部署宝塔运维面板

本次华为云Flexus云服务器X实例部署宝塔运维面板教学,这次是推陈出新啊 之前的云耀云服务器L实例已经很不错了,大力赞叹华为云的 同时感谢华为云提供优惠卷,只能说白嫖真是太棒了 华为云近期正在筹办华为云828企业节活动,90款免…

HarmonyOS Next开发----使用XComponent自定义绘制

XComponent组件作为一种绘制组件,通常用于满足用户复杂的自定义绘制需求,其主要有两种类型"surface和component。对于surface类型可以将相关数据传入XComponent单独拥有的NativeWindow来渲染画面。 由于上层UI是采用arkTS开发,那么想要…

【RabbitMQ】消息分发、事务

消息分发 概念 RabbitMQ队列拥有多个消费者时,队列会把收到的消息分派给不同的消费者。每条消息只会发送给订阅该队列订阅列表里的一个消费者。这种方式非常适合扩展,如果现在负载加重,那么只需要创建更多的消费者来消费处理消息即可。 默…

深度学习01-概述

深度学习是机器学习的一个子集。机器学习是实现人工智能的一种途径,而深度学习则是通过多层神经网络模拟人类大脑的方式进行学习和知识提取。 深度学习的关键特点: 1. 自动提取特征:与传统的机器学习方法不同,深度学习不需要手动…

【数据库】常用数据库简介

目录 🍔 常用的关系型数据库 🍔 Mysql简介 🍔 SQL 简介 SQL语句的分类 SQL 写法 SQL 常用的数据类型 🍔 DDL语句 对数据库的操作 对数据表的操作 🍔 DML语句 插入数据 insert into 修改数据 update 删除数…

python实现多个pdf文件合并

打印发票时,需要将pdf合并成一个,单页两张打印。网上一些pdf合并逐渐收费,这玩意儿都能收费?自己写一个脚本使用。 实现代码: 输入pdf文件夹路径data_dir,统计目录下的“合并后的PDF”文件夹下,…