'재시작'에 해당되는 글 3건

 
  1. 2021.02.26 EC2 재시작(리부팅)시 NGINX 자동 시작 설정 2
  2. 2020.12.04 Publish over SSH 설정 - 16/17 AWS EC2 JENKINS 스프링부트 자동배포 6
  3. 2020.12.04 스프링부트 재시작 스크립트 - 15/17 AWS EC2 JENKINS 스프링부트 자동배포 8
2021. 2. 26. 14:49 DEV ENVIRONMENT
EC2 재시작(리부팅)시 NGINX 자동 시작 설정

AWS EC2에 리액트를 서비스하기위해 NGINX를 설치했는데,

당연히! 리부팅되면 자동으로 뜰줄 알았는데 안뜨네요.

컴퓨터 재시작(리부팅)할때 NGINX가 자동으로 시작되게 설정하려면 System Control에서 설정해줘야 합니다.

 

# 시스템 컨트롤에서 nginx 자동시작 설정
systemctl enable nginx.service

# 시스템 컨트롤에서 nginx 자동시작 해제
systemctl enable nginx.service

# nginx 상태 보기
systemctl status nginx.service

# nginx 재시작
systemctl restart nginx.service

 

 

1. nginx 상태 확인

Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)

중간에 disabled가 나타나면 ec2가 재시작해도 nginx는 시작되지 않습니다.

sudo systemctl status nginx.service

 

 

2. nginx 자동시작 설정

sudo systemctl enable nginx.service

 

 

3. nginx 상태 확인

sudo systemctl status nginx.service

 

 

 

Publish over SSH 설정 - 16/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

젠킨스의 Publish Over SSH를 이용하면 다른 서버에 빌드한 파일을 전송할 수 있습니다.

배포와 서버를 한 컴퓨터에서 사용할거라서 로컬에 복사합니다.

 

Jenkins Workspace > Springboot Home Directory

 

 

1. 젠킨스 > 젠킨스 관리 > 시스템 설정

 

 

2. Publish over SSH > 설정값 입력 > Test Configuration > Success > 저장

Key			ec2생성할때 다운로드받은 .pem파일 내용 (편집기로 오픈 > 복사 > 붙여넣기)
Name			LOCALHOST
Hostname		127.0.0.1
Username		ec2-user
Remote Directory	./
접속 테스트

 

 

3. 젠킨스 > 프로젝트 > 구성

 

 

 

4. 빌드 후 조치 > 빌드 후 조치 추가 > Send build artifacts over SSH

 

 

5. SSH Server에 값 입력

/home/ec2-user/webapps/start.sh는 이전글에서 생성한 빌드 스크립트 입니다.

Name			LOCALHOST

Source files			target/*.jar
Remove prefix		target
Remote directory		webapps
Exec command		nohup sh /home/ec2-user/webapps/start.sh &
				sleep 1

 

 

6. 고급 > Exec in pty 체크

 

 

7. 프로젝트 > Build Now

 

 

 

8. 빌드 콘솔에서 SSH 전송 확인

 

 

9. EC2 콘솔 > 파일복사확인

ls -l /home/ec2-user/webapps

 

 

10. 스프링부트 프로젝트 서버 시작 확인

ps -ef | grep java

 

 

11. 브라우저로 접속 확인

 

스프링부트 재시작 스크립트 - 15/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

이미 실행중인 서버가 있으면 중지하고,

서버를 시작하는 스크립트를 만들겠습니다.

 

직접 실행할 수도 있고, 젠킨스 빌드 후에 서버를 재시작하기 위한 스크립트 입니다.

 

 

1. webapps 디렉토리 생성, 스크립트 파일 생성

mkdir /home/ec2-user/webapps
cd /home/ec2-user/webapps

vi /home/ec2-user/webapps/start.sh

 

 

2. 스크립트 복사 > 붙여넣기

#!/bin/bash

REPOSITORY=/home/ec2-user/webapps
echo "REPOSITORY = $REPOSITORY"
cd $REPOSITORY

PROJECT_NAME=springboot
echo "PROJECT_NAME = $PROJECT_NAME"

PROJECT_PID=$(pgrep -f $PROJECT_NAME)
echo "PROJECT_PID = $PROJECT_PID"

if [ -z $PROJECT_PID ]; then
    echo "no running project"
else
    kill -9 $PROJECT_PID
    sleep 3
fi

JAR_NAME=$(ls $REPOSITORY/ | grep $PROJECT_NAME | tail -n 1)
echo "JAR_NAME = $JAR_NAME"

java -jar $REPOSITORY/$JAR_NAME &

 

 

3. 스크립트 파일에 실행권한 부여 > 스크립트 실행

chmod 770 /home/ec2-user/webapps/start.sh

/home/ec2-user/webapps/start.sh

 

 

 

4. 실행된 스프링부트 프로젝트 확인

 

최근에 올라온 글

최근에 달린 댓글