snow · 2026.5.15 11:11 · 조회 1

Jenkins 에이전트(Node) 구성

에이전트란?

Jenkins 에이전트(Agent/Node)는 실제 빌드 작업을 실행하는 서버입니다. Master 서버는 작업을 조율하고 에이전트가 실제 빌드를 수행합니다.

분산 빌드를 통해 부하를 분산하고 다양한 환경(OS, JDK 버전 등)에서 빌드할 수 있습니다.


에이전트 유형

유형연결 방식특징
SSHMaster → Agent SSH전통적인 방식, 안정적
JNLP/WebSocketAgent → Master방화벽 환경에 적합
Docker컨테이너 기반격리된 환경, 재현성 높음
KubernetesPod 기반동적 확장, 클라우드 환경

SSH 에이전트 추가

1. 에이전트 서버 준비

1# 에이전트 서버에 Java 설치2sudo apt install -y openjdk-17-jdk3 4# Jenkins 사용자 생성5sudo useradd -m -d /var/jenkins jenkins6 7# SSH 키 등록 (Master의 공개키를 에이전트에 추가)8sudo -u jenkins mkdir -p ~/.ssh9sudo -u jenkins tee ~/.ssh/authorized_keys <<< "$(cat ~/.ssh/id_rsa.pub)"

2. Jenkins에 에이전트 등록

  1. Jenkins 관리 → Nodes → New Node
  2. Node name 입력, Permanent Agent 선택
  3. 설정 항목:
항목설명
# of executors동시 실행 가능한 빌드 수
Remote root directory작업 디렉토리 (예: /var/jenkins)
Labels에이전트 식별 레이블 (예: linux, node18)
Launch methodLaunch agents via SSH 선택
Host에이전트 서버 IP
CredentialsSSH 키 Credentials

Docker 에이전트

Docker Pipeline 플러그인 설치 후 사용합니다.

1pipeline {2    agent {3        docker {4            image 'node:18-alpine'5            args '-v /tmp:/tmp'6        }7    }8    stages {9        stage('Build') {10            steps {11                sh 'node --version'12                sh 'npm install && npm run build'13            }14        }15    }16}

각 스테이지별로 다른 이미지 사용:

1pipeline {2    agent none3    stages {4        stage('Build') {5            agent { docker 'node:18-alpine' }6            steps { sh 'npm run build' }7        }8        stage('Test') {9            agent { docker 'node:18-alpine' }10            steps { sh 'npm test' }11        }12        stage('Deploy') {13            agent { label 'deploy-server' }14            steps { sh './deploy.sh' }15        }16    }17}

에이전트 레이블 활용

1// 특정 레이블의 에이전트에서만 실행2agent { label 'linux && node18' }3 4// 여러 레이블 중 하나5agent { label 'linux || mac' }

에이전트 모니터링

Jenkins 관리 → Nodes 페이지에서:

  • 각 에이전트의 실행 중인 빌드 수 확인
  • 에이전트 로그 확인
  • 에이전트 연결/해제 제어

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.