GitLab CI部署:Runner部署及遇到的问题

GitLab Runner 服务出现问题排查步骤 检查日志文件:查看 GitLab Runner 容器的日志文件,以获取更多关于问题的详细信息。您可以进入容器的 shell 环境,并查看日志文件的位置,例如。检查资源限制:如果您在 GitLab Runner 容器中设置了资源限制(如 CPU、内存等),请确保这些限制是否合理,不会导致容器无法正常运行。检查网络连接:确保 GitLab Runner 容器可以与 GitLab 实例进行通信。检查配置文件:验证 GitLab Runner 的配置文件是否正确,并确保其中的设置与您的 GitLab 实例相匹配。 阅读详情

GitLab CI部署:Runner部署及遇到的问题

如果已经对gitlab相当了解,且英文水平较好,可以直接阅读官方的runner安装文档。

安装文档:

Windows:https://docs.gitlab.com/runner/install/windows.html

Linux:https://docs.gitlab.com/runner/install/linux-manually.html

配置说明文档:

总体说明:https://docs.gitlab.com/runner/configuration/

config.toml配置:https://docs.gitlab.com/runner/configuration/advanced-configuration.html

如果对gitlab比较了解且可阅读官方英文说明的,下面的文章可以不继续看了。

1、Gitlab

这是代码管理的基础平台。一般公司都已经安装好了。如果没有,可以自己去下载安装。

2、创建群组及项目

对于Gitlab来说,是通过项目来管理代码的。群组就相当一个项目分类。项目创建好了之后,就会有独立的URL。

在个人电脑安装Git。使用Git clone命令复制代码,然后完成commit,push等操作。在这里不做详细描述。

3、找到项目独立的token

项目界面,左侧菜单,设置—CI/CD,展开“Runner”功能组,找到“手动设置specific Runner”组。

就可以看到Runner指定的URL地址,以及注册令牌(token),例:bzYnp6-39gF7zKqrcbqP

还有最重要的运行器唯一ID号,例:fLYMe3yE,最后编写yml代码时会用到。

4、部署gitlab runner

gitlab runner的window版本,是一个独立的exe文件。

在Gitlab官网可以下载:https://docs.gitlab.com/runner/install/windows.html

下载完成之后,存放在一个文件路径不包含空格、特殊符号的文件夹里。

下载的Gitlab runnber运行程序,名称为:gitlab-runner-windows-amd64.exe

名字太长了,给改短一点:gitlab-runner.exe 放在 D:\demo\GitLab-Runner (示例)目录。

4.1注册

以管理员的方式,打开Windows PowerShell。

cd D:\demo\GitLab-Runner

.\gitlab-runner.exe register

Please enter the gitlab-ci coordinator URL:

这里输入的是步骤3标记的那个地址。

Please enter the gitlab-ci token for this runner:

这里输入的是步骤3标记的token。

Please enter the gitlab-ci description for this runner:

这里输入编译器的描述信息,比如runner服务器名称等。

Please enter the gitlab-ci tags for this runner

runner标记。可以填写多个用,号分隔。非常重要。在CI\CD配置(.gitlab-ci.yml)中,需要指定这个名称。

Please enter the executor

shell

注册runner到系统服务
./gitlab-runner.exe install

使用特定账号注册系统服务
./gitlab-runner.exe install —user ENTER-YOUR-USERNAME —password ENTER-YOUR-PASSWORD

启动runner
./gitlab-runner.exe start

注册完成之后,再通过步骤3,查看token值时,会发现多了一个已运行的运行器。这个运行器的描述里有步骤4输入的runner服务器名称,runner标记等。

一次注册过程的日志如下:

D:\GitLab_CI>.\gitlab-runner.exe register
Runtime platform                                    arch=386 os=windows pid=12744 revision=943fc252 version=13.7.0
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.1.201:6666/   ## URL地址
Enter the registration token:
bzYnp6-39gF7zKqrcbqP   ## 项目对应的 token 标记
Enter a description for the runner:
[CISERVER]: runner_on_ci_server  ## runner 描述,随意填,有区分就行
Enter tags for the runner (comma-separated):
tag_check,tag_build,tag_test,tag_deploy   ## .gitlab-ci.yml 中定义的几个过程tag
Registering runner... succeeded                     runner=YyTs5mar
Enter an executor: shell, ssh, virtualbox, docker+machine, docker-ssh+machine, custom, docker, parallels, docker-windows, docker-ssh, kubernetes:
shell  ## 配置在cmd中运行
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

