gitlab-runner 部署与踩坑

CeShiYuan
• 阅读 291

前言

去年花时间研究了一下 CI/CD , 自己部署了一套 gitlab-runner 玩了一下,部署过程之后遇到了不少问题,把之前的踩坑与部署记录分享一下。

简介

gitlab-runner是一个开源项目,用于运行 Pipeline 作业并将结果发送回 GitLab。

它与 GitLab CI 一起使用,GitLab CI是GitLab随附的开源持续集成服务,用于协调作业。

gitlab-runner是用 Go 编写,可以作为单个二进制文件运行,不需要语言特定的要求。

官方安装文档

gitlab-runner 安装官方文档:https://docs.gitlab.com/runner/install/

gitlab-runner的三种类型:

  • 共享Runner(Shared Runner),所有项目可以使用。
  • 群组Runner(Group Runner),特定群组里的所有项目和子群组。
  • 特定Runner(Specific Runner),用于独立的项目。

gitlab-runner两种状态:

  • locked:无法运行项目作业
  • paused:不会运行作业

一、安装需知

  • gitlab runner 与 gitlab 版本尽量一致,差距过大部署会报错
  • 安装 gitlab-runner 依赖 git, 需要先安装 git
  • linux自带的git是1.8版本, 使用 runner 拉代码时会报错,升级至且大于 2.x 版本

gitlab-runner 部署与踩坑

本文版本说明

  • Git: 2.36.1
  • Gitlab:  14.7
  • GitlabRunner:15.3.0

二、下载与安装

1. 下载对应版本的 gitlab-runner 包

使用清华源下载 x86\_64 架构安装包 ,官方地址可能没有 x86\_64 架构安装包

sudo curl -L --output /usr/local/bin/gitlab-runner-15.3.0-1.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-15.3.0-1.x86_64.rpm"

2. 安装下载后的 rpm 包

rpm -ivh gitlab-runner-15.3.0-1.x86_64.rpm

三、安装与启动

1. 查看当前服务运行情况

gitlab-runner status
  • 如下图所示,返回 Service is running 则表示服务正在运行中
  • 如显示:  the service is not installedService is stop 运行启动命令后在查看
有时候,虽然显示为 the service is not installed 但实际已经完成安装,并能正常执行运行命令

gitlab-runner 部署与踩坑

2. 启动 gitlab-runner 服务

gitlab-runner start
  • 成功启动如下图所示

gitlab-runner 部署与踩坑

  • 如提示 the service is not installed 则执行一下安装命令
gitlab-runner install --working-directory /home/gitlab-runner --user root

3. 查看服务运行状态

该命令和 gitlab-runner status 的区别是,可以更直观的看到运行状态

systemctl status gitlab-runner

成功运行如下图所示:

gitlab-runner 部署与踩坑

如显示下图中的错误,请检查指定的 working-directory 目录是否存在,不存在则手动创建一个

相关 issue:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3000

gitlab-runner 部署与踩坑

