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

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

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



답변

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

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

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


답변

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

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

선언 파이프 라인 :

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

스크립팅 된 파이프 라인 :

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

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

최신 정보:

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

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

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


답변

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


답변