Linux中gitlab-runner部署使用备忘

2024-05-09 12:28

本文主要是介绍Linux中gitlab-runner部署使用备忘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 环境:

        操作系统::CentOS8

        gitlab版本:13.11.4

  • 查看gitlab-runner版本

        可以从https://packages.gitlab.com/app/runner/gitlab-runner/search找到与安装的gitlab版本相近的gitlab-runner版本以及安装命令等信息,我找到与13.11.4相近的是gitlab-runner-13.11.0-1.x86_64.rpm。

  • 安装gitlab-runner

        下载配置:

#Debian/Ubuntu/Mint:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash#查看可以安装的列表
apt-cache madison gitlab-runner#安装
sudo apt-get install gitlab-runner-13.11.0-1#RHEL/CentOS/Fedora:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash#查看可以安装的列表
yum list gitlab-runner --showduplicates | sort -r#安装
sudo yum install gitlab-runner-13.11.0-1
  • 注册

#执行注册
gitlab-runner register

        注册时依次要求输入:
        1、Enter the GitLab instance URL:gitlab的url,获取位置见下图
        2、Enter the registration token:获取位置见下图
        3、Enter a description for th runner:说明随便填
        4、Enter tags for the runner:指定标签,用于标识runner
        5、Enter an executor:我用的shell

        registration token可以从2个地方获取,一个是gitlab全局的token,另一个是项目的token:

        全局token获取位置:

        项目token获取位置:

        进入某个项目获取

        每个项目的token不同,注册后直接与该项目绑定。后期也可以在gitlab中为该注册的runner绑定其他的项目。runner管理功能入口见下图:

  • 安装时碰到的问题

   1、为repo 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist

        这个问题是因为 CentOS 8 已于2021年12月31日停止官方服务,而在2022年1月31日,CentOS 团队从官方镜像中移除了 CentOS 8 的所有包。现在他们被转移到 vault.centos.org。
可以在 /etc/yum.repos.d 中更新一下源。使用 vault.centos.org 代替 mirror.centos.org 即可。
        按照以下步骤操作:

sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
    2、为 repo 'gitlab_gitlab-ce' 下载元数据失败 : repomd.xml GPG signature verification error: Bad GPG signature

        这个问题是由于 GitLab 的包签名密钥在一段时间内过期,影响了 GitLab 和 GitLab Runner 的升级和新安装。需要更新系统上用于签名 GitLab Linux 包的 GPG 密钥。

        按照以下步骤操作:

#从存储库密钥环中删除任何现有密钥
for pubring in /var/cache/dnf/gitlab_gitlab-?e-*/pubring
dogpg --homedir $pubring --delete-key F6403F6544A38863DAA0B6E03F01618A51312F3F
done#清理缓存
sudo dnf clean all#更新
sudo dnf check-update
  • 项目打包

        在项目pom.xml同级目录中创建.gitlab-ci.yml文件:

stages:- buildbuild:stage: buildscript:- echo "Building WAR file"- mvn clean package -P prodartifacts:paths:- ep.war
  • 打包时碰到的问题

   1、此作业已阻塞,因为该项目没有分配任何可用Runner

    这个问题是因为.gitlab-ci.yml文件中的作业没有指定任何标签,而GitLab Runner被配置为只运行具有特定标签的作业。有两种方式解决这个问题:
1)在.gitlab-ci.yml文件中指定tags

stages:- buildbuild:stage: buildscript:- echo "Building WAR file"- mvn clean package -P prodtags:- my-tag #注册时填写的标签artifacts:paths:- ep.war

2)允许runner运行没有标签的作业

这篇关于Linux中gitlab-runner部署使用备忘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流