본문 바로가기
Devops

SpringBoot Jenkins 배포 자동화 2

by heekng 2022. 4. 2.
반응형

SpringBoot Jenkins 배포 자동화 2

이전 시간에 Jenkins를 이용해 SpringBoot 프로젝트 배포를 구현했다.
여기에서 확인할 수 있다.

이번엔 원클릭 배포 시스템에서 github 원격 레포지토리에 push를 하면 github에서 자동으로 Jenkins Build를 시작하도록 설정해보자.

환경
SpringBoot, jar, gradle
AWS EC2
Jenkins
Docker
Github

Github Webhook 설정

Gihub Webhook은 사용자 지정 callback을 이용하여 일반 API와 다르게 역방향으로 요청을 보낸다.

  1. 배포할 프로젝트 레포지토리 webhook setting 진입
    • github 프로젝트 → Setting → Webhooks
  2. Add Webhook
    • Payload URL: Jenkins URL/github-webhook/
    • Payload URL 이외의 다른 설정은 설정하지 않아도 무관하다.
    • webhook1
  3. 저장

Jenkins github-webhook 설치

Jenkins에서 github의 webhook 요청을 받을 수 있도록 설정한다.

  1. github webhhok 플러그인 설치
    • Jenkins → Jenkins 관리 → 플러그인 관리
    • github integration 검색 후 설치
    • webhook2

Jenkins Item 설정

  1. Jenkins 배포 설정이 되어있는 Item -> 구성
  2. 빌드유발 -> GitHub hook trigger for GITScm polling 체크
    • webhook3
  3. 저장

테스트

위 설정을 마치면 해당 프로젝트의 Jenkins에서 지정한 branch에 push할 때 jenkins에서 build를 실행할 수 있도록 요청한다.

webhook4

push 이후 위와 같이 github webhook의 좌측 초록색 체크표시가 있는지 확인해보자.
그리고 Jenkins에 접속하여 빌드가 실행중인지 확인해보자.

마치며

프로젝트 배포 방법은 정말 다양하다.
나의 경우

  1. ftp를 이용해 war파일 직접 이동
  2. 프로젝트 내에서 deployee 명령(war파일 이동) 생성 -> docker재실행 스크립트 실행
  3. Jenkins를 이용한 원클릭 빌드
  4. Jenkins와 github webhook을 이용한 자동화

의 순서로 배포에 대한 지식을 늘렸다.

앞으로는 NGINX를 이용해 무중단 배포를 구현해볼 생각이다.

많은 사람들에게 도움이 되었으면 좋겠다.

반응형