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과 다르면 발생한다고 한다
실무에서는 고려할게 엄청 많겠지만 일단 간단간단맨으로 해봤다