注册runner 有几种不同的方式,这里介绍的是在centos7中使用 rpm包来安装
按照gitlab runner的官网链接里面的介绍: gitlab runner 链接
下载
官网描述:
## Replace ${arch} with any of the supported architectures, e.g. amd64, arm, arm64
# A full list of architectures can be found here https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_${arch}.rpm"
如官网所描述,将${arch}替换成所支持的文件
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpm"
这里是将${arch}换成了amd64
在centos7中新建一个runner的文件夹,在该目录下输入上述命令。当下载完之后,即可看见在当前的runner文件夹中有gitlab-runner_amd64.rpm文件了
安装
如官网所描述,运行下面的命令
当前是在centos系统中安装,注意将arch替换成amd64,完整运行的命令如下:
rpm -Uvh gitlab-runner_amd64.rpm
经过一段时间的等待之后,gitlab-runner 的服务已近安装成功了
我们可以看到当前的gitlab-runner 的版本是信息,以及配置文件信息
注册runner
运行如下命令,注意一些关键参数的意思
- url: 所管理gitlab 服务的域名
- registration-token: 注册runner的token. 一般是owner权限可以在gitlab runner信息中查看到
- executor: 执行器的类别,有很多,常用的有docker和shell,这里我们选择shell类型的执行器
- description: 对注册runner的描述
- tag-list: 注册runner的标签
- run-untagged:对没有标签的流水线是否可以使用当前的runner
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.dc.servyou-it.com/" \
--registration-token "gitlab token" \
--executor "shell" \
--docker-image alpine:latest \
--description "afe-shell-runner" \
--tag-list "tag" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
注册完之后即可看到,已近显示注册成功了,并且可以在/etc/gitlab-runner/config.toml配置文件中查看到注册runner的基本信息
也可以去gitlab网站中查看我们刚刚注册的runner
当我们看到statue中显示是online的标记的时候,即可表示当前runner已近可以正常使用了。
我们可以写一个简单的流水线,输出一些内容。发现此时的runner可以正常运行了
删除指定的runner
我们可以注册多个runner,也可以删除指定的runner。
这里我们使用gitlab-runner list查看到有一个runner的名称为afe-shell-runner.
我们通过下面命令将其删除
gitlab-runner verify --delete --name afe-shell-runner
显示runner…is removed之后该runner已近被删除了。
我们可以通过gitlab-runner list命令查看到已近没有afe-she-runner了。
也可以查看config.toml配置文件发现也没有了afe-she-runner的信息了
shell与docker执行器的几个不同点
- docker 注册的runner每次运行runner的时候都是启动一个全新的容器,环境是干净的。不同runner之间任务是独立的,不会干扰到宿主环境。
- shell 运行则是在机器上,共享一个全局环境,意味着有些全局环境比如node,无需在.gitlab-ci.yml中重新安装了。比较方便,但也可能一个任务修改了全局变量会影响其他runner运行的环境
- shell执行流水线之后代码会保存在本地的/home/build/这个文件夹之下。不会运行完之后删除。这点需要注意一下,需要定时删除,否则时间久了可能会占用本地大量的磁盘空间