windows 配置gitlab runner
本文最后更新于 343 天前,其中的信息可能已经有所发展或是发生改变。

要愉快的使用gitlab,gitlab runner肯定是比不可少的,这篇文章就是记录在windows上安装gitlab runner并进行注册的操作。本文使用的gitlab执行器为powershell

安装git服务

windows并没有默认的git程序,而gitlab runner需要git程序来进行操作,所以说我们先要在windows机器上面安装git程序

点此前往git的官网

安装完后建议重启一下电脑(不是必须的)

安装gitlab runner

首先前往gitlab的官网下载gitlab 的windows版本的exe包,点此前往下载64位的

下载完以后,将该程序放在一个目录(建议文件路径中没有中文以免后续出现没必要的错误)。我是放在c:/gitlab-runner中了。

然后再你的gitlab实例之中前往管理中心>CI/CD>runner>新建runner

然后在新建的界面选中windows,然后记得填写runner的标签(必须填写不然无法创建),点击创建

然后输出了一串绑定命令

这边建议将这个命令排个版再使用。如下

.\gitlab-runner.exe register -url http://example.com -token xxxxxxxx

还要注意一下,你下载下来的gitlab runner文件名可能不叫作gitlab-runner(而是gitlab-runner-windows-amd64.exe或其他的),你只需要将其改为gitlab-runner.exe,记得命令一定要在gitlab-runner.exe的相对路径来执行这个命令(即gitlab-runner.exe所在的目录)

执行命令的时候先会问你执行要连接的网址,我们直接回车即可,然后接下来就是设定gitlab-runner的执行器了,其会让我们选择,我们这边选择shell即可,接下来保存。(这项操作有风险!使用shell执行器的时候一定要保证该runner只运行或处理受信任的项目的流水线,不然可能导致运行runner的机器被植入恶意的代码,点此了解更多

然后就是shell执行器的问题,因为gitlab-runner的默认shellwindows上面不存再,所以我们需要手动的将其修改为powershell,再创建完gitlab-runner以后,其执行目录旁边会多出几个文件,如下图

我们编辑其中的config.toml文件,(用记事本即可),

将其中的shell = “xxx”改为shell = “powershell”即可。

接下来保存,然后接下来安装gitlab-runner作为windows服务,为了达成这一点,我们需要执行以下的命令

gitlab-runner.exe install

安装完之后,我们需要启动gitlab-runner,执行以下的命令

gitlab-runner.exe start

然后前往gitlab的后台查看是否gitlab runner已经连接上了。

问题处理

下面是我运行gitlab-runner windows版本遇到的问题

FullyQualifiedErrorId : CommandNotFoundException

报错详情截图如下

原因:未安装git 服务,按照上文安装git服务之后重启gitlab runner。

CategoryInfo : InvalidArgument: (:)

报错详情如下图

原因:这个是执行的语法问题,检查gitlab-ci.yml,因为我们这个runner是在windows上的,所以请注意不要由linux的命令。如需要执行linux命令请使用linux的runner

Uploading artifacts as "archive" to coordinator... error

报错详情如下图

原因:网络连接有问题导致runner的产物上传不到gitlab。

当然,还有一种情况,当你使用了宝塔面板反向代理gitlab的时候,而又用了宝塔面板中的“NGNIX防火墙免费版”并开启了Post过滤也有可能出现这种情况,这是因为gitlab runner上传的api触发了防火墙的判定机制,有三种方法解决掉这个问题,

1:关闭post 过滤(不推荐)

2:将gitlab runner所在机器的ip加入白名单

3:将以下的url加入白名单

/api/v4/jobs        #这行用于解决runner上传被拒绝
/api/graphql        #这行用于解决gitlab在线预览无法使用

感谢阅读,谢谢。

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议,记得载明出处,(期待)。 内容有问题?请点此跟我反馈
上一篇
下一篇