티스토리 뷰

Server

Jenkins에서 배치 생성하기

니용 2022. 8. 1. 23:29
반응형

이번에 다뤄볼 내용은 Jenkins 에서 스케줄러를 사용하여 작동하게 하는 프로그램을 만들어볼까 합니다. 

Jenkins 스케줄러를 사용하는 이유는 간단합니다.

  1. 스프링배치 스케줄러보다 조작이 수월합니다. Spring Batch의 경우 DI를 진행하고 각종 환경변수를 넣고 소스를 작성하고 테스트를 수없이 진행해야 하는 번거로움이 있습니다.
  2. Cron 표현식 (Quartz)을 동일하게 사용합니다. 친절하게도 사용하는 명령어를 젠킨스 내에서 모두 알려줍니다. 앞으로 언제 작동하는지도 미리 예측할 수 있습니다.
  3. 관리가 쉽습니다. 성공/실패에 대한 알림을 주기적으로 받을 수 있고, 웹훅을 발송하거나 스케줄에 맞춰 jar 파일을 실행하는 방법도 가능합니다.
  4. 서버 접속이나 같은 서버의 자원을 사용하기 때문에 젠킨스가 실행만 되고 있으면 작동하는데 문제가 없습니다. 

그럼 이제 아래에서 젠킨스 아이템을 만들어 스케줄에 맞게 작동하는 방법을 쏘 심플하게 설명해보려 합니다. 가장 심플한 스케줄러 프로그램을 만들어 볼것이기 때문에 형상관리와 다른 경우는 무시합니다. Freestyle project로 프로젝트를 생성하고 General, 소스 코드 관리는 패스하고 바로 빌드 유발로 넘어갑니다. 

1. Build periodically

스케줄을 정해주는 구역입니다. 크론식을 사용할수 있으며 아래와 같이 작성해주시면 최근에 있었을 스케줄, 다음 스케줄을 알려줍니다. Scheudle 옆의 ? 버튼을 누르면 아래처럼 상세한 명령어 사용방법이 출력됩니다.

Jenkins Scheudle Cron Description

 

2. Build

다음으로 스케줄을 실행할 명령어를 작성해주는 구간입니다. 저의 경우 Docker Image를 삭제할 수 있는 스크립트를 해당 경로에 작성하여 스크립트 파일 실행을 하려고 합니다.

 

이렇게 되면 스케줄러는 모두 끝났고, 스케줄에 맞춰 해당 명령어를 젠킨스 서비스가 작동하는 동안 계속 실행하게 됩니다. 

반응형
댓글
공지사항