본문 바로가기
시행착오/Spring Boot

[Spring Boot] 5-1. Jenkins를 이용한 배포

by 성동원 2023. 10. 27.
시작하기 앞서

 

나는 새로운 것을 받아들이는 것을 잘 하는 놈인줄 알았으나. 아닌 것 같기도 하다... 그럼에도 불구하고 요기조기 찾아가며 설정을 했고, 지금은 Jenkins로 빌드 및 배포를 진행 하고 있다.

 

환경은 다음과 같다.

 

jenkins 서버

 - 서버1

 

배포 서버

 - 서버2

 

설정

위 와 같이.  jenkins 서버와 실제로 내가 운영하고자 하는 서버를 다르게 놓았다. (같이 해도 상관은 없었다. 실제로 해봤음)

사실 jenkins 처음(?) 써보고 잘 모르고... 다 영어로 되어있어서 거부감이 들긴 했다.

이것 저것 찾아보면서 시행착오도 겪고 해서 사실 지금은 어떻게 해야 설정이 됐는지 조차 까먹을 정도로 많은 시도를 이것저것 했다.

그래서 아마 나의 Jenkins 설정은 완벽하지 않을 것이다. 그래도 생각해 가면서 작성 해야지...

 

 

 

먼저 Dashboard에 Jenkins 관리를 해줘야함.

 

 

 

  • plugins 설정
    • 현재 jenkins와 서비스 서버가 각각 다르기 때문에 jenkins 서버에서 서비스 서버에 접속을 해서 빌드 및 배포를 진행하기 위해서 ssh로 접속이 가능해야함.
    • ssh로 접속을 하기 위해선 jenkins의 plugins > Available plugins 에서 Publish Over SSH 를 설치하자.
  • System 설정
    • 설치를 하게 되면 System 으로 들어와서 맨 밑에 Publish Over SSH 항목이 생성 된다.
    • 여기서 서비스할 (Jenkins서버에서 SSH로 접속할 서버) 서버의 설정을 한다.

 

 

 

지금은 설정을 해놔서 저렇게 있는건지... 아니면 원래 있는 건지는 잘 모르겠으나...

아마 '추가' 버튼이 있을 것이다. 추가 버튼을 누르게 되면 다음과 같은 항목들이 나타나게 되는데 여기서 지정하면 된다.

 

SSH Servers > SSH Server > 

  • Name: 팀이름
  • HostName: 접속하고자 하는 서버의 IP
  • Username: 접속하고자 하는 서버의 계정
  • Route Directory: 서비스 디렉토리

위 와 같이 나는 작성을 했는데 정답인지는 모르겠으나 나는 위 와 같이 설정 했을 때 현재 작동이 되고 있다.

 

그리고 나서 바로 밑에 있는 고급을 누른다.

 

 

위 처럼 항목들이 나타나는데 여기서 설정을 또 해줘야 한다.

우선 나는 앞서 글들에서 github를 private으로 했다. github private를 서버에서 clone 및 pull을 하기 위해서 나는 id_rsa 인증키를 만들고 계정에 등록을 했다. 

jenkins 서버에서도 똑같이 id_rsa를 만들어 준다. (만드는 법은 이전 글 찾아보던가 검색해보면 다 나옴..)

jenkins서버의 id_rsa.pub의 내용을 서비스 서버에도 인증을 해놔야 한다.

 

# 서비스 서버 접속
cd /home/계정명/.ssh

#  jenkins 서버가 ssh로 서비스 서버로 접속할거기 때문에 인증서 만들어줘야함.
vi authorized_keys

# vi 편집기가 열리면 jenkins 서버의 id_rsa.pub를 복사 한 것을 그대로 붙여 넣기. 그리고 저장.

 

 

그리고 나서 다시 Jenkins 페이지로 돌아온다.

 

아까 위 사진에서 밑에 보면 Test Configuration 을 눌러서 jenkins가 서비스 서버에 잘 접속하는지 테스트 진행 해 본다.

되면 좋은건데 아마 안될 가능성이 크다.

 

Use Password authentication, or use a different key 를 체크 해준다.

 

key 항목에 jenkins 서버의 id_rsa 를 복사 붙여 넣기 해준다.

 

 

그리고 나서 다시 접속 테스트를 진행 해본다.

 

나는 이렇게 해서 됐던 걸로 기억이 난다.

만약 되지 않는다면... 다른 곳에서 찾아보시고 여러 시도를 해보시길.....

 

아무튼 이 다음 글은 접속이 된다 가정하고 계속 이어나갈 것 이다.

 

다음 2편에서 진행....