当前位置: 首页 > 面试题库 >

从master检索Jenkins节点变量

丰景同
2023-03-14
问题内容

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

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

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

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

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


问题答案:

这是一个简单的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,则可以使用此脚本编写一个属性文件,该文件将在实际工作的构建部分中加载。



 类似资料:
  • kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 目前这三个组件需要部署在同一台机器上: kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关; 同时只能有一个 kube-scheduler、kube-cont

  • kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 目前这三个组件需要部署在同一台机器上。 kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关; 同时只能有一个 kube-scheduler、kube-cont

  • 问题内容: 我正在尝试遵循一个教程,它说: 有几种加载凭证的方法。 从环境变量加载, 从磁盘上的JSON文件加载, 密钥需要如下: …这意味着,如果您正确设置环境变量,则根本不需要管理应用程序中的凭据。 基于一些谷歌搜索,看来我需要将变量设置为?如何以及在哪里设置这些凭据?请举例。 问题答案: 使用环境变量(在这种情况下)将凭据传递给您的应用程序。并且都可以分别从和访问。您无需对其进行编辑,只需访

  • 问题内容: 我已经设置了一个Jenkins主节点,并且想要在同一网络中添加一个从节点。我需要在从机上安装Jenkins吗?还是可以在不首先安装Jenkins的情况下使用任意机器? 问题答案: 不,您根本不需要在任何从属计算机中安装Jenkins。 如果它是Linux从站,则只需要启用SSH访问即可。如果是Windows计算机,则使用Java并与 Jenkins提供的jar或通过Java Web c

  • 作者:mendickxiao 经过部署Kubernetes集群章节我们已经可以顺利的部署一个集群用于开发和测试,但是要应用到生产就就不得不考虑master节点的高可用问题,因为现在我们的master节点上的几个服务kube-apiserver、kube-scheduler和kube-controller-manager都是单点的而且都位于同一个节点上,一旦master节点宕机,虽然不应答当前正在运

  • 我试着去看一本教程,上面写着: 有几种方法可以加载凭据。 null 根据一些谷歌搜索,我似乎需要设置中的变量?如何以及在何处设置这些凭据?请举例。