1.개요
gitlab과 jenkins를 활용하여 배포 자동화를 구축하는 과정에 대해서 정리해보겠다.
jenkins 프리스타일 프로젝트를 생성하여 gitlab 프로젝트와 연동하고, gitlab 트리거를 설정하여 자동배포를 구축해보았다.
참고로 gitlab 11.x.x 버전을 Docker 기반의 온프레미스 환경에서 사용하고 있다.
2. jenkins에서 gitlab 플러그인 설치
Dashboard - Jenkins 관리 - Plugins 에서
Available plugins를 클릭하여 Gitlab 검색 한 다음 아래 체크 박스에 체크한 다음 install 버튼을 클릭하여 설치를 진행한다.
3. gitlab에서 access token 발급
jenkins에서 gitlab repository에 access 하기 위해서는 token이 필요하다.
gitlab 페이지에서 user - settings - 액세스 토큰 을 클릭하면 아래와 같은 화면이 나온다.
이름, 만료날짜, scopes 선택한 다음 아래 Create Personal access token을 클릭하여 토큰을 생성한다.
생성하면 토큰값이 나오는데 다시 확인할 수 없기 때문에 복사해서 따로 관리하도록 한다.
4. jenkins Credentials 설정
Dashboard - Jenkins 관리 - Credentials 에서
Add Credentials를 클릭하자.
Credentials 아래에 내용대로 입력한 다음 Create를 클릭한다.
- kind:Username with Password
- scope: Global (선택사항)
- Username: gitlab user 아이디
- Password: gialab access token 값
- ID: credentials를 구분하는 id
- Description: credentials 설명
5. jenkins 프로젝트 생성
Dashboard 에서 새로운 item을 클릭하여 jenkins 프로젝트를 생성한다.
Freestyle Projectdhk 이외에 다양한 종류의 프로젝트가 있지만, 필자는 Freestyle Project를 선택해서 사용할 것 이다.
project name을 입력하고 아래의 ok버튼을 클릭하여 프로젝트를 생성한다.
생성된 프로젝트는 Dashboard 화면에서 확인이 가능하다.
6. jenkins 프로젝트 설정
a. 소스코드 관리
gitlab repository와 연동하는 부분이다. gitlab의 clone url을 Repository URL로 입력하고, 앞에서 설정한 jenkins credntials(gitlab) 를 선택한다.
이 설정을 통해 빌드 전 해당 URL에서 소스코드를 clone 해온다.
b. Build Steps
Build Steps에서 빌드 단계를 추가할 수 있고, 빌드 후 조치에 작업을 추가하면 빌드가 끝난 후 이메일 알림이나 Gitlab 빌드 상태 전송 등을 설정할 수 있다.
빌드 단계에서 Execute shell을 선택한 다음 스크립트 창에 gradle 빌드 명령어를 추가해준다.
빌드 스탭을 추가하여, 빌드-docker빌드-배포 등 단계를 커스텀하게 정의할 수 있다.
필자는 빌드만 진행하였다.
c. 빌드 테스트
jenkins 프로젝트 루트 페이지에서 지금 빌드라는 버튼을 누르면 위에서 정의한 build steps를 실행하게 된다.
버튼을 클릭하면 식별 번호가 부여되는데, 해당 빌드 번호로 들어가 console로 빌드 과정과 로그를 확인할 수 있다.
7. gitlab - jenkins 트리거 설정(빌드 자동화)
gitlab에서 push 이벤트가 발생할 때 jenkins에서 자동으로 위에서 정의한 Build Steps를 수행하도록 해보자.
a. Jenkins 빌드 유발 설정
Build when a change is pushed to GitLab을 선택해준다.
아래 고급탭을 확장한 다음 Secret Token을 생성해준다.(Generate 버튼을 클릭하면 토큰이 생성되고 버튼을 클릭할 때 마다 생성되므로 이를 주의하자.)
빌드유발 고급탭 클릭
b. Gitlab에서 트리거 설정
project - settings - 연동을 클릭하여 jenkins 프로젝트 url과 위에서 생성한 Secret token을 입력해준 다음 Add Webhook을 클릭하여 트리거를 설정해준다.
여기까지만 해주면 gitlab - jenkins 연동이 끝난다. gitlab에 push 이벤트가 발생하면 jenkins에서 자동으로 빌드를 수행하게 된다.
'DevOps > CI CD' 카테고리의 다른 글
[CI/CD] GitLab CI/CD 구축 (0) | 2024.04.24 |
---|