Skip to content

Commit

Permalink
Update deploy-blue-green.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
juno-junho authored Apr 18, 2024
1 parent effb710 commit 54706fa
Showing 1 changed file with 37 additions and 19 deletions.
56 changes: 37 additions & 19 deletions scripts/deploy-blue-green.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
source /home/ubuntu/action/scripts/properties.sh # jasypt 암호키 설정

PROJECT_NAME=space-club-backend
REPOSITORY=/home/ubuntu
PACKAGE=$REPOSITORY/action/build/libs/
JAR_NAME=$(ls -tr $PACKAGE | grep 'SNAPSHOT.jar' | tail -n 1)
JAR_PATH=$PACKAGE$JAR_NAME
REPOSITORY=/home/ubuntu
JAR_NAME=$(ls -tr $PACKAGE | grep 'SNAPSHOT.jar' | tail -n 1) # snapshot jar 파일
JAR_PATH=$PACKAGE$JAR_NAME # action/build/libs/*SNAPSHOT.jar
echo "> build 파일명: $JAR_NAME"

# 금칙어 리스트 복사 (최신화)
PROFANITY_LIST_LOCATION_TO_STORE=$REPOSITORY/bad_word_list.txt
PROFANITY_LIST_LOCATION=$REPOSITORY/action/src/main/resources/secrets/bad_word_list.txt
echo "> 금칙어 list 복사"
cp -f $PROFANITY_LIST_LOCATION $PROFANITY_LIST_LOCATION_TO_STORE
echo "> 금칙어 list 복사" # 덮어 쓰기
cp -f $PROFANITY_LIST_LOCATION $PROFANITY_LIST_LOCATION_TO_STORE

echo "> build 파일 복사"
echo "> build 파일 복사" # 덮어 쓰기
DEPLOY_PATH=$REPOSITORY/jar/
cp -f $JAR_PATH $DEPLOY_PATH

Expand Down Expand Up @@ -44,23 +44,41 @@ echo "> application.jar 교체"
IDLE_APPLICATION=$IDLE_PROFILE-SpaceClub.jar
IDLE_APPLICATION_PATH=$DEPLOY_PATH$IDLE_APPLICATION

# jar 파일과 blue/green-SpaceClub.jar와 심볼릭 링크 생성
ln -Tfs $DEPLOY_PATH$JAR_NAME $IDLE_APPLICATION_PATH

echo "> $IDLE_PROFILE 에서 구동중인 애플리케이션 pid 확인"
IDLE_PID=$(pgrep -f $IDLE_APPLICATION)

if [ -z $IDLE_PID ]
then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -15 $IDLE_PID"
kill -15 $IDLE_PID
sleep 5
fi

echo "> $IDLE_PROFILE 배포"
sudo nohup java -jar $IDLE_APPLICATION_PATH --spring.profiles.active=develop,$IDLE_PROFILE --jasypt.encryptor.password=${encrypt} ----bad-word.path=$PROFANITY_LIST_LOCATION_TO_STORE > /home/ubuntu/log/nohup_log.out 2> /home/ubuntu/log/nohup_error.out &

echo "> 배포 후 기존 실행하던 애플리케이션을 종료합니다."
echo "> $PROFILE_BLUE, $PROFILE_GREEN 중에서 에서 구동중인 애플리케이션 pid 확인합니다."
if [ $IDLE_PROFILE = blue ] # idle profile이 blue이면 green을 종료
then
APPLICATION_TO_KILL = green-SpaceClub.jar
IDLE_PID=$(pgrep -f $APPLICATION_TO_KILL)
if [ -z $IDLE_PID ]
then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> blue가 실행되었고 green을 종료합니다. kill -15 $IDLE_PID"
kill -15 $IDLE_PID
sleep 5
fi
elif [ $IDLE_PROFILE == green ] # idle profile이 green이면 blue를 종료
then
APPLICATION_TO_KILL = blue-SpaceClub.jar
IDLE_PID=$(pgrep -f $APPLICATION_TO_KILL)
if [ -z $IDLE_PID ]
then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> green이 실행되었고 blue를 종료합니다. kill -15 $IDLE_PID"
kill -15 $IDLE_PID
sleep 5
fi
fi

## 헬스 체크
echo "> $IDLE_PROFILE 10초 후 Health check 시작"
echo "> curl -s http://localhost:$IDLE_PORT/actuator/health "
sleep 10
Expand Down Expand Up @@ -90,7 +108,7 @@ do
sleep 10
done

echo "> 스위칭"
echo "> nginx의 port를 변경합니다"
sudo chmod +x /home/ubuntu/action/scripts/switch.sh
sleep 10
$REPOSITORY/action/scripts/switch.sh

0 comments on commit 54706fa

Please sign in to comment.