Theme:

Jenkins를 업그레이드했더니 포트 설정이 초기화되어 접속이 안 되는 경험을 해보셨나요?

Jenkins 업그레이드 는 보안 패치, 플러그인 호환성, JDK 지원 정책 변경 때문에 필수적이지만, 서비스 파일 초기화라는 함정이 있습니다. 사전 백업 없이 업그레이드하면 커스터마이징한 설정이 날아갈 수 있습니다.

왜 업그레이드가 필요한가

Jenkins LTS는 약 12주 주기로 릴리스됩니다. 업그레이드를 미루면 보안 취약점에 노출되거나, 신규 플러그인과 호환성 문제가 발생할 수 있습니다.

업그레이드 전 사전 작업

항목설명
백업$JENKINS_HOME 디렉토리 전체 백업
플러그인 호환성 확인주요 플러그인이 새 버전과 호환되는지 확인
서비스 파일 백업/usr/lib/systemd/system/jenkins.service 복사
현재 버전 확인Jenkins 대시보드 하단 또는 jenkins --version
BASH
# JENKINS_HOME 백업
sudo cp -r /var/lib/jenkins /var/lib/jenkins_backup_$(date +%Y%m%d)

# 서비스 파일 백업
sudo cp /usr/lib/systemd/system/jenkins.service /usr/lib/systemd/system/jenkins.service.bak

업그레이드 절차

1. Jenkins 정지

BASH
sudo systemctl stop jenkins

2. YUM을 사용한 업그레이드

BASH
sudo yum update jenkins -y

3. 서비스 파일 확인 및 재시작

BASH
sudo systemctl daemon-reload
sudo systemctl start jenkins

업그레이드 후 확인 사항

업그레이드 과정에서 서비스 파일(jenkins.service)이 기본값으로 덮어씌워질 수 있습니다. 이전에 커스터마이징한 설정(포트, JDK 경로 등)이 초기화되었는지 반드시 확인해야 합니다.

트러블슈팅

포트 초기화 문제

증상: 업그레이드 후 기존에 사용하던 포트(예: 45000)로 접속이 되지 않습니다.

** 진단 과정:**

BASH
# 1. 포트에서 프로세스가 실행 중인지 확인
lsof -i:45000

# 2. Jenkins 서비스 상태 확인 (active이지만 다른 포트에서 실행 중)
systemctl status jenkins

# 3. 서비스 파일에서 포트 설정 확인
grep JENKINS_PORT /usr/lib/systemd/system/jenkins.service

** 원인:** YUM 업그레이드 시 jenkins.service 파일이 기본값(JENKINS_PORT=8080)으로 초기화되었기 때문입니다.

** 해결:**

BASH
# 서비스 파일에서 포트를 다시 수정
sudo vi /usr/lib/systemd/system/jenkins.service
INI
Environment="JENKINS_PORT=45000"
BASH
sudo systemctl daemon-reload
sudo systemctl restart jenkins

** 팁:** 업그레이드 전에 서비스 파일을 백업해두면, diff 명령어로 변경된 부분을 빠르게 확인할 수 있습니다.

BASH
diff /usr/lib/systemd/system/jenkins.service /usr/lib/systemd/system/jenkins.service.bak

JDK 버전 EOL 대응

** 증상:** Jenkins 대시보드에 "Java 17 support will end on March 31, 2026" 경고 메시지가 표시됩니다.

** 원인:** Jenkins가 특정 JDK 버전의 지원을 종료(EOL, End of Life)할 예정이므로, 상위 버전으로 업그레이드가 필요합니다.

** 해결:**

BASH
# 1. 서비스 파일에서 JAVA_HOME 경로 수정
sudo vi /usr/lib/systemd/system/jenkins.service
INI
Environment="JAVA_HOME=/app/jdk-21"
BASH
# 2. 변경 사항 적용
sudo systemctl daemon-reload
sudo systemctl restart jenkins

Jenkins의 JDK 지원 정책은 공식 문서에서 확인할 수 있습니다. EOL 이전에 미리 전환하여 빌드 중단을 예방하는 것이 좋습니다.

업그레이드 체크리스트

업그레이드 후 아래 항목을 순서대로 점검합니다.

순서점검 항목확인 방법
1Jenkins 기동 상태systemctl status jenkins
2포트 설정ss -tnlp | grep <PORT>
3JDK 경로서비스 파일의 JAVA_HOME 확인
4웹 UI 접속브라우저에서 접속 확인
5플러그인 상태Manage Jenkins > Plugins
6파이프라인 테스트주요 Job 수동 빌드 실행
댓글 로딩 중...