D:\GitLab_CI>

Q&A

1、因git仓库使用6666的端口而非gitlab的默认端口,因此需要在[config.toml]文件中设置url和clone_url,具体示例如下:

concurrent = 1
check_interval = 0

[session_server]
session_timeout = 1800

[[runners]]
name = "runner_on_ci_server"
url = "http://192.168.1.201:6666/"
clone_url = "http://192.168.1.201:6666/"
token = "bzYnp6-39gF7zKqrcbqP"
executor = "shell"
shell = "powershell"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]

2、在同一CI配置了多个项目的CI流程后(即config.toml文件中存在多个runners任务),GitLab 的CI连续运行时,可能会出现fatal: unable to write new index file错误

报错信息如下:

Running with gitlab-runner 14.1.0 (8925d9a0)
  on runner_on_ci_server_for_proj1 AABBCC
Preparing the "shell" executor
Using Shell executor...
Preparing environment
Running on CISERVER...
Getting source from Git repository
Fetching changes...
Reinitialized existing Git repository in D:/GitLab_CI/builds/AABBCC/0/test/testproj/.git/
Checking out 1cf44cd5 as master...
fatal: unable to write new index file
ERROR: Job failed: exit status 1

此问题发生的实际原因暂时未知,修改GitLab-CI-runner的配置config.toml中的任务检查间隔check_interval值可缓解此问题。

check_interval值的详细配置描述,可查看官方文档 https://docs.gitlab.com/runner/configuration/advanced-configuration.html

此处简要说明如下:

Runner间隔多久去GitLab上检查是否有job

config.toml文件的check_interval字段会决定这个时间间隔,它的默认值是3秒(注意当你把它设为0时依然采用的是默认值3秒,而不是0秒)。要解释它的意义,首先我们先来定义worker,在config.toml文件中定义了很多runner,它们可能executor类型不同,可能注册地址不同,但都是由GitLab Runner这个服务来管理的,为了与GitLab Runner区分开,我们将config.toml文件中定义的runner称为worker。对于不同的worker,worker之间(如worker A ---> worker B)的间隔为check_interval / worker_nums,但是对于worker A本身来说它下次去检查是否有job的时间间隔仍为check_interval。我们再举个简单例子:config.toml定义了3个worker—— worker A, worker B 和 worker C,check_interval采用默认值为3秒,第0秒时worker A会去检查是否有属于自己的job,第1秒时worker B会去检查,第2秒时worker C去检查,第3秒时worker A再检查……这个过程中worker A到worker B的间隔为3 / 3 = 1秒,而对于worker A下次检查job时的时间间隔为check_interval,即3秒。

修改后的config.toml文件如下

concurrent = 1
check_interval = 6

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner_on_ci_server_for_proj1"
  url = "http://192.168.1.201:6666/"
  token = "bzYnp6-39gF7zKqrcbqP"
  executor = "shell"
  clone_url = "http://192.168.1.201:6666/"
  shell = "powershell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

[[runners]]
  name = "runner_on_ci_server_for_proj2"
  url = "http://192.168.1.201:6666/"
  token = "bfdJDF73F-3FDERKIRTP"
  executor = "shell"
  clone_url = "http://192.168.1.201:6666/"
  shell = "powershell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
