본문 바로가기

⭐ CICD/Jenkins

Jenkins(Localhost) to ec2 배포하기

# Jenkins(Localhost)에서 ec2로 배포하기

AWS 내부 서비스인 Code 시리즈가 존재 한다. 그리고 해당 서비스로 배포를 설정해 놓으면 간단하게 파이프라인을 구성할 수있다. 하지만 해당 서비스를 이용하면 비용이 발생하고, 로컬 환경에서 ec2를 이용해 테스트 환경을 구축할때 굳이 AWS 자원을 소모하면서 까지 테스트 환경을 구축할 필요가 없을때는 Local에 jenkins를 설치 후 ec2에 바로 배포하여 테스트를 하는 방법이 있다. 해당 방법을 알아보자.

1. 일단 플러그인 설치가 필요하다.

Jenkins에서 빌드한 결과물이 war나 jar 파일로 떨어질것이고 해당 결과물을 ssh를 이용해 ec2로 전송해 줘야 한다.

전송 하기 위해서는 Publish Over SSH 플러그인이 필요하다.

설치 과정은 아래와 같다.

설치: Jenkins 관리 > Plugin Manager 에서 Publish Over SSH 로 검색 후 설치를 한다.

- 설치가 완료되면 Jenkins 관리 > 시스템 설정으로 이동하면 아래부분에 Publish Over SSH 메뉴를 확인 할 수 있다.

여기에 ec2 접속을 위한 정보를 넣어준다.

Name은 Job에서 식별하는 용도로 사용하는것이라 아무 정보나 입력해도 무방하다. 나머지 정보는 ec2에 SSH 연결을 하기 위한 정보라고 보면 된다. 

Use password authentication, or use a different key 부분을 체크 후 Key 부분에 ec2 접근을 위해 가지고 있는 pem 파일의 내용을 넣어준다.

Remote Directory는 ec2에 배포될 위치를 말하므로 알맞게 설정해 준다.

더 아래에 있는 port 정보도 알맞게 넣어준다.

내용을 알맞게 입력 후 Test Confuguration을 클릭하여 해당 정보가 정상적으로 커넥션 되는지 확인한다.

- 접속 테스트 결과 확인

2. 배포 설정하기

새로운 Jenkins job을 생성한다.

만약 war파일으나 jar 파일이 빌드 후 로컬 영역에 저장된다면 해당 로컬 주소를 아래와 같이 설정해 줘야 한다.

보통은 \target 폴더 안에 저장을 한다.

위에 저장된 경로에 있는 파일을 보낼 경로를 아래에서 설정한다.

만약 배포할 저장소가 로컬이 아닌 git 이라면 아래와 같이 Git 정보를 설정해 주면 된다.

결과 확인

- .war 파일 복사 확인

ubuntu@ip-10-0-41-116:~$ hostname -i
10.0.41.116
ubuntu@ip-10-0-41-116:~$ ls -l
total 7840
-rw-rw-r-- 1 ubuntu ubuntu 8025961 May 15 01:16 hello-world.war
ubuntu@ip-10-0-41-116:~$ pwd
/home/ubuntu
ubuntu@ip-10-0-41-116:~$

3. 지금까지 작업 내용 정리

pem key local to jenkins.drawio
0.00MB

- 끝 -