我在 fargate 中有一个 Jenkins CI/CD 平台。代理(从属)配置为启动新作业和构建。作业触发新代理,代理运行管道,就是这样。
但是,现在我想将我的构建、配置和状态备份到 s3 存储桶。我查看了很多插件,但没有一个符合我的要求。所以我决定只使用 shell 命令来打包文件并将内容上传到我想要的存储桶。
我遇到的问题是,当我使用代理在主服务器内部运行命令来上传 jenkins_home 目录时,代理在其自己的容器内运行并上传代理主目录。
我查看了从服务器到主服务器的访问文档,但它并没有真正起作用,或者我对这篇文章感到困惑。因此,运行备份管道的唯一方法是当我使用主服务器运行管道时,我并不想这样做。我有代理,他们应该运行这些作业。
有没有办法配置 Jenkins 从属节点以在主节点内运行命令?像将 jenkins 主目录上传到 s3 这样的命令?
谢谢你!
答案1
在您的问题中,您已经给出了两个很好的解决方案:
我已经查看了从属到主访问文档,但是它并没有真正起作用,或者我对这篇文章感到太困惑了。
因此,运行备份管道的唯一方法是当我使用 master 运行管道时,但我并不想这样做。
如果您想访问 master $JENKINS_HOME
,这两种解决方案都是不错的选择。您给出的不选择这些解决方案的原因都不是可靠的技术论据,只是个人原因(“我太困惑了/我不想”)。就我个人而言,当我需要我的工作访问 master 时,我使用第二种解决方案就很好了$JENKINS_HOME
。如果您选择第二种解决方案,请注意安全影响。
但是,听起来你只需要备份你的 Jenkins 实例。在这种情况下,你没有理由需要专门使用 Jenkins 来备份 Jenkins。你可以使用任何你想要的备份解决方案。使用 Jenkins 外部的备份解决方案意味着你不需要担心 Jenkins 内的访问控制。