2015-01-22 6 views

답변

5

나는이 간단한 스크립트 충분할 것이라고 기대했다 :

import java.net.* 

for (slave in Jenkins.instance.slaves) { 
    host = slave.computer.hostName 
    addr = InetAddress.getAllByName(host) 
    println slave.name + ": " + addr.hostAddress 
} 

그러나 적어도 내 설치에, 그것은 나에게 내가 여러 네트워크 인터페이스가있는 시스템에서 원하는 결과를 제공하지 않습니다.

the answer to "How to execute system command on remote node"에서 "슬레이브에서 명령 실행"을 사용하여 각 슬레이브에서 /sbin/ifconfig과 같은 것을 실행할 수 있습니다. 그러면 분명히 자세한 내용을 알 수있을 것입니다.하지만 IP를 추출하기 위해 출력 파서를 작성하는 그루비 (Groovy)에 정통한 사람은 없습니다.

2

@Dave Bacher의 대답은 주어진 호스트에 대한 모든 IP를 제공합니다.

대신 (항상 null을 반환) 위에서 언급 한 접근 방식의
def jenkins = jenkins.model.Jenkins.instance 
for (node in jenkins.nodes) { 
    println "${node.nodeName}: node.toComputer().launcher.host" 
} 
+0

이 하나 마지막으로 호스트 이름을 검색하기 위해 노력 : 가정 당신의 노예가 SSH 이것은 당신에게 에이전트가 사용 엄격하게 IP를 제공을 기반으로합니다. :) –

+0

불행히도 그것은 JNLP 연결된 기계를 작동하지 않습니다 : ( –

관련 문제