JENKINS中的从属节点主节点是否有env变量?

JENKINS中的从属节点主节点是否有env变量?,jenkins,Jenkins,我们知道有一个名为JENKINS_HOME的环境变量,所以我们可以在任何地方使用它作为$JENKINS_HOME。 但是现在,当我在从属节点上运行项目时,我需要在从属节点上使用jenkins的主目录(定义从属节点时名为“remote FS root”)作为变量。我发现$JENKINS_HOME始终是主节点上JENKINS的主目录,即使我在从节点上运行项目 有人能帮忙吗?谢谢大家! 如果您看到JENKINS\u HOME环境变量,它只是启动JENKINS master所用脚本的副作用。您不能相信它

我们知道有一个名为JENKINS_HOME的环境变量,所以我们可以在任何地方使用它作为$JENKINS_HOME。 但是现在,当我在从属节点上运行项目时,我需要在从属节点上使用jenkins的主目录(定义从属节点时名为“remote FS root”)作为变量。我发现$JENKINS_HOME始终是主节点上JENKINS的主目录,即使我在从节点上运行项目


有人能帮忙吗?谢谢大家!

如果您看到
JENKINS\u HOME
环境变量,它只是启动JENKINS master所用脚本的副作用。您不能相信它总是可用的


也许你可以解释一下为什么你认为你需要知道从属主目录?

这个老问题,但似乎从未得到回答

变量不会直接暴露在作业环境中,但您可以找出它

默认情况下(即:未设置自定义工作空间)

WORKSPACE=/

JOB\u NAME
包含文件夹(如果您使用它们)

ie:
WORKSPACE=/path/to/remoteFSroot/myfolder/jobname

JOB\u NAME=myfolder/jobname

你可以从那里操纵。
但是,不需要将数据存储在remoteFS根目录中,这甚至可能是一个坏主意,因为您应该能够删除所有不影响数据的工作空间。只需将其存储在另一个目录中(甚至是在所有从节点之间共享的NFS)并使用完整路径进行引用。

使用Jenkins pipeline插件,我可以检索作业正在其中运行的从节点的远程根目录

run.getEnvironment(listener).get("BASE")

我刚刚添加了一个环境变量名SLAVE_HOME来解决这个问题。转到从属节点的定义->查找“节点属性”->“环境变量”->添加名为slave\u HOME的变量,并将该值设置为“remote FS root”的值。然后我可以在Ant脚本中使用这个变量。这个env变量也可用于工具安装脚本吗?在我的例子中:在项目之间共享的大量(15GB)只读数据需要用于构建。宁愿参考确定的位置(并根据需要安装/更新),而不是使大量项目的工作空间膨胀。