有时候我们在通过gitlab-ci来执行一些特殊的任务时,公司内提供的共享的gitlab-runner可能并不能支持。这个时候我们可以通过向gitlab注册一个在我们本地运行的私有的runner来执行这些特殊的任务。
要在本地运行runner并注册到gitlab,大致需要三个步骤:
- 本地安装git-runner程序
- 新建一个runner并注册到gitlab
- 启动本地的runner
本地安装git-runner程序
gitlab-runner支持在很多操作系统环境下的安装(docs.gitlab.com/runner/inst…
1.为您的系统下载二进制文件:
sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64"
您可以下载每个可用版本的二进制文件,点击这里查看。
2.赋予其执行权限:
sudo chmod +x /usr/local/bin/gitlab-runner
这个时候,gitlab程序已经在我们的机器上安装成功。可以通过在命令行中执行相关命令进行验证:
使用macOS的brew进行安装
macOS下还支持通过brew安装gitlab-runner程序,使用以下命名即可安装:
brew install gitlab-runner
brew services start gitlab-runner
新建一个runner并注册到gitlab
macOS下新建并注册一个runner也很简单,可以通过下面命令来交互式地注册一个本地runner到gitlab:
gitlab-runner register
运行该命令之后,会有一些列的runner信息让你填写:
命令结束之后,我们就已经将runner注册到gitlab之上了,这个时候我们可以在gitlab的项目页面上(项目页面>settings>CI/CD>Runners>Specific runners)看到我们注册的runner信息:
在Available specific runners栏目下可以看到我们新注册上去的runner,不过我们可以看到我们新注册的runner还处于无法连接的状态,这是因为我们的runner还没有启动。
启动本地的runner
注册完成之后,我们只需要在本地运行我们的gitlab-runner就可以让在gitlab中正常使用这个runner了。首先使用以下命令将系统用户切换为当前操作用户:
su - <username>
将 GitLab Runner 作为服务安装并启动它:
cd ~
gitlab-runner install
gitlab-runner start
到此我们的runner已经注册,并启动。稍等几分钟,再去gitlab页面中观察,可以看到我们的runner已经处理在线状态了,我们可以用它来执行任务了。
使用私有的runner来运行任务
在.gitlab-ci.yml中编辑要使用本地runner运行的任务
如上图,将其tag指定为本地runner的tag,提交代码后可以看到触发的gitlab ci job将会在我们新注册的本地runner中运行👌: