본문 바로가기

IT

젠킨스(jenkins) 3(github webhook, Private 레포지, 비밀키, 공개키)

728x90

pubilc 저장소의 경우

1. 깃허브 Repository => setting => Webhooks => Add webhook => PayLoad URL에 ngrok로 생성한 IP를 적는다.
https:// [ip]/github-webhook/ 추가 => add webhooks

 

내PC - ngrok - github

 2. 이전에 젠킨스에서 프로젝트 생성하면서 Git Repository에 url을 잘 추가해주었다면 이제 커밋을 하면 신호가 젠킨스에 날라간다. 

webhooks/Response

3. 내용을 수정하고 커밋을 진행하고 Webhooks를 확인해보면 Response가 200인 것(잘 보냈음)을 확인 할 수 있다.

젠킨스에 잘 도착했는지 확인하고 싶으면 꼭 Configuration에 GitHub hook trigger를 체크해주는 것을 잊지 말자.

Configuration

4. 다시 커밋내용을 푸시하면 젠킨스에 Giihub Hook Log가 생성되었고 언제, 어디서부터 접근했는지 로그를 확인할 수 있다.

push log

5. 커밋한 내용이 운영서버에서도 변경이 잘 되었는지 쉘에서 확인해보도록 하자.

 

 

Private 저장소의 경우

1. 1번까지는 Pubilc과 똑같다. 

2. Setting => Developer settings => Personal access tokens => Generate new token => 키를 생성 => repo 체크 => 생성 

3. Git Repository URL을 추가할 때 키를 추가 =>https://키@주소

4. GitHub hook trigger를 체크 후 저장

 

 

 

특정 리파지터리만 젠킨스에 접근 허용하는 경우

공개키, 비밀키를 생성한다. 공개키로 암호화 한 것은 비밀키가 복호화가 가능하고 비밀키로 복호화 한 것은 공개키로 암호화가 가능하다. 비밀키를 젠킨스에 삽입하고 공개키는 깃허브 레파지토리에 삽입한다. 

공개키를 가진 쪽에선 비밀키를 가진 쪽으로 들어올 순 없다. 하지만 비밀키에서 공개키는 가능하다. 

rsa 키 pair를 생성하고, 젠킨스에 비밀키, 깃허브에 공개키 세팅을 해야한다.

 

1. 키 생성

  • docker exec -it jenkins_1 bash -c "ssh-keygen -t rsa -b 4096" (엔터 3번)

2. 비밀키 확인

  • docker exec jenkins_1 cat /root/.ssh/id_rsa

3. 공개키 확인

  • docker exec jenkins_1 cat /root/.ssh/id_rsa.pub

4. 젠킨스 비밀키 등록

  •  젠킨스 관리 => Manage Credentials => grobal Domains => Add Credentials => kind는 SSH username => Enter directly에 비밀키 넣기 => Creat

 5. 깃허브 공개키 등록

  • project settings => Deploy keys => add key => 공개키 넣기