게임 프로젝트 CI/CD 구축 : 2.젠킨스 구성

이쩜오·2025년 1월 21일

프로젝트 25L

목록 보기
4/7

작성자 : 권영민
목표 : 게임 개발에 필요한 시스템들을 자동화해보자!(패치, 빌드)


개요

이번 글에서는 Jenkins에서 팀원들의 계정을 생성하고, 빌드를 수행할 Agent 노드를 추가 및 설정하는 방법을 정리하겠습니다.
이 과정은 CI/CD 파이프라인에서 팀 협업을 원활히 하고, 작업 부하를 효율적으로 분산하기 위해 필수적인 단계입니다.


계정 생성

jenkins 관리 - Users에 들어갑니다. CreateUser 버튼을 통해 팀원들의 계정을 생성합니다.

생성된 계정들은 jenkins 관리 - Users에서 확인할 수 있습니다.



Agent 추가

Built-In Node 사용 시 문제점

처음에 Built-In-Node를 이용해서 자동화 파이프라인을 구축하려고 했더니, 아래 이미지와 같은 경고 메시지가 표시되었습니다.

이는 Built-In Node를 사용해 빌드를 실행하면 Controller의 리소스를 소모하거나 보안 취약점이 발생할 수 있다는 경고 내용입니다. 그래서 빌드를 별도의 Agent 노드에서 실행하도록 설정하기로 하였습니다.

Jenkins Agent란

Jenkins Agent는 Jenkins Controller가 할당한 작업(빌드, 테스트 등)을 실행하는 노드로, Jenkins가 분산 환경에서 작업을 효율적으로 처리할 수 있도록 지원하며, 여러 대의 Agent를 통해 작업 부하를 분산하고 병렬로 실행하는 역할을 합니다.

주요 역할

  • 작업 부하 분산: 여러 Agent로 작업을 나누어 성능 최적화.
  • 병렬 처리: 여러 작업을 동시에 실행하여 빌드 시간을 단축.
  • 다양한 환경 지원: 서로 다른 OS나 라이브러리 환경에서 작업 실행.
  • 특정 작업 지정: Label을 사용해 특정 Agent에서만 작업 실행 가능.

Agent 추가 및 설정

jenkins 관리 - Nodes - New Node를 통하여 Agent 노드를 추가합니다. 노드 이름은 "Build_Agent"이고 "Permanent Agent" 타입으로 노드를 추가하였습니다.

Agent를 생성하면서 기본 설정해야하는 항목들 입니다.

  • Number of executors : Agent에서 동시에 처리할 작업의 수를 지정
  • Remote root directory : Agent가 작업 파일을 저장할 디렉터리 경로
  • Labels : 특정 파이프라인나 프로젝트에서 Agent를 선택할 때 사용하는 태그

Agent 설정하기

Freestyle project에서 Agent를 연결하는 방법을 알아보겠습니다.
파이프라인 또는 Freestyle project > 구성에서 아래 이미지와 같이 Label Expression에 내가 추가한 Agent의 라벨을 입력합니다.

Agent 활성화

jenkins 관리 페이지에서 Agent 생성 시 제공된 명령어를 복사합니다.

  • jenkins 관리 > Nodes > (생성한 Agent)
    해당 명령어를 Agent가 실행 중인 시스템의 터미널(cmd나 bash)에 명령어를 입력하고 실행합니다.

    Agent는 온라인 상태가 되면, 해당 Agent를 사용하는 프로젝트나 파이프라인을 빌드할 수 있습니다.


마무리

Jenkins에 필요한 작업들을 수행하면서 Agent를 사용하면 작업 부하 분산과 효율적인 빌드 실행이 가능하다는 것을 알게되었습니다!
다음 글에서는 실제 Jenkins를 활용하여 Unreal 프로젝트를 빌드 자동화하는 방법에 대해서 다뤄보겠습니다 ~

profile
이쩜오 기록

0개의 댓글