【软件安装】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】目录下面,如下所示:

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

bash 复制代码
# 进入文件上传目录下
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服务,注册命令如下所示:

cs 复制代码
# 首先进入执行文件目录
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的注册配置信息,可以查看一下这个配置文件。

cs 复制代码
# 查看 gitlab-runner 配置文件
cat /etc/gitlab-runner/config.toml

结果如下所示:

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

cs 复制代码
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】**文件,然后写入下面的启动命令,如下所示:

cs 复制代码
[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配置信息,执行下面命令:

cs 复制代码
# 刷新服务
systemctl daemon-reload

1.9、启动服务

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

cs 复制代码
# 启动服务
systemctl restart gitlab-runner.service

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

cs 复制代码
# 查看服务启动状态
systemctl status gitlab-runner.service -l

1.10、启用runner服务

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

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

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

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

相关推荐
是程序喵呀3 分钟前
部署GitLab服务器
运维·服务器·gitlab
JAVA终结者7 小时前
IDEA结合GitLab使用
gitlab
江梦寻21 小时前
GitHub、Google等镜像加速地址收集
前端·后端·编辑器·gitlab·github·gitcode
guangshui5162 天前
2030. gitLab A仓同步到B仓
gitlab
丁总学Java2 天前
推送(push)项目到gitlab
gitlab
YCyjs2 天前
gitlab
gitlab
yanlaifan2 天前
共享GitLab中CICD自动生成的软件包
gitlab
繁缕怀夕2 天前
【gitLab正常使用记录】
gitlab
joker.zeng2 天前
前端项目使用gitlab-cicd+docker实现自动化部署
前端·ci/cd·docker·gitlab
鲁子狄2 天前
[笔记] Git 实战指南:Git命令大全 与 Git提交信息规范
笔记·git·gitee·gitlab·github·gitea·gitcode