github X jenkins (CI: Continuous Integration) 구성하기 with private Repository #1 - github ssh 접속



private Repository 는 일반적으로 개인적인 프로젝트가 아닌 회사에서 product 를 할 경우에 많이 이용하는데요,

일반적으로 github public Repository로 CI를 구성하는 방법은 많이 있지만 private Repository는 처음에 구축할 경우 permission 및 권한 문제로 난관에 봉착하는 경우가 많습니다.

 private Repository 를 가지고 github와 jenkins을 가지고 CI 환경을 설명하도록 하겠습니다.


* github와 jenkins을 가지고 CI 환경이란???
github 에서 소스 변경사항을 push하면 자동으로 jenkins에서 빌드가 되는 환경을 말합니다.


 github와 jenkins을 가지고 CI 환경구성하기 위해  아래의 단계로 설정하면 됩니다.



# 구성순서
1. SSH 공개키 만들기
2. github에 공개키 등록
3. github ssh 접속 테스트
4. jenkins plugin 설치
5. jenkins에 github 서버 등록
6. jenkins 프로젝트 구성
7. github 프로젝트에 jenkins서비스등록
8. 빌드확인(프로젝트 push후 자동 빌드 확인)


위의 순서로 구성하면 되지만 , 여기서는 3번까지 구성하여 github ssh 접속 구성을 진행하겠습니다.


1. SSH 공개키 만들기

 github 원격 git 레파지토리에 접속하기 위해 SSH 공객키 인증으로 접속해야 합니다. 모든 운영체제에서공개키를 만드는 방법은 비슷합니다.

공개키 생성하는 방법

1) 터미널을 열고

2) github 계정의 이메일을 주소를 입력하여 공개키를 생성합니다.


 3) "Enter a file in which to save the key," 메시지가 나오면 엔터를 입력 합니다.


 4) 인증서 암호화를 위해 key를 입력하고 , 다시한번 입력하여 확인합니다.


 5) 그러면 (사용자홈디렉토리)/.ssh/ 밑에 id_rsa 및 id_rsa.pub 파일이 생성됩니다.

* 상세내용은 아래에서 확인하시면 좀더 상세한 내용을 확인할 수 있습니다.

http://www.tutorialbook.co.kr/entry/Github-%EC%BD%98%EC%86%94%EB%A1%9C-%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-ssh-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0 

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/


2. github에 공개키 등록

 다음은  생성된  공개키를  github에 등록하여 인증을 처리하면 됩니다.
공개키인 id_rsa.pub 내용을 복사하여

Github 로 로그인한 후 아래와 Settings > SSH Keys > Add SSH Key 를 이용하여 아래와 같이 생성한 키를 Title 과 같이 입력하여 주시기 바랍니다.



 위의 내용으로 충분하지만 상세내용은 아래에서 확인하실 수 있습니다.

https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

 3. github ssh 접속 테스트


위에서처럼 github에 공개키를 정상적으로 등록한 후,
젠킨스가 설치되 서버에서 접속이 정상적으로 되는지 확인을 해야 합니다.

터미널을 연 후 다음과 같이 입력합니다.(주의: git가 맞는 이름이며, github 계정의 이름이 아닙니다.)




 그러면 다음과 같이 경고 메시지가 출력된 후 'yes'를 입렵합니다.



 테스트가 정상인 경우 다음과 표시되며
 

 에러시에는 다음과 같이 표시됩니다.
 "Error: Permission denied (publickey)".



댓글

주간 인기글

[정보] 인스타그램은 당신의 소리를 '듣고' 있을 수도 있습니다

[Angular] 모델, 값이 바뀌었는데 화면 template 이 업데이트 되지 않을 때 조치 팁

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #1

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #2

안드로이드에서 당겨서 새로고침(SwipeRefreshLayout) 쉽게 구현하기