1. 새 파일 생성
vi var.sh
i 키 클릭
#!/bin/bash
GITHUB_ID="codingspecialist"
PROJECT_NAME="aws-v2"
PROJECT_VERSION="0.0.1"
PROJECT_PID=""
JAR_PATH=""
export GITHUB_ID
export PROJECT_NAME
export PROJECT_VERSION
export PROJECT_PID
export JAR_PATH
esc 키
:wq 엔터
2. 환경 변수 파일 적용
source ./var.sh
3. 터미널 접속 종료 후 재접속
4. 새파일 생성
vi deploy.sh
i 키 입력
#!/bin/bash
echo $GITHUB_ID
esc 키 입력
:wq
5 파일에 권한 추가
chmod u+x deploy.sh
6. deploy.sh 파일 실행
./deploy.sh 엔터
그러면 GITHUB_ID 값이 표시되지 않는 것을 확인할 수 있다.
7. deploy.sh 파일 수정
vi ./deploy.sh
#!/bin/bash
source ./var.sh
echo $GITHUB_ID
esc 키
:wq
이 스크립트(deploy.sh)파일 내부에서만 var.sh 안의 환경변수를 작동시키고 싶을 때 위와 같이 작성하면 됩니다 (두번째 라인 source~)
8. 환경 변수 적용 범위
.bashrc 어디에서나 사용 가능
터미널 만들고 source 적용 : 터미널이 종료되기 직전까지만 사용 가능
쉘 스크립트로 변수를 만들고 다른 파일에서 실행하기 위해서는
.bashrc에 등록되어 있거나 [광역 설정]
source 로 터미널에 적용되어 있거나 [터미널 종료 시 사용 불가능]
파일에서 사용하려면 source 코드를 이용해서 사용하면 됩니다.
9. deploy.sh 파일에 cron 설정
#!/bin/bash
# 1. env variable
source ./var.sh
echo "1. evn variable setting complete"
# 2. cron delete
touch crontab_delete
crontab crontab_delete
rm crontab_delete
echo "2. cron delete complete"
crontab_delete 파일을 생성하고 crontab 명령어로 생성한 crontab_delete 파일을 호출하면 기존 cron이 종료된다.
크론 종료하는 이유
10. 서버 PID를 찾는 법
pgrep -f bash
aws-v2-0.0.1.jar 파일로 빌드되고 실행이 될 예정.
그러므로 서버의 PID를 찾으려면
pgrep -f aws-v2-0.0.1.jar
명령어로 찾기.
aws-v2 = settings.gradle 파일의 rootProject.name 값.
0.0.1 = build.gradle 파일의 version 에 있는 값.
build.gradle 파일 설정.
// plain 파일을 생성하지 않는 설정
jar {
enabled = false
}
11. var.sh 파일 수정
vi var.sh
i 키 입력
PROJECT_PID를 환경변수에 저장하는 부분 추가
#!/bin/bash
GITHUB_ID="codingspecialist"
PROJECT_NAME="aws-v2"
PROJECT_VERSION="0.0.1"
# pgrep -f aws-v2-0.0.1.jar 의 실행결과
PROJECT_PID="$(pgrep -f ${PROJECT_NAME}-${PROJECT_VERSION}.jar)"
# /home/ubuntu/aws-v2/build/libs/aws-v2-0.0.1.jar
JAR_PATH="${HOME}/${PROJECT_NAME}/build/libs/${PROJECT_NAME}-${PROJECT_VERSION}.jar"
export GITHUB_ID
export PROJECT_NAME
export PROJECT_VERSION
export PROJECT_PID
export JAR_PATH
esc 키 입력
:wq
출처: 이지업클래스 | 개발자를 위한 AWS DevOps 입문 [CI/CD 무중단 배포]
https://easyupclass.e-itwill.com/course/course_view.jsp?id=74&rtype=0&ch=course
':SERVER > AWS' 카테고리의 다른 글
[easyupclass] EC2 서버에 스크립트로 배포하기(3) (0) | 2022.09.06 |
---|---|
[easyupclass] EC2 서버에 스크립트로 배포하기(2) (0) | 2022.09.06 |
[easyupclass] EC2 서버 생성 및 고정 IP 설정, 환경변수 저장 (0) | 2022.09.05 |
[easyupclass] v1 버전, v2 버전 (0) | 2022.09.05 |
[easyupclass] AWS EC2 스프링 서버 재배포 (0) | 2022.08.21 |