5. 에이전트를 활용한 분산 빌드 설정

1. 분산빌드(Distributed Build)

젠킨스는 작업을 직접 처리하기보다 에이전트에게 작업을 할당하는 관리자(controller) 역할을 하는 서버입니다. CI/CD의 모든 빌드, 테스트, 배포과정을 컨트롤러가 직접 수행하면, CPU자원과 메모리가 빠르게 고갈될 수 있으며 이로 인해 시스템 다운이 발생할 수도 있습니다.

이를 해결하기 위해선 여러 작업용 에이전트를 생성하여 CI/CD의 각 작업을 에이전트별로 분산시켜 처리하는 방법이 있습니다.

2. Agent 구성

1) Terraform을 활용한 Agent 인프라 추가

Agent1

  • 깃 체크아웃, 메이븐 빌드 및 테스트 작업을 수행

  • 테라폼스크립트 코드예시

Agent2

  • 도커 이미지 빌드 및 푸쉬 작업을 수행

  • 테라폼스크립트 코드예시

  • 위 2개의 스크립트를 추가한 후 terraform apply

결과 확인

2) Zenkins 에이전트 설정

1. SSH Build Agents 플러그인 설치

2. Agent 노드 추가

3. Agent 구성정보 추가

  • Host에는 각 agent의 퍼블릭 ip를 추가.

4) 동일한 방식으로 2번 노드 추가

5) 마스터 노드 라벨 구성

2. 파이프라인 스크립트 수정

1) agent 지시어 알아보기

agent : any

  • 사용 가능한 어떤 agent든 사용하라는 의미

agent : none

  • 파이프라인의 모든 실행과정에서 global agent를 사용하지 않겠다는 의미.

  • 대신 각 stage에 반드시 agent가 선언되어 있어야 한다.

agent : {label : 'master'}

  • agent에 부여된 라벨을 바탕으로 파이프라인을 실행하겠다는 의미.

2) Jenkinsfile수정

3) 빌드 후 결과확인

Last updated