DevOps

Jenkins와 AWS ECR을 사용한 Docker 배포 [3] - Jenkins 설정

nineDeveloper 2021. 7. 11.
728x90

Jenkins와 AWS ECR을 사용한 Docker 배포 [1] - AWS ECR Private Repository 생성 및 설정
Jenkins와 AWS ECR을 사용한 Docker 배포 [2] - Jenkins 서버에서 AWS ECR 로그인 하기
Jenkins와 AWS ECR을 사용한 Docker 배포 [3] - Jenkins 설정
Jenkins와 AWS ECR을 사용한 Docker 배포 [4] - 배포스크립트 작성

Jenkins 설정

1. Jenkins Item 생성 및 Git Connection 정보 등록

Jenkins Item을 생성하고 자신이 사용하는 Git Connection 정보를 등록한다

2. 환경변수 등록

deploy.sh에 필요한 환경변수를 등록한다

  • APP_NAME - Application 명
  • PROFILE - Application 현재 프로필
  • BLUE_PORT - BLUE/GREEN 배포를 위한 BLUE 포트
  • GREEN_PORT - BLUE/GREEN 배포를 위한 GREEN 포트
  • EUREKA_SERVER1 - EUREKA 1번 서버
  • EUREKA_SERVER2 - EUREKA 2번 서버
  • DELAY_TIME - 배포스크립트 구동시 BLUE/GREEN DOWN 지연시간

3. git Repository 정보 등록

git repository 정보를 등록한다

4. WebHook 설정

Git과 Jenkins WebHook 설정을 위해 체크 한다

5. Gradle 빌드 정보 등록과 Docker Push 정보 등록

Gradle 빌드를 위해 Gradle 버전을 선택하고 Task 를 작성한다

그리고 Docker Push를 위해 AWS ECR Repository URI를 등록 한다 뒷부분은 환경변수로 Application 이름과 Profile 을 받도록 하면 Item 작성이 용이 해진다

docker login은 앞에서 설정한대로 jenkins 서버에서 CronJob 으로 주기적으로 로그인 해주고 있으므로 신경쓰지 않아도 된다

6. 각 API 서버에 배포스크립트 파일 전송

Send files or execute commands over SSH Step 을 통해 배포스크립트 파일을 각 API 서버에 전송한다

7. 배포스크립트 수행

Execute shell script on remote host using ssh Step 을 통해 jenkins 서버에서 원격으로 각 API 서버에 전송된 배포스크립트를 수행한다
이때 jenkins에 등록된 환경변수를 export 시켜 환경변수를 사용해 배포스크립트가 수행되도록 한다

8. Slack 알림

운영하고 있는 Slcak 채널이 있다면 Jenkins 처리 결과를 Slack 메신저로 전송한다

728x90

댓글

💲 추천 글