Jenkins

AWS + 젠킨스 + 스프링 부트 ci/cd 구현 6

Choiji 2021. 5. 17. 23:33

[Jenkins] - AWS + 젠킨스 + 스프링 부트 ci/cd 구현 5

 

AWS + 젠킨스 + 스프링 부트 ci/cd 구현 5

[Jenkins] - AWS + 젠킨스 + 스프링 부트 ci/cd 구현 4 AWS + 젠킨스 + 스프링 부트 ci/cd 구현 4 [Jenkins] - AWS + 젠킨스 + 스프링 부트 ci/cd 구현 3 AWS + 젠킨스 + 스프링 부트 ci/cd 구현 3 [Jenkins] - AW..

choiiii-dev.tistory.com

 

이제 배포 파일을 만들어서 빌드만 시키면 됩니다.

 

1. Build


위의 사진처럼 작성해 주세요 

clean build는

./gradlew clean build와 같습니다.

 

2. 빌드 후 조치


먼저 설정하기 전에 배포용 쉘을 작성하겠습니다.

webapps 디렉토리를 만들고 그 안에 쉘을 만들고 내용을 작성하겠습니다.

sudo mkdir /home/ec2-user/webapps
sudo vi /home/ec2-user/webapps/start.sh
#!/bin/bash

REPOSITORY={jar파일이 생성된 경로}
#ex) REPOSITORY=/home/ec2-user/jenkins-home
echo "REPOSITORY = $REPOSITORY"
cd $REPOSITORY

PROJECT_NAME={프로젝트 명}
#ex) PROJECT_NAME=react-back
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 &

다 되셨으면 다시 젠킨스로와서
프로젝트 -> 구성 -> 빌드 후 조치에 아래 사진처럼 작성합니다.

작성이 끝나면  고급을 눌러 아래 사진처럼 Exec in pty를 체크해주세요

 

다음으로 Publish over SSH도 설정을 해야 합니다.

Jenkins관리 -> 시스템 구성 -> Publish over SSH

key : aws 인스턴스 접속할 때 쓰던 pem키의 내용을 적으시면 됩니다.
hostname : aws인스턴스 공인 아이피
username : aws 유저 네임
Remote Directory : 생성한 배포파일이 업로드 될 경로

 

테스트해서 성공까지 뜨면 배포까지 설정이 끝났습니다.

 

이제 대시보드에서 build now를 누르고

빌드가 성공했으면

콘솔에 ps -ef | grep jar를 입력하여 자르 파일이 정상적으로 실행됐는지 확인하시면 됩니다.

$ ps -ef | grep jar
jenkins   3177     1  0 May13 ?        00:09:44 /etc/alternatives/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
ec2-user  4377     1  0 May14 ?        00:03:45 java -jar /home/ec2-user/jenkins-home/react-back-0.0.1-SNAPSHOT.jar
ec2-user 16462 15680  0 14:25 pts/1    00:00:00 grep --color=auto jar