Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- npm 전역 설치 삭제
- node.js ec2 배포
- html tag
- npm 글로벌 설치 삭제 했는데 실행됨
- sql 데이터 삽입
- Foreign Key (외래 키)
- aws sdk v3
- 스트레스툴
- filezilla
- node.js ec2
- sql 데이터 추가
- AWS SDK for JavaScript v3
- HTML 태그
- 자바
- Java
- SMS sandbox
- node.js
- COALESCE함수
- sns 샌드박스 종료
- sms 휴대폰 인증
- sms 샌드박스
- Apache ab
- Primary key(기본 키)
- EC2
- node.js ec2 ip접속
- 이것이 자바다
- Apache Benchmark
- HTML
- PostgreSQL CAST
- ab 벤치마크
Archives
- Today
- Total
망각에 재주 있는 나를 위해 기록하는 곳.
[jenkins] ec2 node.js CI/CD 자동 배포 만들기 (3) 본문
- 깃허브 페이지로 가서 프로젝트 레포지토리의 Settings로 이동.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
Webhooks 선택
내 깃허브 레포지토리에서 어떤 이벤트가 발생하는 것을 알려주게 설정하는 것이다.
아래와 같이 설정. Payload URL에는 http://<젠킨스서버IP>:8080/github-webhook/를 입력하여 생성.
- 젠킨스 서버로 다시 돌아와서 jenkins사용자로 변경하고 ssh발행
sudo su - jenkins
ssh-keygen -t rsa
그리고 아래를 입력하여 출력된 ssh키를 복사한다.
cat ~/.ssh/id_rsa.pub
- node.js서버로 이동. (젠킨스 서버 아님)
아래를 입력하여 파일을 열어서 방금 복사한 ssh키를 맨 뒤에 이어붙인다.
vim ~/.ssh/authorized_keys
.ssh폴더에 권한 부여.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
- 다시 젠킨스 서버로 돌아와서 node서버에 접속되면 성공.
ssh ubuntu@<node.js서버ip>
- 프로젝트 파일 설정
프로젝트 루트 디렉토리에서 script폴더 만들고 deploy파일 생성. (deploy파일은 확장자 없이 만들어야함.)
2번째 줄은 젠킨스 서버에서 node서버로 접속 할 수 있게 node서버 ip를 입력하면된다.
"sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000"는 80포트에서 3000포트로 변환해주는 코드.
(*자신의 프로젝트에 맞게 설정하면 된다.)
- ecosystem.config.js파일 생성.
루트 디렉토리에 ecosystem.config.js을 생성하여 설정.
- 깃허브에 push하고 젠킨스 페이지에서 아래처럼 나오면 성공.
*쉽지 않게 완성하였지만 페이지에 접속을 하니 들어가지지 않았다.
프로젝트에 .env파일이 있는데 gitignore되어 있어서 clone으로 받아지지 않아 수동 추가 해주었다.
그리고 ec2 node서버에서 보안그룹-인바운드 설정을 안한채로 진행했었다. (22포트만 열린 상태, 80포트를 추가함)
이렇게 처음 CI/CD구성을 하면 자동빌드/배포가 되어도 빠진게 있는지 체크를 잘 해야한다.
+ 추후에 배포서버가 늘어나면 늘어난 만큼 젠킨스 서버를 추가 할 필요없이
한 개의 젠킨스 서버에서 "Publish Over SSH"로 관리가 가능한 거 같다.
https://velog.io/@yzkim9501/AWS-ec2%EC%97%90-node.js-jenkins-%EC%97%B0%EB%8F%99
AWS ec2에 node.js - jenkins 연동 (velog.io)
Jenkins + Node.js(PM2) + GitHub를 이용한 자동배포 구축하기(1) (velog.io)
'jenkins' 카테고리의 다른 글
[jenkins] ec2 node.js CI/CD 자동 배포 만들기 (2) (0) | 2024.02.17 |
---|---|
[jenkins] ec2 node.js CI/CD 자동 배포 만들기 (1) (0) | 2024.02.16 |