如何获取所有分配了标签的Jenkins节点(包括主节点)的列表?
我正在创建Jenkins管道作业,并且需要在所有带有特定标签的节点上运行作业。
因此,我试图获取分配有特定标签的节点名称的列表。(有了一个节点,我可以使用来获得标签getAssignedLabels()
)
中的nodes
-list jenkins.model.Jenkins.instance.nodes
似乎不包含我需要包含在搜索中的主节点。
我当前的解决方案是遍历-
jenkins.model.Jenkins.instance.computers
并使用getNode()
-method获取节点。这行得通,但是在Jenkins的javadoc中,我正在阅读此列表,可能不是最新的。
从长远来看,我将(动态地)添加云节点,恐怕届时我将无法使用computers
。
正确获取所有当前节点的列表是什么?
这就是我现在正在做的:
@NonCPSdef nodeNames(label) {
def nodes = []
jenkins.model.Jenkins.instance.computers.each { c ->
if (c.node.labelString.contains(label)) {
nodes.add(c.node.selfLabel.name)
}
}
return nodes
}
回答:
这就是我现在正在做的方式。我还没有发现其他东西:
@NonCPSdef hostNames(label) {
def nodes = []
jenkins.model.Jenkins.get.computers.each { c ->
if (c.node.labelString.contains(label)) {
nodes.add(c.node.selfLabel.name)
}
}
return nodes
}
jenkins.model.Jenkins.get.computers
包含主节点和所有从节点。
以上是 如何获取所有分配了标签的Jenkins节点(包括主节点)的列表? 的全部内容, 来源链接: utcz.com/qa/414840.html