본문 바로가기
CI.CD/Jenkins

[Jenkins] 초기 비밀번호 확인 및 기본 플러그인 설정 (완벽 가이드)

반응형

앞선 2단계 포스팅을 통해 Docker Compose를 활용하여 Jenkins 인프라를 성공적으로 띄우셨다면, 이제 본격적으로 젠킨스의 세계에 발을 들여놓을 차례입니다. 브라우저 주소창에 `http://서버IP:8080` 혹은 설정한 도메인을 입력하고 접속해 보십시오. 아마 친절한 환영 인사나 대시보드 대신, 누군가 침입하는 것을 막기 위해 자물쇠가 굳게 채워진 Unlock Jenkins 화면이 여러분을 당황하게 만들 것입니다. 이번 포스팅에서는 [Jenkins 실무 완벽 가이드] 시리즈의 세 번째 관문인 초기 비밀번호 확인 방법부터 필수 플러그인 설치, 그리고 첫 관리자 계정 생성까지의 전체 셋업 워크플로우를 3,000자 이상의 분량으로 실무 꿀팁과 함께 아주 꼼꼼하게 파헤쳐 보겠습니다. 이 과정을 무사히 넘겨야만 비로소 파이프라인을 구축할 수 있는 권한을 얻게 됩니다.

🔐 1. Unlock Jenkins: 초기 관리자 비밀번호(Initial Admin Password) 찾기

왜 젠킨스는 처음부터 관리자 계정을 만들게 하지 않고 이렇게 복잡하게 락(Lock)을 걸어두었을까요? 만약 클라우드 서버(AWS EC2 등)에 젠킨스를 설치하고 포트를 열어두었는데, 여러분이 밥을 먹으러 간 사이 전 세계의 악의적인 해커나 스크립트 봇이 여러분의 IP 주소에 접속하여 먼저 관리자 계정을 생성해버린다면 어떻게 될까요? 서버의 통제권이 완전히 넘어가버려 악성 암호화폐 채굴기로 전락할 것입니다. 이를 막기 위해 젠킨스는 "서버의 터미널(쉘)에 직접 접근할 권한이 있는 진짜 인프라 관리자"만이 알 수 있는 임시 난수 비밀번호를 요구하도록 설계되었습니다.

화면의 붉은 글씨를 보면 /var/jenkins_home/secrets/initialAdminPassword 경로에 비밀번호 파일이 숨겨져 있다고 안내합니다. Docker 환경에서 이 비밀번호를 빠르고 정확하게 빼내는 두 가지 확실한 실무 팁을 소개합니다.

방법 1: 컨테이너 시작 로그(Log)에서 확인하기 (가장 빠르고 추천하는 방법)

젠킨스 컨테이너가 최초로 부팅될 때, 아주 친절하게도 터미널 로그 출력창 한가운데에 비밀번호를 눈에 띄게 찍어줍니다. 서버 터미널에서 아래 명령어를 입력하여 로그를 조회합니다.

# jenkins_server는 이전 단계에서 설정한 container_name 입니다.
$ docker logs jenkins_server

# 수많은 로그가 출력되는데, 스크롤을 살짝 올려보면 아래와 같은 박스 형태의 텍스트가 있습니다.
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

4a3b7c9d2e1f4g5h6i7j8k9l0m1n2o3p   # <-- 바로 이 32자리 영문/숫자 조합 해시값이 비밀번호입니다!

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

방법 2: 컨테이너 내부로 직접 침투(exec)하여 파일 읽어오기

만약 젠킨스를 켜둔 지 시간이 오래 지났거나 로그가 덮어씌워져서 위 박스를 찾기 힘들다면, 컨테이너 내부의 쉘에 직접 들어가서 해당 텍스트 파일을 cat 명령어로 읽어버리면 됩니다.

# 1. 젠킨스 컨테이너 내부의 bash 쉘로 접속합니다.
$ docker exec -it jenkins_server bash

# 2. 컨테이너 내부에 들어왔다면 젠킨스가 안내한 경로의 파일을 읽습니다.
root@container_id:/# cat /var/jenkins_home/secrets/initialAdminPassword
4a3b7c9d2e1f4g5h6i7j8k9l0m1n2o3p

# 3. 비밀번호를 복사한 후 exit를 입력하여 컨테이너에서 빠져나옵니다.
root@container_id:/# exit

이렇게 획득한 32자리 해시값을 브라우저의 Administrator password 입력칸에 붙여넣기하고 Continue 버튼을 누르면 무사히 첫 관문을 통과하게 됩니다.


🧩 2. 플러그인 설치 (Customize Jenkins): 생태계의 심장 이식하기

자물쇠를 해제하면 Customize Jenkins라는 플러그인 설치 화면이 나타납니다. 젠킨스는 '플러그인이 없으면 시체'라는 말이 있을 정도로 플러그인 의존도가 높습니다. 화면에는 두 개의 큰 네모 버튼이 나타납니다.

  • Install suggested plugins (권장): 젠킨스 커뮤니티에서 실무자들이 가장 많이, 그리고 필수적으로 사용하는 표준 플러그인 세트를 알아서 다운로드하여 설치해 줍니다.
  • Select plugins to install (사용자 지정): 수백 개의 리스트 중 본인이 원하는 플러그인을 직접 체크박스로 골라서 설치합니다.

