젠킨스 깃허브 웹훅 자동빌드 설정, 17/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

Webhook은 Github에 Push되면 Jenkins가 배포하도록 하는 기능입니다.

젠킨스에 빌드/배포/재시작까지 설정되어있으니까

웹훅만 걸어주면 완전한 자동배포가 됩니다.

 

개발자 Push > Github WebHooks > Jenkins Build > Server Restart

 

 

1. 젠킨스 > Jenkins 관리 > 설치가능 > GitHub Intergration 체크

(이미 깔려있으면 패스)

 

 

2. GitHub Intergration 플러그인 설치

 

 

3. 프로젝트 Github > Settings > Webhooks > Add webhook

 

 

 

4. Payload URL에 주소 입력

http://탄력적IP:포트/github-webhook/

 

 

developer.github.com/changes/2019-03-29-webhooks-ip-changes/

 

Webhook IP addresses are changing

Get started with one of our guides, or jump straight into the API documentation.

developer.github.com

 

 

5. AWS EC2 > 인스턴스 > 보안그룹 > 인바운드 허용

Github가 EC2의 Jenkins를 호출해야 되서, 젠킨스 포트를 허용해줘야 합니다.

8090은 자신의 젠킨스 접속 포트, IP주소는 Github서버들의 IP입니다.

8090	140.82.112.0.20
8090	192.30.252.0/22

 

 

6. 소스 Commit > Push

 

 

7. 프로젝트 Github > Settings > Webhooks > 하단에 전송상태 확인

 

 

 

8. 젠킨스 > 빌드히스토리에 저절로 빌드되는지 확인

 

 

9. 브라우저로 스프링부트 프로젝트 확인

 

Publish over SSH 설정 - 16/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

젠킨스의 Publish Over SSH를 이용하면 다른 서버에 빌드한 파일을 전송할 수 있습니다.

배포와 서버를 한 컴퓨터에서 사용할거라서 로컬에 복사합니다.

 

Jenkins Workspace > Springboot Home Directory

 

 

1. 젠킨스 > 젠킨스 관리 > 시스템 설정

 

 

2. Publish over SSH > 설정값 입력 > Test Configuration > Success > 저장

Key			ec2생성할때 다운로드받은 .pem파일 내용 (편집기로 오픈 > 복사 > 붙여넣기)
Name			LOCALHOST
Hostname		127.0.0.1
Username		ec2-user
Remote Directory	./
접속 테스트

 

 

3. 젠킨스 > 프로젝트 > 구성

 

 

 

4. 빌드 후 조치 > 빌드 후 조치 추가 > Send build artifacts over SSH

 

 

5. SSH Server에 값 입력

/home/ec2-user/webapps/start.sh는 이전글에서 생성한 빌드 스크립트 입니다.

Name			LOCALHOST

Source files			target/*.jar
Remove prefix		target
Remote directory		webapps
Exec command		nohup sh /home/ec2-user/webapps/start.sh &
				sleep 1

 

 

6. 고급 > Exec in pty 체크

 

 

7. 프로젝트 > Build Now

 

 

 

8. 빌드 콘솔에서 SSH 전송 확인

 

 

9. EC2 콘솔 > 파일복사확인

ls -l /home/ec2-user/webapps

 

 

10. 스프링부트 프로젝트 서버 시작 확인

ps -ef | grep java

 

 

11. 브라우저로 접속 확인

 

젠킨스에 깃허브 연동, 빌드 - 13/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

이번에는 젠킨스에 새로운 아이템을 생성해서 Github에서 소스를 받아서 jar파일을 생성해보겠습니다.

그리고 서버에서 스프링부트 프로젝트를 실행하면 수동으로 배포가 완료됩니다.

 

 

1. 젠킨스 > 새로운 Item

 

 

2. 이름 입력 (저는 springboot로 입력했습니다)

 

 

3. 소스 코드 관리 > Git 선택

 

 

 

4. 깃허브 > Code > Clone > HTTPS > 주소 복사

 

 

5. Repository URL에 복사한 주소 입력 > Credentials > Add > Jenkins

 

 

6. Github 계정정보 입력 > Add

Domain: Global credentials (unrestricted)
Kind: Username with password
Scope: Global (Jenkins, nodes, items, all child items, etc)
Username: 깃허브아이디(이메일주소)
Password: 깃허브비밀번호

 

 

7. Branch Specifier (blank for 'any') 에 */master 입력 > 저장

다른 브랜치가 있으면 다른것을 입력해도 됩니다.

 

 

 

8. 젠킨스 > Item > Build Now

 

 

9. 콘솔 출력 확인

첫 빌드때는 프로젝트에 필요한 jar파일을 다운받느라고 좀 느립니다.

 

 

10. EC2 > 빌드된 jar 확인

springboot는 젠킨스에서 생성한 Item이름입니다.

cd /var/lib/jenkins/workspace/springboot/target
ls -l

 

최근에 올라온 글

최근에 달린 댓글