새소식

Devops/AWS

EC2 Jenkins git 빌드 배포 해보기 (2) - 빌드 후 배포

  • -

1. Publish over SSH 설치

플러그인 관리에 가서 검색 후 설치

설치 후 간단하게 세팅을  또 해보자

 

2. Publish over SSH 설정

시스템 설정에 가면 맽 밑에 Publish over SSH 화면이 있을것이다

Key에 aws 인스턴스를 생성하면서 만든 pem의 내용을 복붙해주자

name : 따로 정해진건 없는거 같다. 일단 임시로 대충 적자

hostname : ip주소

username : 유저명

remote directory : 베이스 디렉토리 경로

 

3. 빌드 후 조치 설정

다시 아이템으로 돌아와서 빌드 후 조치 화면쪽에서

빌드 후 조치 추가 > Send build artifacts over SSH 

name은 방금 위에서 설정한 SSH server의 name

Transfers 쪽에다가 정보 작성

4. 폴더 만들고 쉘 스크립트도 만들러 가자 (숫자가 안붙어있는 친구는 미리 한번 해본거)

스크립트 쪽도 만들자

스크립트 파일의 내용은 다음과 같다

#!/bin/bash

echo "Start Spring Boot Application!"
CURRENT_PID=$(ps -ef | grep java | grep oopstest | awk '{print $2}')
echo "$CURRENT_PID"

 if [ -z $CURRENT_PID ]; then
echo ">현재 구동중인 어플리케이션이 없으므로 종료하지 않습니다."

else
echo "> kill -9 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 10
fi
 echo ">어플리케이션 배포 진행!"
nohup java -jar /home/ec2-user/oopstest2/oopstest-0.0.1-SNAPSHOT.jar &

5. 빌드 후 배포 확인

 

지금은 정상적으로 돌고있는데 혼자 해볼때 나는 폴더 소유자 관련해서 한번 permission denied가 발생했다

폴더의 소유자가 위에서 SSH server에서 설정해줬던 Username과 다르면 발생한다고 한다

 

 

 

 

실무에서는 고려할게 엄청 많겠지만 일단 간단간단맨으로 해봤다

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.