설날에 Jenkins 작업하느라 보내지 못했다..🤣
그래도 살이 안 쪄서 다행이다. 😁
서론은 됐고, 오늘은 Jenkins + Node.js + GitHub를 이용한 자동배포 구축에 대해 정리하겠다.
Jenkins 관리 👉 플러그인 관리에 들어간다.
NodeJS 검색을 한 뒤, Download now and install after restart 설치를 진행한다.
Jenkins 관리 👉 Global Tool Configuration 에 들어간다.
NodeJS 플러그인을 찾아 Name과 버전을 입력한다. Nodejs 최신 버전도 있으니 걱정마라!! 필자는 16.4.21으로 진행하겠다.
저번 포스트에 Github 연동하면서 만들었던 프로젝트 👉 Configure 👉 빌드 Steps 👉 NodeJS 플러그인 설정
📍 사전 필수
✔ 반드시 GitHub 연동과 git Webhook 설정이 되어야 한다.
링크를 참조하자.
👉 https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-1
사전 준비가 되었으면, 다음으로는 젠킨스에서 노드 서버로 전송하기 위해서는 ssh를 이용해야 하는데, 젠킨스에서는 플러그인으로 제공한다. Publish Over SSH 플러그인을 설치해야 한다.
필자는 Publish Over SSH를 설치하였다.
👉 https://dbjh.tistory.com/68?category=839984
Node.js 서버를 배포하는 방식은 여러가지이지만, 그 중 하나인 PM2를 이용할 것이다.
npm install -g pm2
pm2 -v ✔ 버전 확인
이렇게 큰 PM2 로고가 나오면 성공 ‼
PM2를 설치 한 뒤, EC2에 Node.js 설치를 해야 한다.
Node.js 설치는 간단하다.
이렇게 친절하게 Amazon 에서 설명을 해준다. 역시 GOD 아마존 🌟
👉 https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
이제 중요한 자동 업데이트 스크립트 구성을 해야한다.
자동배포를 구성하기 전에 젠킨스에 의해 실행될 스크립트를 작성하자.
스크립트 파일은 깃허브에서 클론한 폴더 내부에 작성하자.
git clone 내 허브 주소
#!/bin/bash
git pull
npm install
npm start
필자는 start.sh 이름으로 저장했고, 권한을 주자‼
chmod 755 start.sh
start.sh가 실행이 잘 된다. 기분이 좋구만!!
이제 젠킨스 서버에서 쉘 스크립트를 작성하자.
ssh-keygen -t rsa
ssh 키를 발행하고 엔터 누르고 진행
ssh키를 복사한 것을 붙여넣기 한다.
vi ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
✔ ssh 권한을 준다.
ssh 사용자명@node.server ip
✔ ssh 접속 성공
연동된 리포지토리에 소스코드를 push 해보고 젠킨스 서버에 문제없이 작동되는지 확인하자
이로써 Jenkins + Node.js + GitHub 를 이용한 자동배포 구축이 완료되었다.
서버에서 SSH 접속 후, Bulid된 파일을 서버로 모두 전송했다.
다시 Jenkins를 실행함으로써 수정한 파일이 배포가 마무리 되었다.
기회가 된다면, GitLab 을 통해 배포를 해보고 싶다는 생각이 들었다.
아니면 AWS 서비스에서 파이프라인과 배포 서비스를 이용해보고 싶다.
다음 포스트가 기대된다.
git pull 오류가 났다.
또 구글 박사님한테 물어보던 중, 참고할만한 글이 있어 링크를 남긴다.
👉 https://insapporo2016.tistory.com/53