SSH를 이용해 Github의 프로젝트를 jenkins와 연동하는 방법에 대해 알아봅니다.

 

 

 

0. 사전 준비

 

다음 글을 참고해 Jenkins를 미리 준비합니다: 2020/01/17 - [Linux] - [Ubuntu] CI/CD를 위한 Jenkins 설치

 

 

 

1. 키파일 생성

 

Jenkins가 설치되어있는 서버에서 키 파일을 생성해야 합니다. 다음 명령어를 통해 키 파일을 생성합니다.

 

> ssh-keygen -t rsa -f smoh-jenkins

 

위 명령어를 실행하면 두 개의 파일이 생성됩니다. 

 

 

확장자가 없는 smoh-jenkins는 개인키 파일이고 확장자가 있는 smoh-jenkins.pub는 공개키 파일입니다.

 

 

 

 

2. Jenkins에 개인 키 등록.

 

먼저 Jenkins에 개인키를 등록합니다.

 

 

위의 그림과 같이 Jenkins > Credential > System > Global credential(unrestricted) 또는 자신이 생성한 시스템으로 이동해 Add credential을 클릭합니다.

 

종류는 SSH Username with private key를 선택합니다. ID, Desc, Username은 모두 Jenkins에서 사용되는 값이므로 임의의 값을 입력합니다. 

 

PrivateKey는 Enter directlt 라디오 버튼을 누른 뒤 생성한 개인키 파일 내부의 값을 모두 입력해 줍니다. 만약 키를 생성할 때 Passphrase를 입력했다면 Passphrase에 입력한 값을 넣어줍니다.

 

 

정상적으로 Jenkins에 새 Credential이 생성되었습니다.

 

 

 

3. Github Project에 공개키 등록.

 

이제 깃헙 프로젝트에 생성한 공개키를 등록할 차례입니다. 

 

 

위 그림과 같이 Github > Project > Settings > Deploy keys > Add deploy key를 클릭합니다.

 

Title은 임의로 명명합니다. Key에는 위에서 생성한. pub 확장자를 가진 공개키의 내용을 모두 입력합니다. Allow write access는 필요에 따라 체크합니다.

 

 

정상적으로 깃헙 프로젝트에 공개키가 등록된 것을 확인할 수 있습니다.

 

 

 

4. 소스 코드 관리 설정.

 

이제 젠킨스와 깃헙의 리포지토리를 연동해 보겠습니다. 젠킨스에 새로운 아이템을 생성해 구성 페이지에서 소스 코드 관리로 이동합니다. 그리고 평소대로 리포지토리 주소를 입력한 후 Credential에 우리가 생성한 Credential을 고릅니다.

 

 

유저 이름과 암호가 다르다는 에러가 발생하네요. 우리는 일반적인 깃헙 로그인 계정을 사용해 Credential을 생성하지 않고 키 파일로 생성했기 때문에 일반적인 HTTPS 방식을 사용할 수 없습니다.

 

깃헙 프로젝트로 이동해 Clone or download에서 Use SSH를 선택하면 나오는 주소를 확인합시다.

 

 

이 값을 다시 젠킨스의 Repository URL에 넣어보세요.

 

 

에러 없이 정상적으로 연동되는 것을 확인할 수 있습니다.

 

 

 

 

 

+ Recent posts