Jenkins에게 특정 슬레이브 노드에서 특정 프로젝트를 실행하도록 지시하십시오.


87

Jenkins에게 특정 슬레이브에서 특정 프로젝트를 실행하도록 지시하는 방법은 무엇입니까?

Jenkins 마스터 노드와 응용 프로그램을 스테이징하는 데 사용하려는 슬레이브 노드를 설정했습니다. 그러나 내가 만든 슬레이브 노드에서 프로젝트가 실행되도록 구성하는 방법을 알 수 없습니다.


답변:


84

작업 구성에서 "이 작업을 실행할 수있는 위치 제한"확인란을 설정하고 슬레이브 이름을 지정하십시오.

나중에 슬레이브를 더 추가하면 각 슬레이브에 레이블을 설정하고 작업 구성에서 레이블을 지정할 수 있습니다.

이 참조 설명서를 참조하십시오.


감사. 나는 당신의 대답을 찾기 전에 꽤 오랫동안 사용했습니다. 그것은이 페이지에 추가해야 wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen을

16

파이프 라인 작업을 실행중인 경우 먼저 슬레이브 노드 (또는 지금 호출 된 것으로 보이는 에이전트)에 레이블 (예 : '슬레이브')을 추가하려고합니다.

그런 다음 파이프 라인 스크립트에서 작업이 실행되는 레이블을 지정하십시오.

선언 파이프 라인 :

pipeline {
    agent {label 'slave'}
    stages {
        ...
    }
}

스크립팅 된 파이프 라인 :

node (label: 'slave') {
    ...
}

이 작업은 이제 레이블이 'slave'인 모든 노드에서 실행됩니다. 이 특정 슬레이브에서만 작업을 실행하려면 레이블을 재사용하지 마십시오. 물론 레이블은 '노예'일 필요는 없습니다. 원하는대로 할 수 있습니다.

최신 정보:

스크립팅 된 파이프 라인에서 노드 이름이 "My Node"인 경우 다음을 수행 할 수도 있습니다.

node ('My Node') {
    ...
}

해당 특정 노드에서만 코드 블록을 실행하려는 경우 유용합니다. 그러나 레이블을 사용하는 것이 더 유연하며 워크로드를 공유하기 위해 노드를 쉽게 추가 할 수 있습니다.


이것은 찾기가 어려웠고 스크립트 구문에 대한 문서가 선언을 위해 죽어 가고 있습니다. 아직 마이그레이션 할 수 없으므로 감사합니다!
Mitchell Currie

7

Node / Label을 매개 변수로 사용하려면 NodeLabel 매개 변수 플러그인 을 설치하십시오.


작업에 "노드"매개 변수를 선택하고 Groovy에서 호출하려면 특수 매개 변수 params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(일반적인 대신) 를 작성해야합니다 StringParameterValue.
Nux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.