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

【软件安装】Linux服务器中部署gitlab-runner实现CICD流水线

这篇文章,主要介绍如何在Linux服务器中部署gitlab-runner实现CICD流水线。

目录

一、gitlab-runner

1.1、前提条件

1.2、下载gitlab-runner安装包

1.3、上传服务器

1.4、获取token

1.5、注册runner

1.6、查看配置文件

1.7、service启动文件

1.8、刷新服务

1.9、启动服务

1.10、启用runner服务


一、gitlab-runner

1.1、前提条件

gitlab-runner是gitlab提供的一个执行器,通过【gitlab + gitlab-runner】可以实现项目的自动化构建和部署,即:CICD。所以阅读这篇文章之前,请先确保你已经安装好了GitLab代码仓库的服务。

gitlab-runner会访问GitLab代码仓库,拉取代码,然后对代码进行构建、打包、部署等一系列的操作,这些操作是在你的工程中的【gitlab-ci.yml】配置文件中指定的。

1.2、下载gitlab-runner安装包

这里我们通过手动下载安装包的方式来部署gitlab-runner,首先去官网下载对应版本的gitlab-runner,官网地址:

官网下载地址:【https://gitlab.cn/docs/runner/install/bleeding-edge.html#download-any-other-tagged-release】

可以选择自己对应系统的版本,我这里选择的是【gitlab-runner-linux-amd64】安装包:

下载完成之后,就可以在下载目录里面看到一个【gitlab-runner-linux-amd64】文件,如下所示:

1.3、上传服务器

安装包(其实这个是可执行文件)下载完成之后,可以使用文件传输工具将其上传到Linux服务器上面,例如:我是上传到了【/home/gitlab-runner】目录下面,如下所示:

上传成功之后,需要修改一下可执行文件的访问权限,执行下面命令:

# 进入文件上传目录下
cd /home/gitlab-runner

# 修改访问权限
chmod +x ./gitlab-runner-linux-amd64

修改成功之后,此时,可以看到gitlab-runner-linux-amd64文件名称会变颜色。

1.4、获取token

gitlab-runner要想访问到GitLab代码仓库,那么必须获取到访问GitLab的token密钥,这个token可以在GitLab里面获取。首先进入项目仓库中,选择Settings下的CICD选项,如下:

接着在打开的界面中,找到Runners区域,点击Expend按钮,如下所示:

在展示的内容区域里面,找到New project runner按钮,点击右侧的三个小圆点,在弹出框中,复制这个token,记住这个token,后续注册runner的时候要使用到。

1.5、注册runner

拿到token之后,就可以注册runner服务了,执行下面的命令,就可以注册runner服务,注册命令如下所示:

# 首先进入执行文件目录
cd /home/gitlab-runner

# 执行注册命令
# 后端项目(注册maven镜像的runner)
./gitlab-runner-linux-amd64 register \
  --non-interactive \
  --url "这里写你GitLab的访问地址" \
  --registration-token "这里就是要填写前面获取到的token啦" \
  --executor "docker" \
  --docker-image maven:latest \
  --description "runner的描述信息,可以自己写,例如:docker-runner" \
  --maintenance-note "维护备注,相当于备注,自己填就可以" \
  --tag-list "给runner加个标签,随便填,例如:docker,maven" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

# 执行注册命令
# 前端项目(注册node镜像的runner)
./gitlab-runner-linux-amd64 register \
  --non-interactive \
  --url "这里写你GitLab的访问地址" \
  --registration-token "这里就是要填写前面获取到的token啦" \
  --executor "docker" \
  --docker-image node:16 \
  --description "runner的描述信息,可以自己写,例如:npm-runner" \
  --maintenance-note "维护备注,相当于备注,自己填就可以" \
  --tag-list "给runner加个标签,随便填,例如:docker,npm" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

上面命令中,中文内容根据自己的实际情况填写,另外,需要注意的是,我这里使用的是docker执行的流水线任务,所以你必须确保你的服务器已经安装了docker环境。

上面命令中,有一个属性要特别注意了,那就是【--docker-image】这个属性,这个属性是指定当前runner采用哪个镜像执行流水线任务的。

  • 【maven:latest】:如果你是Maven项目,那么可以使用maven镜像执行流水线任务。
  • 【node:16】:如果你是前端node项目,那么可以使用node镜像执行流水线任务。

