-
배포 스크립트 작성하기프로젝트/미디어 스트리밍 서버 프로젝트 2022. 9. 29. 00:00728x90
개요
매번 EC2 환경에서 반복적인 작업을 수행하기 때문에 이를 조금이나마 자동화해보려고 합니다.
만약 CD환경을 구축한다면 더 편리하게 사용할 수 있을 것 같습니다.
스크립트란?
Shell Script(쉘 스크립트)란 Shell(쉘)에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch) 파일입니다.
즉, 운영체제의 Shell을 이용하여 한 줄씩 순차적으로 읽으면서 명령어들을 실행시켜주는 인터프리터 방식의 프로그램이다.
Shell Script를 활용하여 묶어진 명령어 조합을 수행하거나 반복적인 명령어를 단일 명령으로 쉽게 사용할 수 있다.
반복되는 작업
//1번 연결된 git 저장소로 부터 git pull 받아오기 git pull username입력 password입력 //2번 build/libs/video-0.0.1-SNAPSHOT.jar 삭제 rm build/libs/video-0.0.1-SNAPSHOT.jar rm build/libs/nohub.out //3번 현재 돌고 있는 java 프로세스 중지 killall java //4번 ./gradlew build 수행 ./gradlew build //5번 만들어진 .jar 파일 실행 nohup java -jar build/libs/video-0.0.1-SNAPSHOT.jar &
적용해보기
매번 git username과 password를 입력하는 것은 번거롭습니다.
git config credential.helper store
위의 명령어를 사용하면 username과 password를 한 번만 입력하게 되면 설정이 저장됩니다.
이제 shell script를 작성합니다. (스크립트의 경로는 gradlew이 있는 경로입니다.)
echo "git pull" git pull echo " build/libs/video-0.0.1-SNAPSHOT.jar 삭제" rm build/libs/video-0.0.1-SNAPSHOT.jar rm nohup.out echo " 현재 돌고 있는 java 프로세스 중지" killall java echo " ./gradlew build 수행" ./gradlew build echo " 만들어진 .jar 파일 background로 실행" nohup java -jar build/libs/video-0.0.1-SNAPSHOT.jar &
./deploy.sh
위의 명령어를 통해 shell script를 실행합니다.
그러면 다음과 같은 메시지가 나옵니다.
-bash: ./deploy.sh: Permission denied
chmod +x ./deploy.sh // 권한 부여
shell script를 실행할 수 있도록 권한을 부여합니다.
./deploy.sh
이제 한 줄의 명령어와 함께 배포가 편리해집니다.
출처
https://stackoverflow.com/questions/11506124/how-to-enter-command-with-password-for-git-pull
'프로젝트 > 미디어 스트리밍 서버 프로젝트' 카테고리의 다른 글
@Embedded vs @OneToOne (0) 2022.10.03 동시성 문제를 해결하자 (3) 2022.09.30 kotlinDSL + RestDocs 적용하기 (0) 2022.09.28 MultipartFile 컨트롤러 단위 테스트(MockMvc) (0) 2022.08.24 Kotest와 MockK를 활용하여 컨트롤러 단위테스트하기 (0) 2022.08.23