小编典典

从master检索Jenkins节点变量

jenkins

因此,我的Google-fu让我失败了,Jenkins O’Reilly的书也没有帮助。

我有一个具有主节点和20多个节点的Jenkins设置。我在节点上大量使用了自定义环境变量,因为它们中的许多执行相似的任务,只是平台略有不同。

我现在有一个工作,可以在主服务器上运行(必要时),该工作需要知道任何给定节点的某些节点属性,包括我设置的一些环境变量。

有什么办法可以引用这些吗?我的替代方法似乎是在母版中以node1_var1,node2_var1,node1_var2,node2_var2等形式存在数百个环境变量,这似乎有些混乱。大师显然了解变量,因为它们是配置变量的地方,但是我只是找不到在工作中指定变量的方法。

非常感谢任何帮助(或嘲笑并指出明显的答案)…


阅读 446

收藏
2020-07-25

共1个答案

小编典典

这是一个简单的Groovy脚本,该脚本为每个从属打印环境变量列表:

for (slave in jenkins.model.Jenkins.instance.slaves) {
  println(slave.name + ": ")
  def props = slave.nodeProperties.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class)
  for (prop in props) {
    for (envvar in prop.envVars) {
      println envvar.key + " -> " + envvar.value
    }
  }
}

警告:我不是经验丰富的Groovy程序员,所以我可能没有使用Groovy的适当习惯用法。

您可以从Jenkins脚本控制台运行此命令以进行实验。您也可以运行“ System
Groovy脚本”作为构建步骤。以上两个都需要Groovy插件。如果您在工作中不使用Groovy,则可以使用此脚本编写一个属性文件,该文件将在实际工作的构建部分中加载。

2020-07-25