젠킨스 파이프 라인 작업을 만들고 특정 레이블로 레이블이 지정된 모든 노드에서 작업을 실행해야합니다.마스터 노드를 포함하여 레이블이 지정된 모든 젠킨스 노드 목록을 얻는 방법은 무엇입니까?
따라서 특정 레이블이 할당 된 노드 이름 목록을 얻으려고합니다. (노드가있는 경우 getAssignedLabels()
으로 레이블을 얻을 수 있습니다)
-list of jenkins.model.Jenkins.instance.nodes
에는 검색에 포함해야하는 마스터 노드가 포함되어 있지 않은 것으로 보입니다.
내 현재 해결 방법은 jenkins.model.Jenkins.instance.computers
을 반복하고 getNode()
-method를 사용하여 노드를 가져 오는 것입니다. 이 기능은 작동하지만 Jenkins의 javadoc에서이 목록을 읽는다면 최신이 아닐 수도 있습니다.
장기적으로 나는 (동적으로) 클라우드 노드를 추가 할 것이고 나는 computers
을 사용할 수 없을 것이라고 두려워한다.
모든 현재 노드 목록을 얻는 것이 옳은가요?
이 내가 지금 뭘하는지입니다 :
@NonCPS
def 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
}
'slaves'가 삭제되고 ('nodes'를 사용해야합니다),'nodes'는 마스터 노드를 포함하지 않습니다. –