망각에 재주 있는 나를 위해 기록하는 곳.

[jenkins] ec2 node.js CI/CD 자동 배포 만들기 (1) 본문

jenkins

[jenkins] ec2 node.js CI/CD 자동 배포 만들기 (1)

baobabtree 2024. 2. 16. 23:11

공공데이터와 네이버 지도를 이용해서 간단한 개인 프로젝트를 만들었다.
작성한 코드 파일을 filezilla로 ec2에 업로드하고 pm2를 사용하여 서비스를 올렸다.

하지만 나중에 수정사항이 생기면 ec2들어가서 pm2 재시작하고 수정한 파일 업로드하고 할 생각하니

혹시나 큰 프로젝트를 한다고 하면 수정을 하기가 싫어지지 않을까 겁이난다.

나는 그냥 깃허브에 push하면 알아서 배포되게 하고 싶었다. 

 

 

  • aws에서 jenkins서버와 node.js서버로 사용할 ec2 두 개를 만든다.
    ec2프리티어, ubuntu 22.04 LTS를 사용하였고 각 인스턴스의 .pem인 키페어를 생성했다.

 

 

  • jenkins서버에 접속.

키페어가 있는 위치로 가서 ssh -i <키페어파일> ubuntu@<젠킨스 서버 퍼블릭 ipv4>를 입력하면 된다.

 

젠킨스 서버 ip는 젠킨스 서버 인스턴스를 클릭하면 아래처럼 볼 수 있다.

 

그러면

접속이 잘 되었으면 이렇게 된다.

(만약 ec2를 처음 사용하는 사람 중에 PowerShell로 할때 접속이 안되는 경우가 있다. 키페어 속성을 변경해야한다.
만약 git bash가 있다면 그걸로 시도해보고 여전히 안된다면 여기(키페어 설정 부분)를 참고.)

 

 

자바 설치

sudo apt update
sudo apt install fontconfig openjdk-17-jre

젠킨스 설치

 

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \ https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins

 

  • 젠킨스 서버의 보안그룹 규칙 추가
    젠킨스는 8080포트를 사용한다고 하니, 보안그룹의 인바운드 규칙에서 8080포트를 추가.

 

 

  • http://<젠킨스 서버 ip>:8080로 접속.
    잘 설치가 되었다면 아래와 같은 페이지가 나온다. 패스워드를 입력하라고 한다.

 

  • sudo cat /var/lib/jenkins/secrets/initialAdminPassword 입력.
    패스워드를 볼 수 있다. 그 패스워드를 입력한다.

 

그럼 아래와 같은 페이지가 나온다. Install suggested plugins로 설치진행.

 

 

그럼 아래처럼 설치가 진행된다.

 

 

설치가 끝나면 계정을 생성한다.

 

젠킨스 접속 주소이다. 딱히 변경하진 않았다.

 

그럼 다 되었다.

 

젠킨스 페이지에 접속한 화면이다.

 

URL주소 창에 http://<젠킨스 서버 ip>:8080/restart를 입력하고 재시작 해본다.

 

계정 생성 시 입력했던 사용자 이름과 패스워드를 입력하고 로그인 해본다.

 

 

 

2편에서 계속....