[CI/CD] 젠킨스 설치 & 세팅

728x90

Windows 환경 Jenkins 설치 실습 및 트러블슈팅 정리

1. 실습 배경

책에 나온 Jenkins 설치 명령어는 Debian/Ubuntu 계열 Linux 기준 명령어였다.

sudo apt update
sudo apt install -y openjdk-17-jre-headless
java -version

하지만 Windows 환경에서는 apt, sudo 명령어를 그대로 사용할 수 없다.
따라서 Windows에서는 Java를 Windows용 패키지 설치 방식으로 설치하고, Jenkins는 Windows Installer를 통해 설치하는 방식으로 진행했다.


2. Linux 명령어와 Windows 대응 관계

Linux 명령어 의미 Windows에서 대응되는 방식
sudo apt update 패키지 목록 갱신 일반적으로 불필요
sudo apt install -y openjdk-17-jre-headless Java 17 실행 환경 설치 winget으로 JDK 설치
java -version Java 설치 확인 동일하게 사용
Jenkins GPG Key 등록 apt 저장소 신뢰 키 등록 Windows Installer 사용 시 직접 처리하지 않음
apt install jenkins Jenkins 설치 Jenkins .msi 설치 파일 실행

3. Java 17 설치

Windows PowerShell을 관리자 권한으로 실행한 뒤, 아래 명령어로 Java 17을 설치했다.

winget install -e --id EclipseAdoptium.Temurin.17.JDK

설치 과정에서 Microsoft Store 원본 사용 약관 동의가 필요했다.

모든 원본 사용 약관에 동의하십니까?
[Y] 예  [N] 아니요: y

이후 Java 17 설치가 정상적으로 완료되었다.

설치 성공

설치 확인 명령어는 다음과 같다.

java -version

실행 결과:

openjdk version "17.0.8.1" 2023-08-24 LTS
OpenJDK Runtime Environment (build 17.0.8.1+1-LTS)
OpenJDK 64-Bit Server VM (build 17.0.8.1+1-LTS, mixed mode, sharing)

즉, Java 17은 정상적으로 설치되어 있었다.


4. Java 21 설치 시도

Jenkins 최신 버전에서는 Java 21이 권장되거나 요구될 수 있어 Java 21도 추가로 설치했다.

winget install -e --id EclipseAdoptium.Temurin.21.JDK

설치 결과:

설치 성공

하지만 다시 java -version을 실행했을 때 여전히 Java 17이 표시되었다.

java -version

결과:

openjdk version "17.0.8.1" 2023-08-24 LTS
OpenJDK Runtime Environment (build 17.0.8.1+1-LTS)
OpenJDK 64-Bit Server VM (build 17.0.8.1+1-LTS, mixed mode, sharing)

5. Java 21을 설치했는데도 Java 17이 나오는 이유

Java 21 설치 자체는 성공했다.
다만 Windows에서 java -version을 실행할 때는 환경 변수 PATH에 등록된 Java 실행 파일 중 먼저 잡히는 Java가 실행된다.

즉, 현재 상태는 다음과 같이 볼 수 있다.

Java 17 설치됨
Java 21 설치됨
하지만 PATH 우선순위에서는 Java 17이 먼저 잡힘
따라서 java -version 결과는 Java 17로 표시됨

이 상황 자체가 Jenkins 설치 실패를 의미하지는 않는다.
다만 Jenkins가 Java 21을 요구하는 버전이라면 Jenkins 서비스가 Java 21 경로를 바라보도록 설정해야 할 수 있다.

현재 실습에서는 java -version 기준으로 Java 17이 활성화된 상태였다.


6. Jenkins 설치 중 서비스 계정 오류

Jenkins Windows Installer 설치 중 다음과 같은 오류가 발생했다.

Invalid Logon
0x8007052e - Error logging on ...

이 오류는 Jenkins 문제가 아니라 Windows 서비스 실행 계정 설정 문제다.

설치 화면에서 Run service as local or domain user를 선택하면 Jenkins 서비스를 특정 Windows 사용자 계정으로 실행하려고 한다.
이때 입력한 계정명 또는 비밀번호가 맞지 않거나, 해당 계정에 서비스 로그온 권한이 없으면 오류가 발생한다.

