Dev. Back-End/CI & CD

[JenKins] ③ 젠킨스를 이용해서 node.js CI/CD 자동 배포하는 방법 (NestJS)

재테크하는 개발자 2021. 6. 2. 22:31

 

 

 

 

JenKins를 이용해서 node.js 배포하는 방법 (NestJS) 2편에 이어서

3편을 포스팅하겠습니다.

 

 

 

 

 

▼ Jenkins를 통해 자동배포 (NodeJS) 시리즈

▶ ① 젠킨스를 이용해서 node.js CI/CD 자동 배포하는 방법 - 바로가기

▶ ② 젠킨스를 이용해서 node.js CI/CD 자동 배포하는 방법 - 바로가기

▶ ③ 젠킨스를 이용해서 node.js CI/CD 자동 배포하는 방법 - 바로가기

▶ ④ 젠킨스를 이용해서 node.js CI/CD 자동 배포하는 방법 - 바로가기

▶ ⑤ 젠킨스를 이용해서 node.js CI/CD 자동 배포하는 방법 - 바로가기

 

 

 

 


 

 

 

오늘은 GitHub에서 push하면 자동배포할 수 있는 GitHub Repository를 생성하고 NestJS 쉘 스크립트 작성을 해주겠습니다.

 

※ 최종 GitHub 주소 : https://github.com/choseongho93/Jenest

 

 

 

 

● GitHub에서 레포지토리 생성  & local에서 NestJS 설치 / 구동 

 

1. 깃헙에서 레포지토리를 생성해주고 저는 ovni라는 이름으로 생성해주겠습니다.

( 현재는 Jenest라는 프로젝트로 변경됨을 알려드립니다. )

 

 

 

 

 

 

2. 제 로컬에 위 깃헙을 Clone해와서 NestJS를 설치해줍니다. ( 이때 디렉토리 경로는 여러분들이 원하는 곳에 하시면 됩니다! )

NestJS 설치에 대해서는 아래를 참고해주세요.

▶[NestJS] ① nestjs-API 간단하게 설치하는 방법- 바로가기

 

 

 

 

 

 

3. NestJS 기본 포트인 3000로 브라우저를 통해 로컬에 접속해서 위 사진과 동일하게 접속된다면 정상입니다.

( 바로 위  NestJS 설치에 대해서는 아래를 참고해주세요.  를 반드시 하고 오셔야 정상적으로 작동되고, 이후에

이어지는 실습이 가능합니다.)

 

 

 

 

 

 

 

 

 

4. 로컬에서 정상 작동되는 것을 확인하고 깃헙에서 만든 레파지토리에 푸시해줍니다.

 

 

 

 

 

 

 


 

 

 

 

 

● AWS EC2 노드 앱 서버에 올리기

 

이전에 1편에서 구축한 Node 서버에 위 코드들을 모두 올려주는 작업을 하겠습니다.

 

 

 

$ cd /home

5. 서버 SSH로 접속한 후에 home 디렉토리로 이동합니다.

 

 

 

 

$ sudo chmod 755 /home

$ sudo chown ubuntu:ubuntu /home/ubuntu -R

$ sudo chmod 700 /home/ubuntu /home/ubuntu/.ssh

$ sudo chmod 600 /home/ubuntu/.ssh/authorized keys

6. 이 작업은 home 디렉토리 아래에 각종 소유권 권한을 부여해주기 위해 작업하였습니다.

( 이 작업을 하는 이유는 home 디렉토리 아래에 깃 클론을 하기 위해 디렉토리를 생성하려다보니 권한 문제가 발생하여 찾은 방법입니다. )

 

 

 

 

 

 

 

$ sudo chown -R -v ubuntu /home

7. 이 작업도 5번과 동일합니다.

 

 

 

 

 

 

 

$ cd /home/ubuntu

8.  /home/ubuntu 디렉토리로 이동해줍니다.

( 스크린샷이 존재하지 않아 텍스트로 대체합니다. )

 

 

 

 

 

 

$ git clone http GitHub 주소

$ ls -al

8. GitHub에 있는 코드들을 clone해서 받아주고 정상적으로 받아졌는지 확인해줍니다.

( 위 사진에서는 /home 디렉토리 경로로 되어있지만, 추후 문제가 발생해서 /home/ubuntu로 해당 코드들이 이전하였기에 현재 경로는 무시하셔도 됩니다. )

 

 

 

 

 

 

 

$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

9. nodejs를 설치하기 위해 PPA를 추가합니다.

 

 

 

 

 

 

 

 

 

 

$ sudo apt install nodejs

$ node -v

$ npm -v

10. nodejs를 설치하고 확인해줍니다.

 

 

 

 

 

 

 

 

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

$ cat ~/.ssh/id_rsa.pub

11. 이메일 부분은 깃헙 로그인했을때 계정인 이메일을 입력해줍니다.

입력하고 나서 계속 그냥 디폴트로 되도록 Enter를 눌러줍니다.

그리고  cat ~/.ssh/id_rsa.pub 명령어를 통해 SSH key를 이용하기 위해서 명령어를 입력하고 나온 보라색 박스부분을

모두 드래그해서 복사합니다.

 

 

 

 

 

 

12. 깃헙에 들어가서 상단 우측에 있는 계정을 클릭하고 Setting을 클릭해서 페이지 이동을 합니다.

이동된 페이지는 위 사진과 같으며 좌측 메뉴에 "SSH and GPG keys"를 클릭하여 "New SSH key"버튼을 클릭합니다.

 

 

 

 

 

 

 

 

 

13. 타이틀은 본인이 알수있도록 하는 용도이기에 적당하게 입력하고, key부분에 11번에서 복사한 값을 붙여주고 "Add SSH key" 버튼을 클릭하여 등록합니다.

( 만일 위에서 node서버에서 깃 클론이 안되었다면, SSH key를 등록한 이 시점부터 다시 클론을 시도해봅니다. )

 

 

 

젠킨스로 CI/CD하는 방법에 대해 다음에 이어서 진행하겠습니다.

 

 

 

Ref: https://soojae.tistory.com/25 

https://12340zszs.tistory.com/33

https://cheese10yun.github.io/PM2/