컨텐츠 바로가기

[DevOps] GitLab 과 Jenkins 연동

http://mcchae.egloos.com/11246199

DevOps 가 힘들게 느껴지는 이유 중에 하나는 
GitLab 과 같은 협업 툴과 JenKins와 같은 CI 툴이 
매끄럽게 잘 연동되는 것이 핵심이라 보여집니다.

다음은 까먹기 전에 GitLab과 JenKins 의 연동에 관하여
연동하는 방법을 정리해 봅니다.

몇달 전만 하더라도 Jenkins와 GitLab 자체를 컨테이너로
돌리는데 몇몇 문제점들이 존재했었는데 이제는 아주 잘 돕니다.

암튼 다음은 그 과정의 캡쳐했던 것을 정리해 보았습니다.

jenkins를 처음 실행 하면 위와 같이 Unlock 화면이 나오고 이를 넣어주면 활성화됩니다.

플러그인 선택을 합니다.

gitlab 과 git 플러그인을 설치합니다.

디폴트 플러그인 등을 포함하여 위와 같이 설치가 잘 됩니다.

처음 사용자를 넣으면,

젠킨스 사용 가능 환경이 됩니다.

이제 새 작업을 만들면 되는데 그 이전 GitLab 연동을 위하여 이미 동작하고 있는 GitLab 과 연동하기 위하여,

특정 사용자의 "Profile Settins"를 선택하여,

상단 "Access Tokens"을 선택하고 Name과 Expires at 파기 날짜를 넣어주고 "Create Personal Access Token"을 해 줍니다.

그리고 위와 같이 나오는 (중간에 보안을 위해서 막았습니다) 토큰을 클립보드에 저장해 놓습니다.

이제 다시 젠킨스로 돌아와,

좌측 메뉴에서 "Credentials"을 선택하고,

System > Global credentials 를 선택하면,

위와 같이 나오는데 "adding some credentials?"를 선택하여,

GitLab 에서 만들어 놓았던 개인 토큰을 위와 같이 넣어줍니다.

그러면 위와 같이 해당 토큰이 시스템 글로벌 Credential로 등록되었다고 나오네요.

다시 젠킨스의 "새작업"을 선택하고,

일단은 간단하게 "Freestyle project"를 선택했습니다.

설명을 넣어주고,

Git 과 연동을 시키려는데 위의 오류는 해당 호스트명을 찾을 수 없다는 것인데 해당 컨테이너에 /etc/hosts 에 등록하여 해결하였습니다. 컨테이너를 run 할 때 --add-host 로 추가했습니다. (DNS로 찾지 않고 /etc/hosts 로 찾은 경우)
그리고 Credential로 사용자/암호로 넣었는데, 위와 같이 Add를 선택하여,

해당 Credenal을 넣고,

지정해 주면,

git 연동이 잘 되었습니다.

Build에 "Add build step"을 선택하여

특정 build 명령을 넣어 줍니다. (위에는 테스트로 echo를 주었는데 자신만의 buiild, test, deploy 등을 넣어줍니다)

Build 후 조치에는 GitLab 연동을 하고,

위와 같이 "빌드 후 조치"를 넣어주고,

GitLab의 Web Hook 에 위와 같이 등록을 해 주면, (해당 URL은 http://호스트/project/작업이름 식으로 지정합니다)

이제 GitLab에서 누군가가 PUSH를 해 주는 순간 자동으로 해당 jenkins build가 성공 또는 실패 되었음을 나타내며,

해당 내용을 눌러,

확인하면 위와 같이 잘 동작하고 있음을 알 수 있습니다.


어느 분께는 도움이 되셨기를....

덧글|덧글 쓰기|신고