|
1 | 1 | #!/bin/bash |
2 | | -BUILD_PATH=$(ls /home/ubuntu/app/server-0.0.1-SNAPSHOT.jar) |
3 | | -JAR_NAME=$(basename $BUILD_PATH) |
4 | | -echo "> build ํ์ผ๋ช
: $JAR_NAME" |
5 | | - |
6 | | -echo "> build ํ์ผ ๋ณต์ฌ" |
7 | | -DEPLOY_PATH=/home/ubuntu/app/nonstop/jar/ |
8 | | -cp $BUILD_PATH $DEPLOY_PATH |
9 | | - |
10 | | -echo "> ํ์ฌ ๊ตฌ๋์ค์ธ Set ํ์ธ" |
11 | | -CURRENT_PROFILE=$(curl -s http://localhost/profile) |
12 | | -echo "> $CURRENT_PROFILE" |
13 | | - |
14 | | -# ์ฌ๊ณ ์๋ set ์ฐพ๊ธฐ: set1์ด ์ฌ์ฉ์ค์ด๋ฉด set2๊ฐ ์ฌ๊ณ ์๊ณ , ๋ฐ๋๋ฉด set1์ด ์ฌ๊ณ ์์ |
15 | | -if [ $CURRENT_PROFILE == set1 ] |
16 | | -then |
17 | | - IDLE_PROFILE=set2 |
18 | | - IDLE_PORT=8082 |
19 | | -elif [ $CURRENT_PROFILE == set2 ] |
20 | | -then |
21 | | - IDLE_PROFILE=set1 |
22 | | - IDLE_PORT=8081 |
| 2 | +set -e |
| 3 | + |
| 4 | +APP_DIR=/home/ec2-user/app |
| 5 | +JAR_PATH=$(ls $APP_DIR/*.jar | grep -v plain | head -1) |
| 6 | +echo "> JAR ํ์ผ: $JAR_PATH" |
| 7 | + |
| 8 | +echo "> ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ" |
| 9 | +CURRENT_PID=$(pgrep -f '\.jar' || true) |
| 10 | +if [ -n "$CURRENT_PID" ]; then |
| 11 | + echo "> ์ข
๋ฃ: $CURRENT_PID" |
| 12 | + kill -15 $CURRENT_PID |
| 13 | + sleep 5 |
23 | 14 | else |
24 | | - echo "> ์ผ์นํ๋ Profile์ด ์์ต๋๋ค. Profile: $CURRENT_PROFILE" |
25 | | - echo "> set1์ ํ ๋นํฉ๋๋ค. IDLE_PROFILE: set1" |
26 | | - IDLE_PROFILE=set1 |
27 | | - IDLE_PORT=8081 |
| 15 | + echo "> ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
์์" |
28 | 16 | fi |
29 | 17 |
|
30 | | -echo "> application.jar ๊ต์ฒด" |
31 | | -IDLE_APPLICATION=$IDLE_PROFILE-Runnect-Spring-Boot-Server.jar |
32 | | -IDLE_APPLICATION_PATH=$DEPLOY_PATH$IDLE_APPLICATION |
33 | | - |
34 | | -ln -Tfs $DEPLOY_PATH$JAR_NAME $IDLE_APPLICATION_PATH |
35 | | - |
36 | | -echo "> $IDLE_PROFILE ์์ ๊ตฌ๋์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
pid ํ์ธ" |
37 | | -IDLE_PID=$(pgrep -f $IDLE_APPLICATION) |
38 | | - |
39 | | -if [ -z $IDLE_PID ] |
40 | | -then |
41 | | - echo "> ํ์ฌ ๊ตฌ๋์ค์ธ ์ ํ๋ฆฌ์ผ์ด์
์ด ์์ผ๋ฏ๋ก ์ข
๋ฃํ์ง ์์ต๋๋ค." |
42 | | -else |
43 | | - echo "> kill -15 $IDLE_PID" |
44 | | - kill -15 $IDLE_PID |
45 | | - sleep 20 |
46 | | -fi |
| 18 | +echo "> ์ ํ๋ฆฌ์ผ์ด์
์์" |
| 19 | +nohup java -jar \ |
| 20 | + -Duser.timezone=Asia/Seoul \ |
| 21 | + $JAR_PATH \ |
| 22 | + >> /home/ec2-user/app/nohup.out 2>&1 & |
47 | 23 |
|
48 | | -echo "> $IDLE_PROFILE ๋ฐฐํฌ" |
49 | | -nohup java -jar -Duser.timezone=Asia/Seoul -Dspring.profiles.active=$IDLE_PROFILE $IDLE_APPLICATION_PATH >> /home/ubuntu/app/nohup.out 2>&1 & |
| 24 | +echo "> 15์ด ํ ํฌ์ค์ฒดํฌ ์์" |
| 25 | +sleep 15 |
50 | 26 |
|
51 | | -echo "> $IDLE_PROFILE 10์ด ํ Health check ์์" |
52 | | -echo "> curl -s http://localhost:$IDLE_PORT/health " |
53 | | -sleep 10 |
54 | | - |
55 | | -for retry_count in {1..10} |
56 | | -do |
57 | | - response=$(curl -s http://localhost:$IDLE_PORT/actuator/health) |
58 | | - up_count=$(echo $response | grep 'UP' | wc -l) |
59 | | - |
60 | | - if [ $up_count -ge 1 ] |
61 | | - then # $up_count >= 1 ("UP" ๋ฌธ์์ด์ด ์๋์ง ๊ฒ์ฆ) |
62 | | - echo "> Health check ์ฑ๊ณต" |
63 | | - break |
64 | | - else |
65 | | - echo "> Health check์ ์๋ต์ ์ ์ ์๊ฑฐ๋ ํน์ status๊ฐ UP์ด ์๋๋๋ค." |
66 | | - echo "> Health check: ${response}" |
| 27 | +for i in {1..10}; do |
| 28 | + RESPONSE=$(curl -s http://localhost:8080/actuator/health || true) |
| 29 | + if echo "$RESPONSE" | grep -q '"status":"UP"'; then |
| 30 | + echo "> ํฌ์ค์ฒดํฌ ์ฑ๊ณต" |
| 31 | + break |
67 | 32 | fi |
68 | | - |
69 | | - if [ $retry_count -eq 10 ] |
70 | | - then |
71 | | - echo "> Health check ์คํจ. " |
72 | | - echo "> Nginx์ ์ฐ๊ฒฐํ์ง ์๊ณ ๋ฐฐํฌ๋ฅผ ์ข
๋ฃํฉ๋๋ค." |
| 33 | + echo "> ํฌ์ค์ฒดํฌ ์คํจ($i/10): $RESPONSE" |
| 34 | + if [ $i -eq 10 ]; then |
| 35 | + echo "> ๋ฐฐํฌ ์คํจ" |
73 | 36 | exit 1 |
74 | 37 | fi |
75 | | - |
76 | | - echo "> Health check ์ฐ๊ฒฐ ์คํจ. ์ฌ์๋..." |
77 | 38 | sleep 10 |
78 | 39 | done |
79 | 40 |
|
80 | | -echo "> Nginx ์ํ ํ์ธ" |
81 | | -if ! sudo systemctl is-active --quiet nginx; then |
82 | | - echo "> Nginx๊ฐ ์ค์ง๋์ด ์์ต๋๋ค. ์ฌ์์ํฉ๋๋ค." |
83 | | - sudo systemctl start nginx |
84 | | - sleep 2 |
85 | | - if sudo systemctl is-active --quiet nginx; then |
86 | | - echo "> Nginx ์ฌ์์ ์ฑ๊ณต" |
87 | | - else |
88 | | - echo "> Nginx ์ฌ์์ ์คํจ." |
89 | | - fi |
90 | | -else |
91 | | - echo "> Nginx ์ ์ ๊ตฌ๋ ์ค" |
92 | | -fi |
| 41 | +echo "> Nginx ์์" |
| 42 | +sudo systemctl start nginx || true |
| 43 | +sudo systemctl enable nginx || true |
93 | 44 |
|
94 | | -echo "> ์ค์์นญ" |
95 | | -sleep 10 |
96 | | -/home/ubuntu/app/nonstop/switch.sh |
| 45 | +echo "> ๋ฐฐํฌ ์๋ฃ" |
0 commit comments