마지막으로 배포 파일을 만들어 빌드시키기만 하면됩니다.
먼저 배포용 쉘 스크립트를 만들겠습니다.
sudo mkdir /home/ec2-user/webapps
sudo vi /home/ec2-user/webapps/start.sh
#!/bin/bash
REPOSITORY={jar 파일이 생성된 경로}
echo "REPOSITORY = $REPOSITORY"
cd $REPOSITORY
PROJECT_NAME={프로젝트 명}
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 -tr $REPOSITORY/*SNAPSHOT.jar | tail -n 1)
echo "JAR_NAME = $JAR_NAME"
java -jar \
-Dspring.config.location=classpath:/application.yml,/home/ec2-user/webapps/application.yml \
$JAR_NAME &
젠킨스 프로젝트의 [구성] -> [Build Steps]에서 아래의 이미지처럼 작성합니다.
[빌드 후 조치]에서 아래의 이미지처럼 작성합니다.
위의 이미지처럼 작성이 끝나면, [고급]을 눌러 아래의 이미지처럼 Exec in pty
를 체크합니다.
젠킨스에서 Publish over SSH를 설정하기 위해 [Jenkins 관리] -> [시스템 설정] -> [Publish over SSH]에서 이미지처럼 작성합니다.
이제 테스트해서 성공까지 뜨면 배포 설정이 끝납니다.
ec2 서버에서 ps -ef | grep jar
명령어를 입력하여 jar 파일이 정상적으로 실행되었는지 확인하시면 됩니다.
이상으로 젠킨스로 CI/CD 구축을 해봤습니다.