젠킨스 파이프 라인 : 에이전트 대 노드?


134

jenkins 파이프 라인에서 에이전트노드 의 차이점은 무엇입니까 ?

그 정의를 찾았습니다.

  • node : 파이프 라인이 수행하는 대부분의 작업은 하나 이상의 선언 된 노드 단계와 관련하여 수행됩니다.
  • agent : agent 지시문은 에이전트 지시문의 위치에 따라 Jenkins 환경에서 전체 파이프 라인 또는 특정 단계가 실행될 위치를 지정합니다.

따라서 둘 다 파이프 라인 단계를 실행하는 데 사용됩니다. 그러나 언제 어느 것을 사용해야합니까?

답변:


145

간단한 대답은 에이전트선언 파이프 라인을 위한 것이고 노드스크립트 파이프 라인을 위한 것 입니다.

선언적 파이프 라인에서 에이전트 지시문은 작업 / 태스크가 실행될 에이전트 / 슬레이브를 지정하는 데 사용됩니다. 이 지시문은 태스크가 실행될 위치, 에이전트, 슬레이브, 레이블 또는 도커 이미지 만 지정할 수 있습니다.

반면, 스크립팅 된 파이프 라인에서 노드 단계는 특정 에이전트, 레이블, 슬레이브에서 스크립트 / 단계를 실행하는 데 사용될 수 있습니다. 노드 단계는 선택적으로 제 또는 라벨 이름 및 해당 노드에서 실행 될 코드 다음 폐쇄 걸린다.

선언 및 스크립팅 된 파이프 라인 (주석에 따라 편집) :

  • 선언적 파이프 라인 은 파이프 라인 DSL의 새로운 확장입니다 (기본적으로 한 단계 만있는 파이프 라인 스크립트, 인수가있는 파이프 라인 단계 (지시문이라고 함).이 지시문은 특정 구문을 따라야합니다.이 새로운 형식의 요점은 다음과 같습니다. 파이프 라인에 익숙하지 않은 사용자에게는 더욱 엄격하고 쉬워야하며 그래픽 편집 등이 가능합니다.
  • 스크립팅 된 파이프 라인 은 고급 요구 사항의 대체입니다.

5
예, 선언적인 파이프 라인은 파이프 라인 DSL의 새로운 확장입니다 (기본적으로 한 단계 만있는 파이프 라인 스크립트, 인수가있는 파이프 라인 단계 (지시문이라고 함). 이러한 지시문은 특정 구문을 따라야합니다). 파이프 라인을 처음 사용하는 사람들이 더 엄격하고 그래픽 편집을 허용하는 등의 작업이 더 엄격해야한다는 점은 위 링크에서 기능 목록을 참조하십시오. 따라서 간단한 작업의 경우 권장되는 접근 방법이라고 말하지만 더 고급 수준의 대본은 폴백입니다
Jon S

6
지금이 3 개 이름은 node, agent,와 slave!
mkobit

2
@mkobit 예, 이름이 매우 혼란 스럽습니다. 어딘가에서 읽었습니다 (지금은 Jenkins 블로그 또는 Jenkins JIRA에서 참조를 찾을 수 없음). 이름이 바뀌고 슬레이브 대신 에이전트 대신 이름을 바꾸고 사용하려고합니다. "음수"단어가 아닙니다. 그런 다음 선언적 파이프 라인이이를 채택하여 에이전트라고합니다. 노드는 스크립트 파이프 라인에서 비롯된 것 같습니다.
Jon S

1
@DenCowboy Aha, 그렇습니다. 선언은 항상 노드를 할당하기 때문에 에이전트 지시문은 할당 된 노드 만 제한하므로 스크립트 파이프 라인에만 적용되는 4 번째 모범 사례를 말씀 드리겠습니다.
Jon S

1
@DenCowboy 아니요 동일하게 사용해야합니다. 에이전트 지시문을 사용하여 사용할 에이전트 / 슬레이브를 처음에 결정하기 만하면됩니다.
Jon S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.