点赞
收藏
评论区
推荐文章
linbojue linbojue
1年前
超完整的Electron打包签名更新指南,这真是太酷啦!
大家好,我是多喝热水。在踩了数不清的坑之后,终于从0到1完成了一个桌面端应用,但万万没想到,最最痛苦的还不是开发过程,而是开发完成后的打包签名阶段,这真是踩坑踩麻了!!!超完整的Electron打包签名更新指南,这真是太酷啦!ok,踩坑归踩坑,收获也是不小
学python的猫 学python的猫
4年前
这些常见的坑,90%的程序猿都踩过,来看看里面有没有你的脚印?
在学习python的过程中,相信大家都有踩过不少的坑,有些坑可能踩了不止一次,感觉就像是在坑与坑之间反复横跳。那么如何避免这些坑呢?看完这篇文章,你就知道了。我们来谈谈我们学习python的过程中,最常见的七大坑:1.缩进,符号和空格不正确写代码时大家会使用缩进、对齐、空格等,这些是为了提高代码的可读性在python语言中,缩进是十分重要的比如在创建一个新
Easter79 Easter79
3年前
toLua踩坑
新博客:https://yinl.fun(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fyinl.fun)欢迎关注,同步更新toLua踩坑篇最近工作得用Lua实现逻辑,桥梁用的toLua,踩了很多坑,在这里记录一下。坑~toLua解析Lua属性
九路 九路
4年前
Swift开发-OC与Swift混编以及纯Swift编码所遇到的问题(二)
上篇在介绍了Swift与OC混编开发所需要准备的一些必要条件 SwiftObjectiveC混编注意事项(https://www.jianshu.com/p/52ab6a316cbe),今天只说一下我在实际项目中所踩过的坑,希望你们以后绕过这些坑吧。1、使用cocopods管理Swift文件所遇到的问题:我们在开发的过程中,各种优秀的框架
_dolphin _dolphin
4年前
【完美解决】关于cmake找不到opencv路径
我在深度学习部署到C的时候,安装了cmake和opencv,但在导入到vs配置的时候,出现了下面的状况。说cmake找不到opencv的路径,网上也查了很多资料,但是一个能用的都没有。最后加了路径成功了。大家可以看一下,避免踩坑。环境变量肯定是要加的,然后在CMakeLists.txt文件里加上set(OpenCVDIRF:/open
Tommy744 Tommy744
4年前
针对开发人员的21个Jenkins替代方案
当谈到CI/CD工具时,我们都会提到Jenkins。它是构建和测试项目的超级有效工具,从而使持续不断的轻松集成成为可能。但是,Jenkins并不是唯一的CI/CD工具。我们还有其他很多选择!1.GitLab它是一个开源的Web系统,可用于将持续集成,持续部署应用到你的项目中,而无需任何第三方应用程序。它提供了友好的用户界面以及分布式版本控制
Stella981 Stella981
3年前
Spring Data Jpa 返回自定义对象 DTO 映射问题
关键字:JPA复杂查询,JPA返回自定义实体,JPA返回自定义DTO,JPA联表查询,JPA原生SQL查询,JPA踩坑新冠疫情之下,闲来无事研究了一下JPA,发现坑还是不少的,特地记录一下,有兴趣的道友可以看看。在灵活性上JPA比不上MyBatis,比如想联表查询返回一个自定义的实体Dto,结果发现不能直接返回自定义的实体,典型错误如下:
Wesley13 Wesley13
3年前
Go切片的开闭原则
Go切片的开闭原则前言今日在工作中踩了一个小坑,关于数组切片的,主要是切片开闭原则的,当年面试的时候考过,但是后来没有仔细研究,这里补足一下。示例packagemainimport"fmt"funcmain(){//程序运行完成时一定要有输
Stella981 Stella981
3年前
Groovy防PermOOM与OldOOM心得
作为Groovy重度用户,踩了新版本因为无法unloadclass导致permoom的坑,踩了classLoader.parallelLockMap不断添加新锁导致oldoom的坑。本文的意图就是记录一点埋坑心得。踩坑详情可见:https://my.oschina.net/chenxiaojie/blog/835934(https://my.o
Stella981 Stella981
3年前
JFinal 部署在 Tomcat 下推荐方法
  经常有人在群里问tomcat下项目部署的问题,现写个简单的博文,希望能帮助到有需要的人。  首先明确一下JFinal项目是标准的javaweb项目,其部署方式与普通javaweb项目没有任何差别。JavaWeb项目在Tomcat下部署有一些不必要的坑需要避免,所以撰写此文方便大家绕过一些坑,以下部署以linux为例
Stella981 Stella981
3年前
Dubbo 服务 IP 注册错误踩坑经历
个人博客地址studyidea.cn(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fstudyidea.cn%2Fdubbo_error_ip),点击查看更多原创文章踩坑公司最近新建一个机房,需要将现有系统同步部署到新机房,部署完成之后,两地机房同时对提供服务。系统