S E P H ' S

[Jenkins] Jenkins로 CI/CD 환경 구축하기 (1) 본문

Programing & Coding/Server 구축 및 CI&CD

[Jenkins] Jenkins로 CI/CD 환경 구축하기 (1)

yoseph0310 2021. 11. 24. 15:31

지금까지 Spring, Django 서버를 jar파일을 빌드하거나 Docker image로 만들어 수동 배포 하는 방법으로 서버에 서비스를 배포 하는 방법에 대해 포스팅 했습니다. 이번 포스팅에서는 실제로 진행해봤던 경험을 바탕으로 Jenkins를 활용한 Spring Boot 프로젝트 자동 배포 방법을 포스팅 하겠습니다. CI/CD 환경을 구축하기 위해선 CI 단계에서 안전하고 충돌이 없는 테스트 결과가 선행이 되어야 합니다. 이에 대한 개념과 준비사항들은 추후에 다른 포스팅에서 다루도록 하겠습니다.

 

ubuntu 서버 환경에서 진행한 것임을 알려드립니다.


Jenkins 설치하기

Docker를 사용해서 Jenkins를 설치합니다.

$ sudo docker pull jenkins/jenkins:lts

# 설치 확인
$ sudo docker images

 

설치가 완료되면 jenkins 이미지를 실행해줍니다.

$ sudo docker run -d -p [호스트 포트번호]:[컨테이너 포트번호] -v /app/[사용할 이름]:/var/jenkins_home
--name jenkins_docker -u root jenkins/jenkins:lts

# 예시
$ sudo docker run -d -p 9090:8080 -v /app/promise:/var/jenkins_home
--name jenkins-docker -u root jenkins/jenkins:lts
-d : 백그라운드로 Docker 컨테이너를 실행합니다.
-p : 호스트 9090포트와 Docker 컨테이너 네트워크 상의 8080포트를 연결합니다. 저는 스프링 서버가 호스트의 8080 포트를 사용하고 있었기 때문에 9090포트를 사용했지만 서버 포트 사용 여부에 따라 다른 포트를 사용하셔도 무방합니다.
-v : 호스트의 파일 시스템과 Docker 컨테이너 파일 시스템을 연결합니다.
--name : 도커 컨테이너의 이름을 지정합니다.
-u : 사용자를 root로 지정합니다.

컨테이너가 정상적으로 잘 작동하는지 확인해 봅시다.

$ sudo docker ps

CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS       
2c862dfd3a6e   jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   3 weeks ago   Up 3 weeks

PORTS                                                                                      
0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 0.0.0.0:9090->8080/tcp, :::9090->8080/tcp

NAMES
jenkins-docker

 

 

이제 http://{HOST_NAME}:[설정한 호스트 포트번호] 으로 접근해봅시다.

 

Jenkins 초기 세팅

젠킨스 페이지로 접근한다면 위와 같은 화면이 반겨줄 것입니다. 도커 컨테이너에 접근해서 다음 명령어로 초기 비밀번호를 가져옵시다. 그런 다음 Administrator password에 입력하면 됩니다.

$ sudo docker exec -it [설정한 도커 컨테이너 이름] bash

# 예시
$ sudo docker exec -it jenkins-docker bash

 

root@[]: /# cat /var/lib/secrets/initialAdminPassword
--- 초기 비밀번호가 이곳에 출력될 것입니다. ---

# 만약 위 방법으로 출력이 되지 않는다면
root@[]: /# cat /var/jenkins_home/secrets/initialAdminPassword

 

Jenkins 초기 플러그인 설치

초기 비밀번호를 입력하고 접속하면 다음과 같은 화면이 나옵니다.

'Install suggested plugins' 를 클릭하여 기본 plugin을 설치합니다.

 

Jenkins 관리자 계정 등록

앞으로 젠킨스 설정을 위한 관리자 계정 등록을 진행합니다. 반드시 까먹지 않고 메모해두시는 것을 권장합니다.

 

 

그리고 포트 번호를 포함한 젠킨스 URL을 작성하고 설정을 끝내면 Jenkins 대쉬보드를 만나실 수 있습니다.

 

지금까지 서버에 Docker로 젠킨스를 설치하고 기본 세팅을 해보았습니다.  다음 포스팅에서는 프로젝트를 등록하고 자동 배포에 대한 내용을 본격적으로 다루도록 하겠습니다.