CI/CD에 대표적인 젠킨스의 WebHook을 알아 보려고 합니다. 그렇다면 WebHook은 무엇일까요??
WebHook
WebHook은 어떠한 이벤트가 일어나면 설정했던 URL로 특정 정보,이벤트를 보내거나 알려주는것을 말합니다.
쉽게 보면, 특정행동이 일아나면 알려주는 것이라고 보면 됩니다.
WebHook을 사용하지 않고 특정 이벤트 혹은 변경이 일어 났는지 알고자 한다면 짧은 주기로 서버에 계속 요청하여 확인 하는 방법을 즉 polling 사용해야 하는데 그렇게 한다면 많은 부담을 줄 것입니다. 그에 비해 Webhook관련 설정을 하고 그저 기다리면 필요한 정보 및 이벤트를 알려 주기 때문에 해당 서비스에 부담을 줄일 수 있어 많이 사용합니다. 아래를 보시면 쉽게 이해 할 수 있을 꺼에요!
그렇다면 이러한 WebHook을 Jenkins에 어떻게 사용하는지 알아보 겠습니다.
Jenkins 와 WebHook 연동
우선 나중에 jenkins가 github에서 소스를 PULL을 받기위해서는 AccessToken이 필요하니 토큰 설정을 하겠습니다.
1. [github] - [Setting]
2. [Developer settings] - [Personal access tokens] - [generate new token 클릭]
3. Access Token명과 scopes를 지정하고 하단의 genrerate token을 통해 생성합니다.
아래의 액세스 토큰을 따로 보관해주세요! 나중에 해당 엑세스 토큰을 jenkins에 저장할 꺼에요
4. 젠킨스에서도 키값을 생성합니다.
아래의 명령어를 통해 키를 확인해주세요..
[pooney@localhost ~]$ ssh-keygen //키생성
[pooney@localhost ~]$ cat ~/.ssh/id_rsa.pub //키 확인
ssh-rsa로 시작하는 모든 값을 복사합니다.
5. GitHub WebHook을 통해 배포할 git branch로 이동합니다 [Settings] - [Webhooks] - [Add webhook 클릭]
URL은 Callback URL을 입력하시면 됩니다. ex) http://{젠킨스ip}:{젠킨스port}/github-webhook/
6. [settins] - [Deply keys] - [Add deply key 클릭]
키명을 입력하고 위에서 4번에서 생성한 젠킨스 키값을 입력하고 [Add key]를 통해 생성합니다.
7. 젠킨스에서 CI/CD할 새로운 ITEM을 생성합니다.
8. WebHook을 걸 github 프로젝트 주소를 입력합니다.
9. [소스코드 관리] - [git] - [Add 클릭]
10. Credentials를 등록합니다.
ID : 키등록시 사용할 이름(다른 곳에서 해당이름으로 사용됩니다.
UserName : 깃허브 profile 이름
Peivate Key에는 4번에서 생성한 젠킨스 키를 넣어주고 [Add]를 통해 생성합니다
11. 아래의 GitHub hook trigger for GITScm polling를 체크를 하고 저장합니다.
GitHub hook trigger for GITScm polling는 webhook trigger에대한 설정입니다.
12. github의 해당 브랜치에 push
젠킨스에서 해당 브랜치에서 커밋 메시지 "로그"를 pull을 받고 build하는것을 확인 할 수 있습니다.
젠킨스를 잘 사용하면 쉽고 편하게 빌드/배포가 가능하니 잘 사용하시기 바랍니다.
'Spring boot' 카테고리의 다른 글
Spring boot - Docker를 이용한 JENKINS 설치 (0) | 2022.06.28 |
---|---|
Spring boot @PropertySource로 yml 로드 방법 (3) | 2021.11.07 |
Spring boot - AOP 파라미터 넘기기 (0) | 2021.07.20 |
Spring boot Gradle 을 이용한 WAR 배포 (0) | 2021.02.05 |
Spring boot @JsonFilter (0) | 2020.07.05 |