jenkins 에서 github private repository 연결하기

현재 사용하는 서버에서는 우분투 12.04 버전을 사용하고 있다. Jenkins( http://jenkins-ci.org/ )는 우분투에서 apt-get 명령어로 쉽게 설치 가능하다 ( 참고 – 통합개발서버 구축 )

jenkins 에서는 다양한 source repository를 연결할 수 있고( git, svn … ) 몇달 전부터 svn 에서 git 으로 서서히 이동중이다. git이 꼭 필요해 이런 필요성 보다는 프로젝트 호스팅 사이트인 github이 다른 사람의 코드들과 위키 문서를 작성할 때 이쁘게 나오기 때문에 많이 사용한다.

github의 무료사용자는 비공개 프로젝트를 만들 수가 없는데 그래서 몇달 전부터 github micro plan ( $7 / mon )을 결제하고 비공개용 프로젝트를 진행중이다.

CI는 jenkins를 사용하고 있고 github private repository 로 연결하려면 몇가지 설정이 필요하다. CI 서버에서 비공개된 저장소를 접근하는 것은 사용자 인증과정이 필요하다는 것이다. 따라서, 다음 설정이 필요하다.

1. CI(jenkins) 서버가 실행되는 계정은 우분투 jenkins 계정이며(일반적인 경우) ssh 설정이 필요함
2. CI(jenkins) 서버가 인증 된 client 이며 private repository에 접근 가능 하다는 것을 github 에서 설정

1. ssh-key 생성

root@realbeast:~# su jenkins
jenkins@realbeast:/root$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa):
Created directory '/var/lib/jenkins/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.

2. id_rsa.pub : ssh-rsa 로 시작하는 데이터를 확인

jenkins@realbeast:/root$ cat /var/lib/jenkins/.ssh/id_rsa.pub
ssh-rsa ................

3. github 등록

계정설정(오른쪽상단 아이디클릭) > SSH Keys > 추가를 눌러서 id_rsa.pub 내용을 등록

4. 접속확인

실패,

jenkins@realbeast:/root$ ssh git@github.com
Permission denied (publickey).

성공 시,

jenkins@realbeast:/root$ ssh git@github.com
PTY allocation request failed on channel 0
Hi realbeast! You've successfully authenticated,
but GitHub does not provide shell access.

5. CI(jenkins)에서 프로젝트 설정

jenkins > project > setting > 소스 코드 관리 > Git
Repository URL : git@github.com:ID/PROJECT_NAME.git 으로 입력 ( 깃헙 상단에 나오는 주소 )

참고. https://nicolas.perriault.net/code/2011/setup-jenkins-github-private-repository-ubuntu/

jenkins 에서 github private repository 연결하기”에 대한 1개의 생각

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중