initial commit
This commit is contained in:
96
deploy-aws2.sh
Normal file
96
deploy-aws2.sh
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
|
||||
# AWS 서버 파일 업로드 스크립트
|
||||
# 사용법: ./deploy-aws.sh <aws-server> <aws-user> <aws-key> <jar-file> <deploy-path>
|
||||
|
||||
set -e
|
||||
|
||||
AWS_SERVER=$1
|
||||
AWS_USER=$2
|
||||
AWS_KEY_PATH=$3
|
||||
JAR_FILE=$4
|
||||
DEPLOY_PATH=$5
|
||||
|
||||
if [ -z "$AWS_SERVER" ] || [ -z "$AWS_USER" ] || [ -z "$AWS_KEY_PATH" ] || [ -z "$JAR_FILE" ] || [ -z "$DEPLOY_PATH" ]; then
|
||||
echo "사용법: $0 <aws-server> <aws-user> <aws-key> <jar-file> <deploy-path>"
|
||||
echo "예시: $0 47.129.51.216 root /path/to/key.pem target/core.jar /home/run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== AWS 서버 파일 업로드 시작 ==="
|
||||
echo "AWS Server: $AWS_SERVER"
|
||||
echo "AWS User: $AWS_USER"
|
||||
echo "JAR File: $JAR_FILE"
|
||||
echo "Deploy Path: $DEPLOY_PATH"
|
||||
|
||||
# JAR 파일 존재 확인
|
||||
if [ ! -f "$JAR_FILE" ]; then
|
||||
echo "❌ JAR 파일을 찾을 수 없습니다: $JAR_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# AWS 키 파일 존재 확인
|
||||
if [ ! -f "$AWS_KEY_PATH" ]; then
|
||||
echo "❌ AWS 키 파일을 찾을 수 없습니다: $AWS_KEY_PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# AWS 서버 연결 테스트
|
||||
echo "AWS 서버 연결 테스트 중..."
|
||||
ssh -i "$AWS_KEY_PATH" -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$AWS_USER@$AWS_SERVER" "echo 'AWS 서버 연결 성공'"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ AWS 서버 연결 실패"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# AWS 서버에서 배포 디렉토리 생성 및 권한 설정 (root 권한으로)
|
||||
echo "AWS 서버에서 배포 디렉토리 생성 중... (root 권한)"
|
||||
ssh -i "$AWS_KEY_PATH" "$AWS_USER@$AWS_SERVER" "sudo su - root <<ROOT_SETUP
|
||||
# 배포 디렉토리 및 로그 디렉토리 생성
|
||||
mkdir -p $DEPLOY_PATH/logs
|
||||
chmod -R 755 $DEPLOY_PATH
|
||||
echo '배포 디렉토리 생성 완료: $DEPLOY_PATH'
|
||||
ROOT_SETUP
|
||||
"
|
||||
|
||||
# JAR 파일 이름 추출
|
||||
JAR_FILENAME=$(basename "$JAR_FILE")
|
||||
|
||||
# 임시 업로드 경로 (rocky 계정 홈 디렉토리)
|
||||
TEMP_PATH="/home/$AWS_USER/temp_${JAR_FILENAME}"
|
||||
|
||||
# JAR 파일을 AWS 서버의 임시 위치로 전송 (rocky 계정 권한으로)
|
||||
echo "JAR 파일을 AWS 서버 임시 위치로 전송 중..."
|
||||
scp -i "$AWS_KEY_PATH" "$JAR_FILE" "$AWS_USER@$AWS_SERVER:$TEMP_PATH"
|
||||
|
||||
# 임시 파일을 최종 위치로 이동 및 권한 설정 (root 권한으로)
|
||||
echo "JAR 파일을 최종 위치로 이동 중... (root 권한)"
|
||||
ssh -i "$AWS_KEY_PATH" "$AWS_USER@$AWS_SERVER" "sudo su - root <<ROOT_MOVE
|
||||
# 배포 디렉토리 확인 및 생성
|
||||
mkdir -p $DEPLOY_PATH
|
||||
chmod -R 755 $DEPLOY_PATH
|
||||
|
||||
# 임시 파일을 최종 위치로 이동
|
||||
mv $TEMP_PATH $DEPLOY_PATH/$JAR_FILENAME
|
||||
|
||||
# 파일 권한 설정
|
||||
chmod 644 $DEPLOY_PATH/$JAR_FILENAME
|
||||
chown root:root $DEPLOY_PATH/$JAR_FILENAME
|
||||
|
||||
echo 'JAR 파일 이동 및 권한 설정 완료'
|
||||
echo '업로드된 파일: $DEPLOY_PATH/$JAR_FILENAME'
|
||||
ls -lh $DEPLOY_PATH/$JAR_FILENAME
|
||||
ROOT_MOVE
|
||||
"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ AWS 서버 파일 업로드 성공!"
|
||||
echo "JAR 파일이 $DEPLOY_PATH/$JAR_FILENAME 에 업로드되었습니다."
|
||||
else
|
||||
echo "❌ AWS 서버 파일 업로드 실패!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== AWS 서버 파일 업로드 완료 ==="
|
||||
|
||||
Reference in New Issue
Block a user