TOPIC/DevOps

Windows에 Jenkins 설치하기

H-Y-E-N 2024. 4. 2. 15:22

안녕하세요. HYEN입니다.

오늘은 Windows에 Jenkins를 설치하는 방법에 대해 알아보겠습니다. 

문득 Jenkins는 Linux에만 설치를 해봤다는 생각이 들어서 이번 글을 적게 되었습니다. 

 

이번 글에서는 Jenkins를 설치할 가상 머신을 생성하는 과정과 Jenkins를 Windows VM에 설치하는 방법에 대해 다뤄보고,

다음 글에서는 Jenkins Pipeline가 동작하며, GitHub와 같은 소스 코드 레포지토리의 소스 코드가 Windows VM의 어떤 Directory로 떨어지는지 확인해 보고자 합니다. 


Contents

     

    1. 테스트 환경 생성

    [시나리오]

    RDP(3389) 포트를 통해 외부에서 접근할 수 있는 Windows 가상 머신을 한 대 생성합니다.
    해당 가상 머신에서 접근 가능한, Public IP가 없는 Window 가상 머신을 한 대 생성합니다.
    두 가상 머신은 다른 가상 네트워크에 존재하며, VNet Peering을 통해 연결되어 있습니다.

     

    ※ 리소스 그룹 한 개에 모든 리소스를 전부 다 배포할 예정입니다.※

     

    1.1 리소스 그룹 생성

    • [기본] 탭 

     

    • [검토 + 만들기] 버튼을 클릭하여 리소스 그룹 생성을 완료합니다. 

     

    1.2 가상 네트워크 생성 - Hub

    • [기본 사항] 탭

     

    • [IP 주소] 탭

     

    • [검토 + 만들기] 버튼을 클릭하여 Hub 가상 네트워크 생성을 완료합니다.

     

    1.3 가상 네트워크 생성 - Spoke

    • [기본 사항] 탭

     

    • [IP 주소] 탭

     

    • [검토 + 만들기] 버튼을 클릭하여 Spoke 가상 네트워크 생성을 완료합니다.

     

    1.4 VNet Peering 구성

    • [가상 네트워크] > [설정] > [피어링] > [+ 추가] 버튼을 클릭하여 피어링 구성을 진행합니다.

     

    • 피어링 링크 이름 및 원격 가상 네트워크를 선택한 후 [추가] 버튼을 클릭하여 피어링 구성을 완료합니다.

     

     

    1.5 가상 머신 생성 (Public IP O)

    • [기본 사항] 탭

     

    • [네트워킹] 탭

     

    • [검토 + 만들기] 버튼을 클릭하여 가상 머신 생성을 완료합니다.

     

    1.6 가상 머신 생성 (Public IP X)

    • [기본 사항] 탭

     

    • [네트워킹] 탭

     

    • [검토 + 만들기] 버튼을 클릭하여 가상 머신 생성을 완료합니다.

     

    2. Jenkins 설치 - Spoke 가상 머신

    2.1 Spoke 가상 머신에 접근

    Local PC에서 Hub 가상 머신에 붙은 Public IP를 통해 Hub 가상 머신에 접근한 후, 가상 머신 내에서 Remote Desktop Connection을 통해 Spoke 가상 머신에 접근합니다.

     

    2.2 Java 설치

    Jenkins를 설치하기 전에, 먼저 Spoke 가상 머신에 Java를 설치해야 합니다.

    그러나 Oracle 페이지로 이동해서 Java를 다운로드 받기 위한 버튼을 누르면 Oracle에 로그인하는 페이지로 리다이렉트 됩니다. 

     

    만약 계정이 없을 경우, https://www.jenkins.io/doc/book/installing/windows/에서 Open JDK를 다운로드 받을 수 있습니다.

     

    해당 페이지로 이동해 하기 과정을 진행합니다.

     

    • [java SE 21]을 클릭한 후 msi 파일을 다운로드 합니다.

     

    • 다운 받은 파일을 압축 해제한 후 압축 해제된 폴더의 경로를 복사합니다.

     

    • 시스템 환경 변수에 해당 경로를 등록하기 위해 로고 키를 눌러 시스템 환경 변수 편집 (Edit the system environment variables)를 클릭합니다.

     

    • [환경 변수 (Environment Variables)] > [새로 만들기 (New)] 버튼을 클릭합니다. 

     

    • 변수 이름 (Variable name)에 JAVA_HOME을, 변수 값 (Variable value)에 복사해 둔 경로를 입력합니다.

     

    • Path라는 변수에 등록한 환경 변수에 대한 bin 경로를 추가해 줍니다.

     

    • cmd 창에서 java -version 명령어를 입력하여 Java 버전이 정상적으로 조회되는지 확인합니다. 

     

    2.3 Jenkins 설치

     

    • 자동으로 다운로드 되는 jenkins.msi 파일을 실행하여 설치를 진행합니다.
      • Service Logon Credentials 창이 나올 때까지 Next를 누른 후 [Run service as a local or domain user :] 옵션을 사용합니다.
        (단, 해당 옵션에서 사용되는 Account는 미리 해당 가상 머신에 생성되어 있어야 합니다. [Settings] > [Accounts] > [Add account]에서 생성 가능)

     

    [Troubleshooting]

    만약 account가 있음에도 하기와 같은 에러가 발생할 경우,

     This account either does not have the privilege to logon as a service or the account was unable to be verified.

     

    • [로컬 보안 정책 (Local Security Policy)] > [로컬 정책 (Local Policies)] > [사용자 권한 할당 (User Rights Assignment)] > [서비스로 로그온 (Log on as a service)]으로 이동합니다.

     

    • [Add User or Group] 버튼을 클릭한 후 해당 account를 추가해 줍니다. 그 후 [Apply] 버튼을 클릭하여 변경 사항을 저장합니다.

     

    • Port Selection 창이 나올 때까지 Next를 누른 후 사용할 Port를 입력하고 Test 합니다.

     

    • Java Home Directory에 대해 default 경로를 실제 Java가 설치된 경로로 변경해 줍니다.

     

    • 모든 설정이 완료되면 [Install] 버튼을 클릭하여 설치를 완료합니다.

     

    2.4 Jenkins 초기 설정

    • 인터넷 창에서 가상 머신 private ip:8080을 입력하여 Jenkins Admin 페이지에 접근합니다.
      초기 비밀번호를 확인하기 위해 해당 페이지에 출력된 경로를 복사하여 해당 파일을 엽니다.

     

    • 복사한 비밀번호를 Jenkins Admin 페이지에 입력하여 접속합니다.

     

    • 필요한 Plugin은 추후에 설치하면 되기 때문에 [Install suggested plugins]를 클릭합니다.

     

    • Create First Admin User 페이지는 필요한 경우 새로 생성하거나, [Skip and continue as admin] 버튼을 클릭하여 건너뜁니다.

     

    • Jenkins URL은 default 값이 맞는지 확인하고 Save and Finish를 클릭하여 Jenkins를 시작합니다.

     

    모든 과정이 제대로 진행되었다면 Jenkins 설치가 완료된 것입니다 ! 


    이렇게 Windows VM에 Jenkins를 설치하는 과정에 대해 알아보았습니다.

    Linux VM보다 Java에 대한 부분에서 좀 더 신경을 써야 하기 때문에 다음에는 그냥 Ubuntu VM에 올리자 라는 생각을 하게 만는 테스트 였습니다. 😓

    다음 글은 Jenkins와 GitHub를 연결하는 부분과, Jenkins Pipeline의 결과물(?)이 어떤 directory에 떨어지는지 확인하는 과정에 대해 다뤄보겠습니다!  

    728x90
    320x100
    SMALL