Jenkins

Jenkins 분산 환경 - slave / 빌드 예약

vhxpffltm 2021. 8. 4. 22:57
반응형

Jenkins 분산 환경

 

이번에는 Jenkins 마스터에서는 작업을 쪼개고 slave에서는 실제 빌드를 수행하도록 하는 분산 환경을 설정해본다.

 

아래와 같이 Agent에 'Random' 을 체크하여 슬레이브 노드를 위한 설정을 한다. port번호를 연결할 환경이 된다면 고정된 port번호를 입력한다.

 

 

 

 

다음 '노드 관리'로 이동하여 노드를 추가하면 된다. 필자는 노드를 미리 만들어 두었으며 해당 노드의 설정을 아래와 같이 정리할 수 있다.

 

 

Remote root directory는 slave노드가 구성될 경로를 적어주면 된다. Name, Description을 작성하고 Label도 원하는대로 작성한다.

 

Usage는 보통 '가능한 슬레이브 노드 실행'으로 하며 실행 방법은 보통 'SSH를 통한 실행' 을 사용하지만,

여기서는 'Launh agent via java web server'로 등록한다.

 

이렇게 저장하면 이제 이 노드에서 빌드되고 실행되는 모든 과정은 root directory에 저장된다.

 

위 과정을 끝내고 '노드 관리'에는 새로 생성한 노드가 보이는데 사용할 수 없다.

이제 인증과정을 거치면 사용할 수 있으며 아래와 같은 화면이 보인다.

링크로 되어 있는 'agent.jar'을 설치하고 jar파일을 Romote root directory 경로에 이동시킨다. 그리고 위에 설명한대로 해당 명령어 라인 전부를 복사해서 실행한다. 

 

 

실행하면 위와 같이 INFO: Connected가 보이는데 이 상태가 되면 이제 slave노드를 사용할 수 있게된다.

 

이제 해당 slave 노드 설정을 통해 간단한 echo 명령어로 빌드하고 실행시켜본다.

 

 

빌드 결과를 콘솔 출력으로 확인해보면 잘 된것을 알 수 있다.

 

그리고 이 노드의 workspace로 우리가 지정한 디렉토리 경로에 생성된것을 확인할 수 있다.

 

 

 

빌드 예약

 

빌드를 시간대별로 예약할 수 있지 않을까 해서 찾아보면 프로젝트 설정에서 진행할 수 있다.

 

 

위 그림과 같이 빌드를 어떻게 진행할지 선택하는 창에서 'Build periodcally'를 선택하면 스케줄을 입력하는 창을 확인할 수 있다.

오른쪽의 '?'를 클릭하면 어떻게 사용하는지에 대한 예시를 확인할 수 있다.

 

Example

# 15분 마다 -> 02, 17, ...

H/15 * * * *

# 매 시 전반부 10분마다

H(0-29)/10 * * * *

# 평일 - 9시 45 ~ 3시 45에 2시간 1번 

45 9-16/2 * * 1-5

#12월을 제외한 매월 1일, 15일 1일 1회

H H 1,15 1-11 * 

 

Refernce

https://www.youtube.com/watch?v=FX322RVNGj4&list=WL&index=17&t=6935s 

반응형