将二进制文件从 Jenkins 主机传递给代理

Pass binary from Jenkins host to agent

你能将二进制文件从 Jenkins 主机传递给代理吗?

我在 Kubernetes 中安装了 Jenkins 运行ning,并且在我的 Jenkins master 上安装了 terraform 插件,二进制文件位于 /var/jenkins_home/tools/org.jenkinsci.plugins.terraform.TerraformInstallation/terraform/terraform

我想通过配置我的 pod 模板并将主机卷路径 /var/jenkins_home/tools/org.jenkinsci.plugins.terraform.TerraformInstallation/terraform/terraform 挂载到代理的路径 /usr/bin/terraform

来将其传递给我的 Jenkins 代理

但这似乎并没有像预期的那样工作

当我执行代理并 运行 一个 terraform version 我得到错误 bash: terraform: command not found 表明它没有二进制文件。

我可以看到 /usr/bin 中安装了一个 terraform 目录,但没有二进制文件。我期望在代理上安装 terraform。但我的想法在这里可能是不正确的。

是否可以这样做,有没有人有这方面的经验?

@David Maze 提到来自 Jenkins 的二进制文件需要手动安装在每个节点上,这可能很难管理。但是,您可以将 Jenkins 设置为 运行 容器内的管道步骤,其中图像包含您需要的工具,从而简化这种情况。

阅读更多:execution-env-jenkins.

一种替代方法是使用 slaves setup plugin。我们使用它来根据标签在节点上安装和配置内部工具(和端)。比@Malgorata(和我们以前的)手动复制方法更简单的日志

不确定它与 Kubernetes 的配合情况如何,因为我们的配置中没有。