如何批量删除离线的 GitLab Runner
目录
我司使用 GitLab CI 实现持续集成,之前想在 k8s 集群中部署 GitLab Runner1,结果 Pod 不断重启,使得大量离线的 Runner 被注册到 GitLab 中,查找 runner 时略影响效率。虽然对 GitLab 总体使用影响不大,但作为一个强迫症,必须除之而后快。可惜 GitLab 界面上并没有批量删除按钮,倒可以一个一个删,但这上百个 runner,纯手删的话,简直是折磨,也没找到相关接口,所以我只好暂时放下了。
后来对接 GitLab,又把这个事给拾起来了,只因每次操作 GitLab,看到这个界面就非常不爽。这次也终于如愿清理了它们,具体实现如下。
我们使用python-gitlab
模块提供的gitlab
命令行工具。
下载python-gitlab
|
|
编写.python-gitlab.cfg
也可写在/etc/python-gitlab.cfg
,本次写在~/.python-gitlab.cfg
中
示例
|
|
[global]
下default
是指命令行选项--gitlab
没有指定 GitLab Server 的话,默认启用下面哪一节(如[somewhere]
、[elsewhere]
)url
填写自托管的 GitLab 的域名private_token
从用户设置中获取
创建并获取 token 后,填写到上述文件相应字段下即可。
清理 runner
|
|
是不是很简单,gitlab
CLI也没有提供批量删除命令,使用 shell 中 for 循环逐个删除就好了。
至于 id,如何获取呢,每注册一个 runner,其id 编号+1,前三个都是正常的,所以从 4 开始,最后一位编号是 428(可在界面上点击进入相应 runner 详情,从 url 中查看)。
终于只剩下这三个正常的了。
-
可直接使用 GitLab 本身的 kubernetes 集成功能下载 Gitlab Runner ↩︎