原创

详解Gitlab Runner注册与过程中遇到的问题

前言

官方文档

之前我们已经搭建好了一个gitlab平台,也已经将项目托管于Gitlab平台了,现在要开始使用Gitlab的CD功能,但是还要做一步工作,就是创建一个Gitlab Runner并将Runner注册到我们的平台上。

准备工作

Gitlab平台:gitlab平台搭建

托管代码:将项目托管于Gitlab平台

服务器实例:我们需要有一个服务器,可以是公网服务器也可以是本地的Linux虚拟机,我们这里选择使用本地的虚拟机(centos 7),如果找不到合适的虚拟机镜像,可以关注我的公众号:愚蠢的鲍德温,回复“centos”获取。

安装Runner

设置Gitlab仓库

执行命令并等待安装完成

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash

安装Gitlab Runner

以下两种,按照需求进行安装,我们这里是安装的最新版本的Runner

安装最新版Gitlab Runner

执行命令并等待安装完成

sudo -E yum install gitlab-runner

安装指定版本的Gitlab Runner

yum list gitlab-runner --showduplicates | sort -r
sudo -E yum install your-runner-version

注册Runner

官方文档

Runner的分类

  • Shared Runner:所有的组和项目公用的Runner
  • Group Runner:某个组的Runner
  • Project-specific Runner:某个项目的Runner

获取Runner-token

不同的Runner注册时主要体现在Token的获取方式不同,我们这里使用共享Runner的方式来注册,在Setting>Overview > Runners中获取token

在这里插入图片描述

注册

调出注册命令

sudo gitlab-runner register

输入平台地址

在获取token界面有咱们的注册地址,直接复制粘贴过来

输入token

复制token并输入

输入runner描述

输入你对这个节点的描述,稍后可以修改

输入runner标签

标签有三个可选值:share runner,group runner,specific runner,我们这里选择shared runner

设置执行器

这里可选的有:docker, parallels, ssh, docker+machine, docker-ssh+machine, kubernetes, custom, docker-ssh, shell, virtualbox,我们选择的是docker

设置默认镜像

我们运行的是java程序,这里选择的镜像是baldwinkm/jdk:8,不过好像并不用设置,因为我们的后续在部署的时候会在.gitlab-ci.yml文件中做新的设置,具体我没有验证

注册成功

注册成功会有以下提示

Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

刷新控制界面,有新的runner注册
在这里插入图片描述

FAQ

couldn’t execute POST against https:///api/v4/runners: Post https:///api/v4/runners: x509: certificate signed by unknown authority

这是因为我们创建gitlab平台的时候使用的是自注册的证书,在runner节点上是无法识别的,此时需要将gitlab上的证书下载到runner节点上,并在注册时执行命令

gitlab-runner register --tls-ca-file your-crt-path

总结

注册过程很流畅,只有证书那边出现了点问题,在配置好证书后,就解决了问题,但是这个自注册的证书一直给我造成了很大的麻烦,打算抽时间重新搭建一个gitlab,使用公网证书。

如果你在实践的过程中遇到了其他问题,可以关注一下我的公众号,我可以在线帮您解决

正文到此结束
本文目录