gitlab-ctl reconfigure报错“Error executing action `run` on resource ‘execute[semodule -i /opt/gitlab/” 一。问题场景 在linux安装gitlab时,修改配置文件完成后,执行命令gitlab-ctl reconfigure时报错:“Error executing action run on resource 'execute[semodule -i /opt/gitlab/” Recipe: gitlab::selinux * execute[semodule -i /opt/gitlab/embedded/selinux/rhel/7/gitlab-7.2.0-ssh-keygen.pp] actio 阅读详情

相关推荐

docker GitLab-runner CI/CD持续集成

docker安装GitLab-runnerdocker安装GitLab-runner拉取镜像创建挂载目录启动容器注册gitlab-runner修改Runner配置文件创建SpringBoot项目测试CICD项目结构配置docker注册runner修改config.toml挂载目录修改项目pom.xml,引入docker插件在项目根目录创建Dockerfile文件提交代码到gitlab查看打包结果安装错误ERROR: Failed to load config stat /etc/gitlab-runner/

奋斗的小鸟专栏 3557

【gitlab】gitlab runner安装与使用

gitlab runner docker容器安装 安装命令:docker run -d --name gitlab-runner -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

小橘子1112 3239

docker容器部署gitlab的runner的shell模式注册下job中无法使用docker指令

现需通过gitlab-runner来构建jar部署的镜像,发现在job中无法使用docker指令,解决的过程中出现一系列异常,在此做个问题解决的记录。因为在job中脚本时在gitlab-runner用户下运行的所以需要把gitlab-runner添加到docker用户组,以及把。部署完成后选择shell模式注册,在其job中无法使用docker指令。通过docker-compose部署。文件添加到docker用户组。

Tomatoes的博客 832

gitlab runner 问题

这个的问题 不好说。整体来说 1.先把builds文件目录删了 再试试 看看行不行 2.升级git 但是也不一定是git版本的事 sudo yum -y remove git sudo yum -y remove git-* yum install https://centos7.iuscommunity.org/ius-release.rpm sudo yum install gi 再试试 3. ps aux | grep gitlab 看看用户 之后再改成root ...

cumthxy的博客 1167

gitlab-ci自动部署(一)

gitlab-ci自动部署(一)目前GitLab已经有了CI功能,即持续集成的功能。可以实现代码提交后自动测试、编译、发布、部署等自动化工作下面是我总结的实现内容:1、安装runner在root下执行#下载gitlab-runnerwget https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/gitlab-runner-10.5.0...

神圣坤的博客 7050

GitLab CI入门及实践操作

假如我们有一个项目,已经部署在服务器上面了,然后但是我们想要修改其中的一个页面的部分功能,我们需要做些什么事情呢? - 先拉取gitlab上的代码 - 对代码进行修改开发 - 测试代码是否正常运行 - 打包我们的前端代码 - 将代码重新上传服务器【要是是第一次部署服务器,那你得在服务器上安装你的项目所需要的环境,比如node,还得维护环境】 - 在服务器上看代码是否正常运行 - 提交代码 这样一看,非常麻烦,但凡我们想要修改一点儿东西都得经历上述步骤,时间也浪费了,也没法保证每次提交服务器都是正常运行的

u014446463的博客 6935

CI/CD 之 gitlab-runner 注册执行器与踩坑

上一篇已经讲了 gitlab-runner 的部署方法,这一篇我们来讲一下如何注册 gitlab-runner 执行器并创建作业。

子洋 Blog 2599

GitLab CI/CD配置使用教程

文章目录1、GitLab-runner安装2、GitLab-runner注册3、配置gitlab-ci.yml4、踩坑(1)runner is alive but pipeline is pending完结撒花! 因为公司需要我们使用GitLab来提交代码,使用GitLab CI/CD 。之前我是没有接触过这个东西的,昨天搞了一天,也是踩了一天的坑,现在记录一下 这个是GitLab CI/CD 的官方文档:https://docs.gitlab.com/ee/ci/README.html 1、GitLa

weixin_43878297的博客 1万+

helm部署gitlab-runner

helm部署gitlab-runner。chart最新版本:0.21.1 namespace: public-service-ns.yaml apiVersion: v1 kind: Namespace metadata: name: public-service kubectl apply -f public-service-ns.yaml 查看注册token: 在 管理中心 查看注册runner的 url 和 token,注册完成后就是全局的runner,也可以创建项目后单独注册run

变成习惯 3526

ESP32+ST7789 LCD屏实战:5分钟搞定中文显示与图片渲染(附完整代码)

本文提供了一份详细的ESP32驱动ST7789 LCD屏幕的实战指南。通过清晰的SPI硬件连接说明、ESP-IDF框架下的初始化代码,以及图片渲染与中文字库构建的核心算法,帮助开发者快速实现中文显示与图片渲染功能,并附有完整的代码示例和性能优化技巧。

weixin_29189377的博客 439

波分复用技术原理

波分复用原理 把不同波长的光信号复用到同一根光纤中进行传送,这种方式我们把它叫做波分复用( Wavelength Division Multiplexing ) 一根光纤被划分为多个波道,多个波长以一定的间隔隔开,在光纤中独立传输。 波分复用应用演示 如果将WDM系统看作交通系统,光纤可以看作是多个车道的公用道路。 各种类型的业务就像货物一样,被打包装载到车辆中。 车辆按照分配的车道行驶至目的地,完成货物的运输。 想要提高波分复用系统的传输容量,就要增加波道数量或是提升单波传...

m0_63251770的博客 9997

配置Gitlab CI自动部署代码

Debian/Ubuntu安装包执行后会有下面类似的版本信息出现,代表安装成功Gitlab Runner安装成功后,下一步就是跟Gitlab项目连接做配置了。

齐较瘦的博客 756

CKAD-CN 考试知识点分享(2) CronJob

成功创建 CronJobppi,每 5 分钟执行一次计算任务;配置了和;设置,超时自动终止;确保 Pod 不重启;手动创建ppi-testJob 验证功能正常;所有任务要求均已满足。

轻的博客 331

Gitlab+Gitlab-CI+Docker实现持续集成(CI)与持续部署(CD)

写在前面 记录一下,一个自动化开发部署项目的构建过程与简单使用,实现真正的DevOps gitlab安装 步骤一:安装依赖 yum -y install git gcc glibc-static telnet yum -y install curl policycoreutils-python openssh-server systemctl enable sshd systemctl sta...

留歌__36的博客 3750

基于labview实现MYSQL数据库查询功能

基于labview实现MYSQL数据库查询功能 前言: labview是一款功能强大的图形化编程软件,也就是俗称的G语言。 本篇将介绍如何利用labview对MYSQL进行列表分页,范围查询及模糊查询等几个可广泛应用的简易功能,但事实上labview并不擅长处理数据库,下面详细代码可体现。 数据库的环境配置方面的问题这里就不赘述了。 我们直接进入主题。 1.以下为查询界面 2.分页实现细节: ...

qq470783138的博客 7557

Orcad 17.2导出PDF原理图终极指南:从Ghostscript安装到带属性书签配置

本文是Orcad 17.2导出高质量PDF原理图的终极指南。针对导出过程中常见的Ghostscript安装报错、软件卡死及版本兼容性问题,提供了详细的解决方案。重点推荐使用Ghostscript 9.53.3版本以确保最佳兼容性,并深入讲解了从安装配置、内存优化到高级书签属性设置的完整流程,帮助硬件工程师稳定、高效地生成带完整器件属性和导航书签的PDF文档。

weixin_29281915的博客 397

Gitlab-ci:从零开始的前端自动化部署

前言 本文为首发原创,同时转载至公众号“全栈前端精选“和“广发证券金融科技”中 目录 一.概念介绍 1.1 gitlab-ci && 自动化部署工具的运行机制 1.2 自动化部署给我们带来的好处 二.知识预备 2.1 gitlab-ci涉及的抽象概念(Runner/PipeLine/Executor/Job ) 2.2 YML文件的基本语法规则 2.3 .gitlab-ci.yml配置的特定关键字 三.CI实战 3.1 编写一个gitlab-ci的“he

大灰狼的小绵羊哥哥的博客 1万+

Python 爬虫教程:美食网站 + 社交平台餐馆评论抓取(评分提取 + 情感分析)

在当今数字化时代,数据无处不在,而爬虫技术则是获取数据的强大工具之一。无论是市场调研、学术研究还是个人兴趣探索,爬虫都能帮助我们从海量的网络信息中提取有价值的数据。本文将通过一个实战案例,带领大家学习如何使用 Python 爬虫技术抓取美食网站和社交平台上的餐馆评论,并进行评分提取与情感分析。通过这个项目,你将掌握爬虫的基本原理、数据解析、以及如何结合情感分析技术来挖掘数据背后的洞察。

u014481728的博客 311

vue搭配gitlab-ci自动化部署

gitlab-CI概念 官方文档 gitlab 8.0集成了gitlab-CI CI(Continuous integration) 持续集成 频繁地将代码集成到主干 目的:产品快速迭代,同时保持高质量 措施:代码提交到主干之前,执行自动化测试,失败则集成失败 自动化部署实现 1. 在项目根目录中添加一个.gitlab-ci.yml文件 (CI管理项目状态) .gitlab-ci.yml git项目的根目录里的文件,记录一系列规则和执行规则 可以在gitlab上使用CI Lint验证上面yml

cyyy1223的博客 4288

YOLOv8 道路病害检测全栈工程|22 类路面裂缝坑洞 VOC&YOLO 数据集、PyQt 精美 GUI、ONNX 量化、全套训练评估曲线落地

城市道路、国省道、高速公路路面长期受车辆碾压、雨水侵蚀,衍生纵向 / 横向裂纹、坑洼、车辙、接缝剥落等二十余种路面病害。传统人工道路巡检存在致命行业痛点:人工徒步 / 乘车目视巡检效率极低,单日有效巡查里程不足 20 公里;毫米级细微线性裂纹肉眼极易漏检,雨水冲刷后微小病害快速扩张为大坑槽,养护成本翻倍;强光暴晒、阴雨积水、路面油污场景人工分辨难度大;海量巡检图片人工分类统计病害台账耗时数天,养护决策缺乏量化数据支撑。传统阈值、边缘检测图像处理仅能识别大面积坑洞,无法区分二十余种细分裂纹类型,泛化能力极差。

getusushu的博客 122

【OpenFOAM】-olaFlow-算例10-wavemakerTank

采用 Flap和Piston两种方式的动网格进行造波

ou_no的博客 2168

gitlab ci相关的链接

最近在做gitlab ci的部署工作,期间遇到不少问题,这里罗列下主要的参考链接,供后期查用。 1. 对gitlab ci的了解,参考如下链接。 https://blog.youkuaiyun.com/Choerodon/article/details/97751754 2. 自己目前是在windows下安装的gitlab runner,参考如下链接。 https://docs.gitlab.com/runner/install/windows.html 注意,对runner的配置需要以管理员身份运行p.

博客标题不能为空 440

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

基于Gitlab-runner+docker的CI/CD简单使用

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_44472746的博客 1206

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

gitlab ci cd流程

一、系统资源 Operating System – CentOS 8.0 IP: 172.16.1.252 CPU: 2.50GHz * 1 Core Memory: 1G Storage: 40G Hostname: iZbp1gc2vry88122bz229cZ 二、gitlab CICD 流程图 三、关于 Gitlab 需要了解的几个概念 Gitlab GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者

qq_41411563的博客 558

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

gitlab-ci自动化部署通过docker runner执行的阶段镜像pull不下来

curlimages/curl:latest 在执行开始pull不下来,经查询本地docker镜像仓库存在该镜像,经查阅资料gitlab-ci的配置设置是可多地运行,未使用本地的配置,不管本地是否存在该镜像其都会从远程pull ,然后从远程pull 报超时 timeout .重新配置了docker的镜像源 linux docker镜像源位置 /etc/docker。

Tomatoes的博客 953

gitlab-ci自动部署vue

准备一台服务器 下载gitlab-runner并注册,我前面博客有讲,请关注我博客 安装nginx 安装node,就用root用户安装node就可以了,有的博主说用root用户安装不可以 其实是应为使用root用户安装以后设置的淘宝镜像,在自动部署时,gitlab-runner执行npm的时候还是用的默认的,编译非常慢,导致超时,这时候直接切换用户为gitlab-runner, 执行: [gitlab-runner@localhost ~]# npm config set registry https://

weixin_43606738的博客 2743
上一篇: Qt主界面使用QComboBox时,无法接收nativeEvent事件导致无法接收WM_COPYDATA消息的问题处理
下一篇: 一次Centos 7 下安装docker的完整安装日志过程
EchoCoder
博客等级 码龄16年 25粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值