[AWS] AWS 가상컴퓨터 생성~7.EC2 서버에 배포용 스크립트 쉘 작성~(아마존 클라우드 서버)_cloud computer virtual_-신촌 더조은 학원 AWS-+How to sign up for AWS and use EC2 service+

 ~7.EC2 서버에 배포용 스크립트 쉘 작성~


1. 서버에 구동시킬 배포용 쉘스크립트 작성

deployscript.sh 

#!/bin/bash


# 변수 설정

WAR_FILE=/home/ec2-user/app.war

TOMCAT_WEBAPPS_DIR=/usr/local/lib/tomcat/webapps

TOMCAT_BIN_DIR=/usr/local/lib/tomcat/bin


# 0. 홈 디렉토리에 war 파일이 있는지 확인

if [ ! -f "$WAR_FILE" ]; then

    echo "WAR 파일이 홈 디렉토리에 존재하지 않습니다: $WAR_FILE"

    exit 1

fi


# 1. 기존 Tomcat 배포 파일 제거

sudo rm -rf "$TOMCAT_WEBAPPS_DIR/*"

if [ $? -ne 0 ]; then

    echo "기존 Tomcat 배포 파일 제거에 실패했습니다."

    exit 1

fi

echo "기존 Tomcat 배포 파일 제거 완료"


# 2. WAR 파일을 Tomcat 경로로 이동하고 이름 변경

sudo mv "$WAR_FILE" "$TOMCAT_WEBAPPS_DIR/ROOT.war"

if [ $? -ne 0 ]; then

    echo "WAR 파일 이동 및 이름 변경에 실패했습니다."

    exit 1

fi

echo "WAR 파일을 $TOMCAT_WEBAPPS_DIR/ROOT.war로 이동 및 이름 변경 완료"


# 3. Tomcat 종료

sudo "$TOMCAT_BIN_DIR/shutdown.sh"

if [ $? -ne 0 ]; then

    echo "Tomcat 종료에 실패했습니다."

    exit 1

fi

echo "Tomcat 종료 완료"


# 4. Tomcat 시작

sudo "$TOMCAT_BIN_DIR/startup.sh"

if [ $? -ne 0 ]; then

    echo "Tomcat 시작에 실패했습니다."

    exit 1

fi

echo "Tomcat 시작 완료"


# 스크립트 종료 메시지

echo "배포 스크립트가 성공적으로 완료되었습니다."



2. 해당스크립트의 기능 요약

0) 홈디렉토리에 war있는지 확인 

1) war파일 홈디렉토리에서 톰캣 경로로 이동 

- 이동 sudo mv app.war /usr/local/lib/tomcat/webapps/

- 이름변경 ROOT.war

2) 기존 톰캣 배포파일 제거 

sudo rm -rf /usr/local/lib/tomcat/webapps/*

3) 톰캣 종료 

sudo /usr/local/lib/tomcat/bin/shutdown.sh

4) 톰캣 시작 

sudo /usr/local/lib/tomcat/bin/startup.sh


3. server01 에서 ec2서버로 접속 하여 스크립트 테스트 

- vscode로 server01에 접속


- sever01에 deployscript.sh 작성 



- 기존 배포 파일 제거 

 ssh -i .ssh/AWS_TEST_KEY.pem  ec2-user@43.203.251.50

sudo -i

 ls -l /usr/local/lib/tomcat/webapps/

 sudo rm -rf /usr/local/lib/tomcat/webapps/*

 exit

 exit

 cd springex-main/


- 서버1에 있는 war파일 ec2서버에 복사  

 user1@myserver01:~/springex-main$ scp -i ~/.ssh/AWS_TEST_KEY.pem ./build/libs/springex-1.0-SNAPSHOT.war ec2-user@43.203.251.50:~/app.war

springex-1.0-SNAPSHOT.war                                                    100%   15MB   8.1MB/s   00:01    


- 서버1에 만든 deployscript.sh 파일을 ec2서버로 복사

scp -i ~/.ssh/AWS_TEST_KEY.pem deployscript.sh ec2-user@43.203.251.50:~


- 확인

ssh -i ~/.ssh/AWS_TEST_KEY.pem ec2-user@43.203.251.50 ls -al



- ec2서버에서 deployscript.sh 스크립트(배포) 실행 테스트 

ssh -i ~/.ssh/AWS_TEST_KEY.pem ec2-user@43.203.251.50 sudo bash deployscript.sh app.war


- 확인

ssh -i ~/.ssh/AWS_TEST_KEY.pem ec2-user@43.203.251.50 ls -al


- 확인

 ssh -i ~/.ssh/AWS_TEST_KEY.pem ec2-user@43.203.251.50 sudo ls -al /usr/local/lib/tomcat/webapps



4. 스크립트로 잘 배포 되었는지 브라우저 테스트 




댓글

T O P