Jenkins CI/CD 구축 (5)

Moon·2023년 5월 28일
0

Jenkins

목록 보기
5/5
post-thumbnail

마지막으로 배포 파일을 만들어 빌드시키기만 하면됩니다.

먼저 배포용 쉘 스크립트를 만들겠습니다.

  1. ec2 서버에서 webapps 디렉토리를 만들고, 그 안에 shell 내용을 작성합니다.
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 &
  1. 젠킨스 프로젝트의 [구성] -> [Build Steps]에서 아래의 이미지처럼 작성합니다.

  2. [빌드 후 조치]에서 아래의 이미지처럼 작성합니다.

  3. 위의 이미지처럼 작성이 끝나면, [고급]을 눌러 아래의 이미지처럼 Exec in pty를 체크합니다.

  4. 젠킨스에서 Publish over SSH를 설정하기 위해 [Jenkins 관리] -> [시스템 설정] -> [Publish over SSH]에서 이미지처럼 작성합니다.

  • key - aws 인스턴스 접속할 때 쓰던 pem키의 내용
  • hostname - aws 인스턴스의 퍼블릭 ip
  • username - aws 유저 이름
  • Remote Directory - 생성한 배포파일이 업로드 될 경로
  1. 이제 테스트해서 성공까지 뜨면 배포 설정이 끝납니다.

  2. ec2 서버에서 ps -ef | grep jar 명령어를 입력하여 jar 파일이 정상적으로 실행되었는지 확인하시면 됩니다.

이상으로 젠킨스로 CI/CD 구축을 해봤습니다.

profile
꾸준함으로 성장하는 개발자 지망생

0개의 댓글