💡 실무 Best Practice: 특별한 사유로 인터넷망이 완전히 차단된 폐쇄망에서 오프라인 파일(.hpi)을 직접 밀어 넣어야 하는 극단적인 경우가 아니라면, 무조건 묻지도 따지지도 말고 "Install suggested plugins" 버튼을 클릭하십시오. 심지어 경력이 오래된 시니어 데브옵스(DevOps) 엔지니어조차 첫 세팅 시에는 이 버튼을 누릅니다. 왜냐하면 이곳에 포함된 플러그인들(Git, GitHub Branch Source, Pipeline, Workspace Cleanup, Email Extension, SSH Build Agents 등)은 CI/CD 파이프라인을 구축하는 데 있어 단 하나라도 없으면 아쉬운 핵심 기능들이기 때문입니다.

수동으로 필요한 것만 설치하겠다고 나섰다가는 수십 개의 플러그인 간 얽히고설킨 버전 의존성(Dependency) 문제에 부딪혀 세팅에만 며칠을 낭비하게 될 수도 있습니다. 버튼을 누르면 화면이 넘어가며 수십 개의 플러그인 아이콘이 나타나고 로딩 바가 올라갑니다. 서버의 네트워크 스펙이나 인터넷 회선 상태에 따라 짧게는 2~3분, 길게는 10분 이상 소요될 수 있으니 커피 한 잔을 내리며 여유롭게 기다려 주시면 됩니다. (만약 중간에 다운로드 실패(Red Cross)가 뜨더라도 걱정 마시고 Continue 후 젠킨스 대시보드 설정에서 재시도할 수 있습니다.)


👤 3. 첫 관리자 계정 생성 (Create First Admin User)

플러그인 설치가 모두 끝났다면, 이제 본격적으로 젠킨스의 주인이 될 시간입니다. Create First Admin User 화면이 나타나면 빈칸을 채워 넣습니다.

  • Username (사용자명): 로그인할 때 사용할 ID입니다. admin으로 많이 하지만, 실무에서는 해킹 위험을 낮추기 위해 devops_master나 팀 이름 등을 섞은 고유한 ID를 사용하는 것을 권장합니다.
  • Password / Confirm Password: 강력하고 안전한 비밀번호를 2회 입력합니다. 아까 사용했던 32자리 해시값은 이제 버리셔도 됩니다.
  • Full name (전체 이름): 화면 우측 상단이나 로그에 표시될 닉네임입니다. (예: 인프라관리자 김철수)
  • E-mail address (이메일 주소): 매우 중요합니다! 파이프라인 빌드가 실패하거나 성공했을 때 알림을 받을 실제 이메일 주소를 정확히 기재해야 추후 SMTP 플러그인 연동 시 꼬이지 않습니다.

모두 입력했다면 Save and Continue 버튼을 눌러 계정 생성을 완료합니다.


🌐 4. Jenkins URL 설정 (Instance Configuration)

마지막으로 마주치는 화면은 Instance Configuration입니다. 여기에 입력하는 Jenkins URL은 젠킨스가 자신이 어디에 위치해 있는지 인지하는 매우 중요한 설정값입니다.

기본값으로 여러분이 현재 접속해 있는 IP와 포트(예: http://192.168.0.150:8080/)가 적혀 있을 것입니다. 이 URL이 왜 중요하냐면, Github에서 코드가 푸시되었을 때 젠킨스에게 신호를 보내는 Webhook(웹훅)이나, 젠킨스가 빌드 결과를 Slack 메시지로 보낼 때 메시지에 포함되는 빌드 결과 바로가기 링크가 바로 이 설정값을 기준으로 생성되기 때문입니다.

💡 실무 꿀팁: 만약 당장은 IP 주소로 쓰지만 조만간 Nginx나 AWS ALB를 붙여서 도메인(예: https://ci.mycompany.com)을 할당할 계획이라면, 추후 도메인을 씌운 뒤에 시스템 설정(System Configuration) 메뉴에 들어가서 반드시 이 URL을 해당 도메인 주소로 업데이트해주어야 알림 링크가 깨지지 않습니다. 일단은 기본으로 적힌 값을 그대로 두고 Save and Finish를 누릅니다.


🎯 5. 마무리: "Jenkins is ready!"

모든 설정을 마쳤습니다. 화면 한가운데에 커다랗게 "Jenkins is ready!"라는 문구와 함께 Start using Jenkins 버튼이 나타난다면 성공적으로 구축이 완료된 것입니다. 버튼을 누르면 비로소 대시보드가 나타납니다.

지금까지 3,000자 이상의 상세한 가이드를 통해 초기 비밀번호 확인, 플러그인 세팅 전략, 계정 및 URL 설정까지 실무에서 놓치기 쉬운 디테일한 부분들을 짚어보았습니다. 처음에는 낯설게 느껴질 수 있지만, 이 과정을 거치며 인프라 보안과 설정의 기본기를 탄탄하게 다질 수 있습니다. 다음 포스팅에서는 대시보드에 진입한 후, 팀원들을 위한 추가 계정 생성과 개발자/운영자 간의 세밀한 권한 분리(Role-based Authorization Strategy)를 설정하여 실무에 당장 투입할 수 있는 환경을 만드는 방법에 대해 깊이 있게 알아보겠습니다!

반응형