Jenkins Agent 설정 (Agent.jar)
구조
- Master ← Agent 연결: Agent 노드가 Master로 접속을 시작하는 방식.
- Inbound Agent: SSH 방식과 달리 Agent 노드에 Inbound Port를 열 필요가 없음.
- → 방화벽 설정이 Agent 노드에 필요 없어 구성이 용이함.
전제 조건
- Agent 노드 OS: Linux (Ubuntu/Debian 기반 예시)
- Java (JRE) 설치: Agent 프로그램 실행을 위해 JRE가 필요함.
# JRE 설치 (예: OpenJDK 21)
sudo apt-get update
sudo apt-get install -y openjdk-21-jre
연결 절차 (임시)
Jenkins UI (노드 관리 -> 신규 노드)에서 제공하는 명령어를 기반으로 Agent 노드에서 직접 실행했음.
1. 작업 디렉터리 생성
# -workDir 파라미터에 지정할 경로 생성
sudo mkdir -p /home/jenkins-build
# Agent 실행 유저에게 소유권 부여
sudo chown ${USER}:${USER} /home/jenkins-build
2. 에이전트 실행
# 에이전트 파일을 저장할 경로로 이동 (예: 홈 디렉터리)
cd ~
# Secret Key 파일 생성
echo <SECRET_KEY> > secret-file
# Agent.jar 다운로드
# <JENKINS_URL>은 실제 Jenkins 마스터 주소로 변경 (예: http://192.168.0.10:8080)
curl -sO <JENKINS_URL>/jnlpJars/agent.jar
# Agent 실행
java -jar agent.jar -url <JENKINS_URL>/ -secret @secret-file -name <AGENT_NAME> -webSocket -workDir "/home/jenkins-build"
→ 실행 후 INFO: Connected 로그가 확인되면 임시 연결에 성공한 것임.
영구 연결 (Systemd 서비스 등록)
문제점
- → 터미널 세션이 종료되면 Agent 프로세스도 함께 종료됨.
- → 서버 재부팅 시 수동으로 재실행해야 함.
해결책
- →
systemd서비스를 생성하여 Agent 프로세스를 영구적으로 관리함.
1. 서비스 파일 생성
sudo nano /etc/systemd/system/jenkins-agent.service
2. 서비스 내용 작성
[Unit]
Description=Jenkins Agent
After=network.target
[Service]
# Agent를 실행할 사용자 계정
User=ubuntu
# agent.jar와 secret-file이 위치한 경로
WorkingDirectory=/home/ubuntu
# Agent 실행 명령어 (java는 절대 경로로 지정)
ExecStart=/usr/bin/java -jar agent.jar -url <JENKINS_URL>/ -secret @secret-file -name <AGENT_NAME> -webSocket -workDir "/home/jenkins-build"
# 서비스 실패 시 항상 재시작
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
3. 서비스 적용 및 시작
# 서비스 파일 변경사항 적용
sudo systemctl daemon-reload
# 서비스 활성화 및 즉시 시작
sudo systemctl enable --now jenkins-agent.service
# 서비스 상태 확인
sudo systemctl status jenkins-agent.service
→ Active: active (running) 상태가 확인되면 영구 연결에 성공한 것임.
'인프라' 카테고리의 다른 글
| [K8S] Harbor : LoadBalancer 및 TLS 설정 (0) | 2025.06.17 |
|---|---|
| [K8S] 클러스터의 리소스 분배 전략 (0) | 2025.06.15 |
| [Jenkins] Helm으로 Jenkins 설치하기 (0) | 2025.06.13 |
| [K8S] 클러스터 붕괴 원인 분석 및 복구 과정 (0) | 2025.06.13 |
| [Proxmox VE] QEMU Guest Agent 설치 및 활성화 (0) | 2025.06.09 |