ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jenkins 활용해서 Spring boot 서버 배포하기 - 2
    기타 2021. 12. 13. 03:24

     

    지난 1편에서 EC2에서 DockerJenkins를 띄운 뒤, Jenkins Dashboard까지 띄우는 작업을 했다.

     

    이전 포스팅: https://zin-oh.tistory.com/52

     

    Jenkins 활용해서 Spring boot 서버 배포하기 - 1

    하반기 취준이 끝났다.. 결과는 비록 좋진 않았지만 이번학기도 능력치를 많이 끌어 올렸다고 생각한다. SW마에스트로(소마) 과정 중 혼자 배포 자동화를 했던것, 졸업 프로젝트를 완성한 뒤 배

    zin-oh.tistory.com

     

     

    이번 포스팅에는 Jenkinsgit hook trigger를 이용한 서버 배포 자동화까지 해보도록 하겠다.

     

     

    1. Jenkins에서 새로운 item 만들기

     

    왼쪽 Dashboard의 새로운 item을 클릭

     

    새로운 item을 클릭한다.

     

    item 만들기

    본인의 프로젝트 명이나 jenkins_test 등 아무렇게 이름을 지정한 뒤 Freestyle project를 설정한다.

     

    그 뒤 OK를 눌러 다음 창으로 간다.

     

    1) General 설정

     

    위 탭의 General 부분 설정은 다음과 같이 하면 된다.

    item 설정 화면

     

    설정 화면에서 우리는 Github을 이용해 프로젝트를 관리할것이고, 후에 hook trigger을 이용해 Jenkins가 자동으로

    빌드 및 배포를 하게 할것이므로 Github project를 체크해준다.

     

    오래된 빌드 삭제는 보관할 최대 갯수만 조정한 뒤 넘어가자.

     

    2) 소스 코드 관리

     

    다음으로 소스 코드 관리부분을 보겠다.

     

    소스 코드 관리

    위 빨간 박스 안의 내용들을 채워 넣는다.

     

    git Repository URL 에서는 빌드할 프로젝트의 git 주소를 입력한다.

     

    Credentials에서 Add 버튼을 누른다. 

     

    github ID, password 입력

     

    그 뒤 아래의 Kind의 Username password를 설정한다.

     

    자신의 github usernamepassword를 적는다. (혹시 안될 시 다른방법인 SSH 등의 방법을 이용하면 될듯 하다.)

     

     

    3) 빌드 유발 및 빌드

     

    빌드 유발 및 빌드

    Jenkins 에서 프로젝트를 빌드 유발 시키기 위해서 우리는 Github hook trigger을 이용할 것이다.

     

    Github hook trigger을 유발시키는 브랜치는 아까 우리가 지정했던 master 브랜치이다. 

     

    여기서 변화가 일어나면 Jenkins에 해당 변경을 감지한 뒤 빌드를 한다.

     

     

    Build 부분에서는 Execute shell을 선택한 뒤 Command부분을 작성한다.

     

     

     

     

    Command 작성시 주의 점!!!!!

     

     

     

     

    현재 글쓴이의 프로젝트를 보았을 때,

     

    다음과 같이 Duder라는 레포지토리 안에 back, front 폴더로 나뉘어져 있다.

     

    그 중 back 폴더 내 gradlew가 있고 해당 파일을 실행하기 위해서는

     

    back폴더 내로 들어가 실행하여야 한다.

     

    만약 본인의 레포지토리 최상위에 gradlew가 있다면 위의 내가 했던 명령어 중

     

    cd back 명령어는 빼도 되는 것이다.

     

     

     

     

    최상위에 gradlew파일이 있을 경우 Command

     

    ./gradlew cealn build

     

     

    하위 폴더에 gradlew 파일이 있을 경우 Command

     

    # cd 명령어를 통해 해당 gradlew가 있는 디렉토리로 접근
    
    ./gradlew clean build

     

     

    해당 작업이 끝난 뒤 저장을 한다.

     

     

     

    4) Github 에서 hook trigger 설정

     

    Github의 Spring 프로젝트 레포지토리에서 Settings를 들어간 뒤 Webhooks 설정을 한다.

     

    Add webhook 버튼을 누른다.

     

    Payload URL http://{Jenkins_ip주소}/github-webhook/  를 입력한다.

     

    Content type 및 설정은 그림을 참고하여 체크 한 뒤 webhook을 설정한다.

     

     

    다시 젠킨스로 돌아와서...

     

     

    2. 빌드가 잘 되는지 확인하기

     

    Dashboard -> 본인의 Jekins project 들어가면 다음과 같이 화면이 나온다.

     

     

    Build Now를 통해 ./gradlew clean build 명령어가 잘 작동하는지 확인해보자.

     

    해당 버튼을 클릭한 뒤, Build History에 (#12) 와 같이 되어있는 버튼을 클릭 -> Console output을 클릭한다.

     

    console output 화면

     

    Command에 쳤던 명령어들이 나오고 마지막 console에 

     

    다음과 같이 나오며 빌드가 성공한 것을 알 수 있다.

     

    실제로 ubuntu (root인 곳 말고 sudo su - 하기 전)에 다음과 같은 명령어를 치면 우리가 git을 통해 들고온 프로젝트를 볼 수 있다.

     

    cd /home/jenkins/workspace

     

    현재 글쓴이는 Duder 프로젝트를 git을 통해 들고왔다.

     

     

    빌드 된 .jar 파일을 보기 위해 프로젝트 내 build/libs 폴더를 들어가보니 해당 파일이 있었다.

     

     

    3.  Github hook trigger 동작 확인하기

     

    Github 프로젝트브랜치를 적었던 곳에서 변화를 주어 해당 프로젝트가 잘 동작하는지 확인해보겠다.

     

    글쓴이는 master 브랜치를 적었고 해당 브랜치에 변경사항을 반영해보겠다.

     

    Readme 수정 후

     

    master 브랜치에 Readme를 수정한 뒤 Jenkins 화면

     

     

    Commit message 에 hook 실험 했던 부분이 그대로 반영되어 빌드 되었다.

     

     

    이렇게 중간 점검으로 Jenkins로 빌드가 잘 되었는지 확인해 보았다.

     

    생각보다 글을 쓰려니 양이 많다... 그래서 한 번 더 나눠 쓰려고한다. (다음 포스팅이 마지막이 되지 않을까 생각한다)

     

    다음에는 빌드된 jar 파일SSH를 통해 Spring boot server로 전송하는 작업 Docker를 이용해 Spring boot를 띄워 보겠다.

     

     

     

    '기타' 카테고리의 다른 글

    Jenkins 활용해서 Spring boot 서버 배포하기 - 1  (1) 2021.12.12
    개인정보 처리방침  (0) 2021.03.18

    댓글

Designed by Tistory.