프로젝트에 Jenkins 적용하기
TL;DR
Jenkins 란?
- 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integration) 툴 이라고 표현한다.
- 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.
들어가며
이번에 많은 IT 기업에서 자동 빌드 & 배포 툴 로써 이용을 하는 Jenkin를 주제로 포스팅을 해보았습니다. 포스팅 주제로 선정한 이유는 이전 “Nginx를 활용한 무중단 배포 환경 설정하기” 와 관련된 포스팅을 진행함에 있어 Nginx 와 같이 사용하면 괜찮겠다 싶어 선정을 하게되었습니다.
Jenkins 는 이전에 적용을 해보고 관련 설정을 자세히 다룬 경험이 적어, 포스팅을 작성하는 동안 조금 해매긴 하였습니다,,, 하지만 이번 포스팅을 다루는 동안 정리하는 시간을 가지게 되어 다행이라고 생각이 됩니다.
서버 환경
- OS :: CentOS v7.x
- F.W :: Spring-boot v2.3.x
- Build :: Gradle v6.7
- SVC :: GitHub
Jekins 설치
-
적용할 서버 구성 환경에 맞는 Jenkins 설치
-
JENKINS_PORT 변경 (기존 지정 된 8080 Port의 경우 충돌 위험이 있음)
-
변경한 Port 방화벽 Open
-
http://{ServerHost}:{변경 Port}/ 접근
-
*/jenkins/secrets/initialAdminPassword 경로 내 임시 비밀번호 확인
-
(Install suggested plugins) 선택 하여 Plugin 설치
-
관리자 계정 생성
위 같은 Jenkins 설치 및 기본 환경설정 작업이 필요하나, 포스팅에 추가를 하진 않겠습니다.
대신, Jenkins 설치와 관련하여 정리가 잘 되어 있는 포스팅을 소개드리겠습니다.
테스트 프로젝트 준비
- 프로젝트 생성 (spring boot 환경)
- 프로젝트 Build
프로젝트 자동 배포 환경 설정
이용 플러그인 추가 설치
-
Gradle 플러그인 Jenkins 관리 => 플러그인 관리 => Gradle Plugin
-
Shell 실행 플러그인 Jenkins 관리 => 플러그인 관리 => Post build task Plugin
New Item 생성
[Item 구성]
-
소스 코드 관리 자동 배포를 적용할 Proj 설정
-
Build Point (배포 시점) 일정 주기 or Trigger 설정 가능
-
Build Environment (환경) Gradle 등 Build 시 이용할 도구 정의
-
Build After Action (이후 실행) Build 실행 이후 취할 행동 ( Ex. Send to Email, Start and Stop )
GitHub 연동
- GitHub 계정 / 권한 설정
- Repository 설정
Build Point
- Cron 예약 구문을 활용한 Build Point 설정 .
Build Environment
- Build 도구 설정 (Gradle 이용)
Build After Action
- 빌드 후 bash 명령어를 통한 실행
Build Check
- 빌드 정상 동작 확인
맺으며
이번에 진행한 “프로젝트에 Jenkins 적용하기” 를 포스팅하며 다시 한번 Jenkins를 짚고 넘어갈 수 있었으며, 앞으로 적극 활용하게 될 거 같군요. 감사합니다.
-끝-