사내에서 Git을 사용하게 되어 개발 장비에 Jenkins와 Git 연동을 준비하였는데 진행 과정에서 다소 삽질이 많았던 터라 정리한다.
plugin 설치
Jenkins 관리 > 플러그인 관리 페이지 이동 후 Jenkins GIT plugin을 설치한다.
해당 플러그인을 설치하게 되면 dependency plugin 들이 자동으로 설치가 되는데 그 대상이 되는 것은 Jenkins GIT client plugin, SCM API Plugin 이다.
시스템 설정
Jenkins 관리 > 시스템 설정 관리 페이지 이동 후 JDK, Maven 등을 셋팅한다.
이후, Git 정보란을 유심히 살펴봐야 하는데 Path to Git executable 항목의 git은 실행 파일명을 의미하는 것이다. 즉 서버에 git이 install되어 있어야 하는 것이다.
나는 이 부분에서 삽질을 하게 되었다. SVN을 이용하여 연동했을 때에는 jenkins가 구동되는 서버에 SVN을 설치하지 않았다. 그렇기 때문에 Git 연동시에도 Git을 install하지 않아도 되는 줄 알았던 것이다.
새로운 Job 생성
새로운 Job 생성을 하게 되면 해당 Job의 Configure를 셋팅하는 화면이 나온다.
소스 코드 관리 항목에서 Git을 선택하고 Repository URL을 입력한다.
ssh://도메인:7999/project/testProject.git
만약 git repository가 인증을 통해서만 접근이 가능하다면 Credentials 항목에 사용자 정보를 추가해 줘야 한다.
Credentials의 Add 버튼을 클릭한 후 다음과 같이 셋팅한다.
이곳에서도 삽질을 하게 되었는데 Enter directly 라디오 버튼을 클릭 후 textarea 박스에 id_rsa.pub 내용을 붙여넣으면 인증이 안된다.
왜 그런 것인지는 잘 모르겠지만 From the Jenkins master ~/.ssh로 설정하면 정상적으로 인증이 된다. 참고로 ssh 인증을 위해서는 아래 "ssh 인증키 생성"을 꼭 진행해야 한다.
ssh 인증키 생성
ssh 인증을 위한 사용자 등록 시 꼭 Jenkins 서버를 구동한 계정으로 진행해야 한다.
즉, 리눅스에 admin 이라는 계정이 Jenkins 서버를 구동했다면 해당 계정을 사용하여 ssh 인증 셋팅을 진행해야 한다는 것이다.
1. 리눅스에서 admin 계정으로 로그인 후 다음 명령어 실행
$ ssh-keygen -t rsa -C "admin"
2. admin 홈 디렉토리의 .ssh 폴더 하위에 id_rsa.pub 내용을 copy
3. 우리 회사에서는 Atlassian Stash를 사용하고 있으므로 Account 페이지로 이동 후 위에서 copy한 SSH Key를 등록한다.
이와 같이 셋팅을 완료하면 jenkins를 구동하고 있는 리눅스 계정 admin이 git 서버와 ssh 연동을 한다.
Jenkins + Git 연동의 삽질 경험담은 여기서 마친다.
'개발툴' 카테고리의 다른 글
Jenkins 에서 shell로 tomcat startup 시 동작하지 않는 문제 (0) | 2014.01.26 |
---|---|
eclipse EGit 시나리오별 사용법 (4) | 2014.01.18 |
Git Configuration 프로젝트별 사용자 정보 셋팅 (0) | 2014.01.18 |
Github Web Hook 설정 (0) | 2014.01.15 |
maven debug 모드로 goal 실행 (0) | 2014.01.14 |
Git 원격 저장소 maven multi module 프로젝트 가져오기 (1) | 2014.01.10 |
eclipse svn client (Subversive) 에서 svn 아이콘이 안 보이는 현상 (0) | 2014.01.02 |
maven packaging 시 test 제외 방법 (0) | 2013.12.31 |