원인

Jenkins 서비스를 특정 사용자 계정으로 실행하려고 함
Windows가 해당 계정으로 로그인 테스트 수행
계정 또는 비밀번호 검증 실패
설치 진행 불가

해결 방법

로컬 실습 환경에서는 별도 사용자 계정을 사용하지 않고 다음 옵션을 선택하면 된다.

Run service as LocalSystem

LocalSystem은 Windows의 로컬 시스템 계정으로 서비스를 실행하는 방식이다.
개인 PC에서 Jenkins를 실습용으로 설치할 때는 이 방식이 가장 간단하다.


7. Jenkins 초기 잠금 해제 화면

Jenkins 설치 후 브라우저에서 접속했다.

http://localhost:8080

그러면 Unlock Jenkins 화면이 나온다.
이 화면에서는 Jenkins가 자동으로 생성한 초기 관리자 비밀번호를 입력해야 한다.

화면에 표시된 경로는 다음과 같았다.

C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword

8. 초기 관리자 비밀번호 확인

PowerShell 관리자 권한에서 아래 명령어를 실행했다.

Get-Content "C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword"

실행 결과:

48e91d7326bc4ef88dd64aad838bda97

이 값이 Jenkins 초기 관리자 비밀번호다.

따라서 Jenkins Unlock Jenkins 화면의 Administrator password 입력 칸에 아래 값을 그대로 입력하면 된다.

48e91d7326bc4ef88dd64aad838bda97

9. 비밀번호 입력 시 주의사항

초기 비밀번호가 틀렸다고 나오는 경우는 보통 다음과 같은 이유다.

앞뒤 공백까지 같이 복사한 경우
줄바꿈 문자가 같이 들어간 경우
다른 Jenkins 경로의 initialAdminPassword를 확인한 경우
Jenkins를 재설치하면서 이전 비밀번호를 입력한 경우

반드시 현재 Jenkins 화면에 표시된 경로의 파일을 확인해야 한다.

이번 실습 기준 경로:

C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword

10. 전체 진행 흐름 요약

이번 Windows Jenkins 설치 실습은 다음 흐름으로 진행했다.

1. 책의 Linux 명령어가 Windows에서는 그대로 동작하지 않는다는 점 확인
2. Windows에서는 apt 대신 winget을 사용하기로 함
3. Java 17 설치
4. java -version으로 Java 17 설치 확인
5. Java 21 추가 설치
6. Java 21 설치 후에도 PATH 우선순위 때문에 java -version은 Java 17로 표시됨
7. Jenkins Windows Installer 실행
8. Jenkins 서비스 계정 설정 중 Invalid Logon 오류 발생
9. 로컬 실습용으로 Run service as LocalSystem 선택하여 해결
10. Jenkins 접속
11. Unlock Jenkins 화면에서 초기 관리자 비밀번호 요구
12. PowerShell에서 initialAdminPassword 파일 내용 확인
13. 확인한 비밀번호를 Jenkins 화면에 입력

11. 핵심 정리

Linux 책 명령어를 Windows에서 그대로 따라 치는 것이 아니라, 목적을 기준으로 Windows 방식으로 바꿔야 한다.

책의 명령어 목적은 다음과 같다.

Java 설치
Jenkins 설치 준비
Jenkins 실행
초기 관리자 비밀번호 확인

Windows에서는 다음 방식으로 진행한다.

Java 설치: winget
Jenkins 설치: Windows Installer MSI
Jenkins 실행: Windows Service
초기 비밀번호 확인: ProgramData 아래 initialAdminPassword 파일 확인

12. 최종 사용 명령어 모음

Java 17 설치

winget install -e --id EclipseAdoptium.Temurin.17.JDK

Java 21 설치

winget install -e --id EclipseAdoptium.Temurin.21.JDK

Java 버전 확인

java -version

Jenkins 초기 관리자 비밀번호 확인

Get-Content "C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword"

Jenkins 서비스 재시작이 필요한 경우

Restart-Service Jenkins

Jenkins 접속 주소

http://localhost:8080

 

 

 

다음은 이제 젠킨스를 깃허브와 연동하는 셋팅을 해보자!

728x90