[Jenkins] Jenkins 설치하기

엄기훈·2024년 9월 11일
0
post-thumbnail

사내 Jenkins를 도입하며 제가 기여했던 부분을 글로 정리합니다.

0. 서론

문제점

우리 회사에서는 개발 서버를 배포하기 위해 마련된 CI/CD 파이프라인이 존재하지 않아 매번 수동으로 서버를 배포할 수 밖에 없었습니다.

  1. 로컬에서 개발용 프로파일로 서버 빌드
  2. SFTP Tool(Termius)로 개발기 접속
  3. 로컬에 있는 파일 SFTP로 개발기로 전송
  4. 빌드 파일 실행을 위한 스크립트 작성
    • 스크립트는 다행히 템플릿이 존재하였음
  5. 스크립트 실행

특히 정부와도 협업이 많았던 회사였기 때문에 개발기로 구버전의 CentOS를 이용하고 있었습니다.
때문에 오래된 Git 사용으로 인한 문제, Java 버전 불일치 등 매 배포마다 이러한 문제에 부딪혀 배포에만 2-3시간이 걸리는 비생산적인 상황이 발생하였습니다.

이런 수동적인 일련의 과정을 Jenkins로 대체하기 위해 기여했던 과정 중 첫 번째 과정에 대해 글로 남기고자 합니다.

1. 리눅스 서버에 Jenkins 설치하기

Jenkins 공식 문서를 토대로 설명합니다. 자세한 내용은 공식 문서를 확인해주세요.

사내 개발기를 외부에서 사용할 수 없어 AWS EC2 환경에서 설명합니다.

EC2 환경

  • Ubuntu 24.04
  • SSH 키 인증 방식 사용

먼저 Jenkins의 GPG Key를 받기 위해 아래의 명령어를 입력합니다.

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key

이후 Jenkins 저장소 정보를 저장하기 위해 아래의 명령어를 입력합니다.

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
  https://pkg.jenkins.io/debian binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null

마지막으로 APT 저장소를 업데이트하고 jenkins를 설치해줍니다.

sudo apt-get update
sudo apt-get install jenkins

Jenkins를 실행하기 위해서는 Java가 필요하기 때문에 Java도 추가적으로 설치해줍니다.

sudo apt update
sudo apt install fontconfig openjdk-17-jre

좋습니다! 이제 jenkins를 실행해볼까요?

2. Jenkins 실행하기

아래의 명령을 입력해 Jenkins를 데몬 프로세스로 만듭니다.

sudo systemctl enable jenkins

그 다음 아래의 명령어로 Jenkins를 실행해봅시다.

sudo systemctl start jenkins

만약 에러가 발생한다면?

이런식으로 에러가 발생한다면 journalctl -u jenkins.service를 입력해 에러를 확인해봅시다.

보이시나요? jenkins: failed to find a valid Java installation 에러가 발생했네요.
Java를 설치했음에도 jenkins가 Java를 인식하지 못한 것 같네요.
공식문서에서는 Jenkins 데몬의 설정 정보를 sudo systemctl edit jenkins를 입력해 수정하라고 합니다.
해당 명령어를 입력하면 nano 에디터가 뜨면서 새 설정 파일에 대한 내용이 표시됩니다.
주석처리된 설정 파일을 살펴보니

기본 JAVA_HOME 디렉토리가 저렇게 설정되어 있네요.
해당 라인의 주석을 해제하고 자신의 컴퓨터에 설치된 올바른 Java 경로를 입력하면 해당 에러는 사라지고 잘 실행됩니다.
만약, 이 글과 똑같이 따라했음에도 에러가 발생한다면 터미널을 종료하고 다시 실행해보세요.

3. Jenkins 초기 설정하기

Jenkins의 기본 포트 번호는 8080번입니다.

포트를 변경하고 싶다면?
8080번 포트는 Tomcat의 기본 포트라 다른 프로세스와 충돌이 발생할 수 있습니다.
이 때 sudo systemctl edit jenkins를 입력하여 Jenkins 설정을 수정해야 합니다.

Environment 앞의 주석을 해제하고 원하는 포트로 입력하면 포트가 변경됩니다.

http://{컴퓨터 IP 주소}:8080 주소로 접속하면 아래와 같은 초기화면이 나타납니다.

Jenkins를 사용하기 위해 초기 관리자 비밀번호를 입력하라고 하네요.
해당 비밀번호는 저 경로의 파일에 적혀있다고 합니다.
해당 경로의 파일을 열어서 확인해볼까요?

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

결과로 나온 문자열을 복사해서 비밀번호를 입력해줍니다.

우선 처음 설치하는 것이니 기본 플러그인만 설치해보겠습니다. (Install suggested plugins 선택)

플러그인 설치가 끝나면

폼 내용에 맞추어 첫 관리자 계정을 생성합니다.

추후 외부에서 Jenkins를 접속해야할 때 제공할 주소를 변경하는 과정입니다.
현재로서는 외부에서 접속할 일이 없기 때문에 기본으로 설정된 값으로 하고 넘어가겠습니다. (하단의 Save and Finish 선택)

이후 한 페이지를 더 넘어가면 드디어 Jenkins 홈 화면을 만나볼 수 있습니다!

4. 마무리

Jenkins 설치를 성공적으로 마무리하고 초기 설정까지 완료해 홈 화면에 진입했습니다.
다음 글에서는 Freestyle Project를 생성해 첫 애플리케이션을 배포하겠습니다.

profile
한 번 더 고민해보는 개발자

0개의 댓글