도커+젠킨스+스프링부트

5. 깃허브 푸시되면 젠킨스로 빌드 후 AWS EC2에 배포하기

제목과 동일하게 이번에는 깃허브 마스터 브랜치에 새로 푸시되면 젠킨스가 이를 빌드하고 AWS EC2에 배포하는 과정을 진행해보려고 합니다.

 

1. 젠킨스 SSH 플러그인 설치

- 우선 Jenkins 관리로 들어가 줍니다.

- 젠킨스 관리 메뉴들 중 플러그인 관리로 들어갑니다. 

- 플러그인 검색

- 필자의 경우 이미 설치한뒤에서 실치된 플러그인 목록에 뜨는데 설치 이전이면 설치 가능 탭을 클릭하고 검색해야합니다.

- 설치할 플러그인의 체크박스를 선택하고 설치해줍니다.

 

2. SSH 정보 셋팅

- 이번엔 젠킨스 관리의 시스템 설정으로 들어갑니다.

 

- 하단으로 스크롤을 내리면 Publish over SSH영역이 있습니다.

- 여기서 하단에 추가를 눌러줍니다.

 

- SSH 연결할 AWS EC2 정보를 입력해줍니다. 

- 필자의 경우 AWS EC2를 우분투로 설정하여 username을 ubuntu로 지정하였습니다.

- 본인이 설정한 AWS EC2의 운영체제가 아마존 리눅스인경우 ec2-user로 등록해야합니다.

- 기본정보를 입력했다면 하단의 고급을 눌러주세요.

- Use password authentication, or use a different key 체크 박스를 클릭하고

- ssh 연결을 위한 키값을 입력해야하는데 이 키값은 여러분이 AWS EC2를 생성할때 받은 pem키를 cat또는 메모장으로 열으면 확인할수 있습니다.

- 키값을 입력할때 begin, end 부분까지 전부 넣어주시면 됩니다.

전부 입력하신뒤 하단에 Test Configuartion를 눌러서 Success가 뜨면 연결은 끝입니다. 저장을 눌러주세요.

 

혹시 AWS EC2 22번 포트가 닫혀있을경우 열어주세요.

 

이제 젠킨스와 AWS EC2와 연결이 되었으니 깃허브와 젠킨스를 제대로 연결하고 쉘스크립트를 작성해봅시다.

 

1. 깃허브 리포지토리 webhook 설정

- 연결하려는 리포지토리의 셋팅에 webhooks로 들어간뒤 Add webhook 버튼을 클릭해줍시다.

- 젠킨스 주소 + /github-webhook/을 입력하고 나머지는 기본값으로 둔 뒤 저장합니다.

2. 젠킨스 프로젝트 설정

- 이전에 만들었던 젠킨스 프로젝트의 구성으로 들어갑시다.

- 구성에서 빌드유발이라는 영역에서 GitHub hook trigger for GITScm polling 을 선택해줍시다.

- 이제 깃허브에서 푸시가 일어나면 webhook이 젠킨스로 오게 되고 그 훅이 젠킨스에 도착하면 빌드가 유발되게 됩니다. 

 

 

3. 쉘스크립트 작성