[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. 스크립트로 잘 배포 되었는지 브라우저 테스트
댓글
댓글 쓰기