runner可以注册很多个,后端项目会单独使用一个runner,前端项目会单独使用一个runner,所以前后端项目至少要注册了个runner服务。

1.6、查看配置文件

runner注册成功之后,此时就可以在【/etc/gitlab-runner/conf.toml】配置文件中,查看到runner的注册配置信息,可以查看一下这个配置文件。

# 查看 gitlab-runner 配置文件
cat /etc/gitlab-runner/config.toml

结果如下所示:

注意:默认情况下,conf.toml配置文件中流水线并发执行的数量设置的是【1】个,也就是说,同一时间内,只能处理一个pipeline流水线,其他的流水线就必须等待执行,你就会看到其他流水线处于【pending】状态,等待流水调度执行。

This job has not started yet
This job is in pending state and is waiting to be picked by a runner

这个情况下,你可以修改【conf.toml】配置文件中的【concurrent】属性值,将其设置成你需要的数值,我是设置成了【10】个,也就是说,可以同时执行10个pipeline流水线任务。

1.7、service启动文件

为了方便管理gitlab-runner服务,我是通过service文件来统一管理gitlab-runner服务,首先在【/etc/systemd/system】目录下,创建一个【gitlab-runner.service】文件,然后写入下面的启动命令,如下所示:

[Unit]
Description=GitLab Runner
ConditionFileIsExecutable=/home/gitlab-runner/gitlab-runner-linux-amd64

After=syslog.target network.target

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/home/gitlab-runner/gitlab-runner-linux-amd64 "run" "--working-directory" "/home/gitlab-runner/work" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--user" "gitlab-runner"

Restart=always

RestartSec=120
EnvironmentFile=-/etc/sysconfig/gitlab-runner

[Install]
WantedBy=multi-user.target
  • 注意:--user是指定用户的,我是创建了一个gitlab-runner的用户,如果你没有创建,那么可以先创建一个用户。

1.8、刷新服务

创建或者修改了service服务,必须重新加载service配置信息,执行下面命令:

# 刷新服务
systemctl daemon-reload

1.9、启动服务

刷新服务之后,就可以启动服务了,执行下面命令:

# 启动服务
systemctl restart gitlab-runner.service

执行命令之后,可以在执行下面的命令,查看是否启动成功:

# 查看服务启动状态
systemctl status gitlab-runner.service -l

1.10、启用runner服务

runner注册并且启动成功之后,进入GitLab项目仓库里面,找到CICD下的Runners区域,此时,就会出现我们刚刚注册成功的runner服务,然后可以给当前项目启用这个runner即可。

接着,就可以正常支持pipeline流水线任务了,如下图所示:

到此,Linux服务器中部署gitlab-runner实现CICD流水线就完成啦。

综上,这篇文章结束了,主要介绍如何在Linux服务器中部署gitlab-runner实现CICD流水线。


http://www.kler.cn/a/429798.html

相关文章:

  • Cesium加载地形
  • 【MySQL】DATEDIFF()函数使用
  • 数据结构大作业——家谱管理系统(超详细!完整代码!)
  • Photon最新版本PUN 2.29 PREE,在无网的局域网下,无法连接自己搭建的本地服务器
  • SSM01-MyBatis框架(一文学会MyBatis)
  • 微信小程序从后端获取的图片,展示的时候上下没有完全拼接,有缝隙【已解决】
  • JS 偏移量和鼠标位置
  • RabbitMQ中Fanout交换机的深入探讨
  • 高质量阅读微信小程序ssm+论文源码调试讲解
  • C# 中的静态构造函数和实例构造函数的区别
  • docker 部署seata
  • 思科模拟器路由器的基本配置
  • 数据挖掘:一、Weka软件的基本操作
  • ubuntu如何安装cuda 11.8版本
  • 21天掌握javaweb-->第12天:Spring Boot项目优化与安全性
  • YOLOv10改进,YOLOv10添加CARAFE轻量级通用上采样算子,可提高目标检测性能
  • 创建 React Native 项目
  • 满足地图“颜控”,打造百变风格地图
  • 自动驾驶数据集的应用与思考
  • Grafana功能菜单介绍
  • VS中报错,无法嵌入互操作类型XXX,请改用适用的接口的解决方法
  • Go语言基础教程1
  • C# 中的异步编程:提升应用程序响应性和性能
  • Redis原理—2.单机数据库的实现