0. 개요
본 글에서는 Jenkins에서 GitLab 저장소에 접근하여 소스코드를 가져오고, 빌드 / 배포 등의 작업을 수행할 수 있도록 설정하는 방법에 대해 작성하겠습니다.
1. GitLab Access Token 발급
먼저, GitLab에 접속 후 우측 상단 프로필에서 Edit profile이나 Preferences 둘 중 아무 버튼을 클릭합니다.
다음으로, Access Tokens 에 접속한 후 토큰을 발급합니다.
필요한 권한을 선택하여 발급합니다. (저는 write_repository 권한을 제외하고 모두 선택했습니다.)
Scopes에 적혀있는 각 권한에 대한 설명은 아래와 같습니다.
api
이 권한은 토큰을 사용하여 GitLab API에 대한 전체 접근을 허용합니다. 사용자는 API를 통해 사용자 정보를 조회하거나 수정할 수 있고, 프로젝트, 이슈, 머지 리퀘스트 등을 관리할 수 있습니다. Jenkins와 같은 외부 시스템에서 GitLab을 통합 관리할 때 필요한 가장 광범위한 권한입니다.
read_user
이 권한은 사용자의 정보를 읽는 것을 허용합니다. 예를 들어, 사용자의 이메일, 사용자 그룹, 프로필 정보 등을 조회할 수 있습니다. 이 권한은 주로 사용자에 대한 정보가 필요할 때 요구됩니다.
read_api
이 권한은 GitLab API의 읽기 작업에 대한 접근을 허용합니다. api 권한보다 제한적이며, 수정이나 삭제는 불가능하고 데이터 조회만 가능합니다. 설정, 프로젝트 상태, 구성 등의 읽기 전용 정보에 접근할 때 사용됩니다.
read_repository
이 권한은 GitLab 저장소의 코드를 읽는 것을 허용합니다. 소스 코드를 복제(clone)하거나 브랜치를 체크아웃(checkout)하는 등의 작업에서 필요합니다. 빌드 서버나 CI/CD 시스템에서 소스 코드 접근이 필요할 때 주로 사용됩니다.
write_repository
이 권한은 저장소에 쓰기 작업을 수행할 수 있게 합니다. 예를 들어, 새로운 커밋을 푸시(push)하거나 브랜치를 생성하는 작업에 필요합니다. 개발 워크플로우에서 자동화된 코드 업데이트나 머지 리퀘스트 생성 등을 처리할 때 필요한 권한입니다.
이후, 생성된 토큰을 메모장 등에 복사해둡니다.
2. GitLab 플러그인 설치
Jenkins에 접속하여 Jenkins관리 > Plugins 로 이동합니다.
Available Plugins에서 GitLab을 검색하고 설치합니다. 만약, Git 플러그인이 설치되어 있지 않다면 추가적으로 Git 플러그인도 설치해줍니다. 설치가 되었다면 Jenkins를 재시작합니다.
3. Credentials 생성
Credentials를 생성하기 위해 Jenkins 관리 > Credential 로 이동합니다.
Stores scoped to Jenkins에서 (global)을 누르고, 우측 상단의 Add Credentials 파란 버튼을 클릭합니다.
Kind는 GitLab API token / Scope 는 Global로 작성하고, API token에는 이전에 1. GitLab Access Token 발급 에서 발급해두었던 토큰을 붙여넣고 생성합니다.
Username with password Credentials도 만들어주기 위해 다시 한 번 Add Credentials 버튼을 클릭합니다. Kind는 Username with password / Scope는 Global로 작성하고, GitLab의 Username과 Password를 입력 후 생성해줍니다.
결과적으로, 위의 사진 처럼 2개의 Credentials이 생성됩니다.
GitLab 관련 Credentials 각각의 역할은 다음과 같습니다.
GitLab API Token ← GitLab의 다양한 API 기능을 사용하기 위해
이 토큰은 Jenkins가 GitLab의 API를 사용하여 GitLab과 상호 작용할 수 있도록 해줍니다. 예를 들어, 빌드 상태를 GitLab에 보고하거나, Merge Request를 자동으로 생성하고 관리하는 등의 작업을 수행할 때 필요합니다. API 토큰은 GitLab에서 생성하고, 이를 Jenkins의 Credentials로 저장하여 사용합니다.
Username with password ← Git 리포지토리의 코드에 접근하고, 코드 변경 사항을 다루기 위해
이 Credentials는 Git 저장소에 접근할 때 사용됩니다. Jenkins가 소스 코드를 체크아웃하거나, 브랜치에 푸시하는 등의 작업을 수행할 때 필요합니다. 일반적으로 사용자 이름과 비밀번호는 GitLab 계정의 사용자 이름과 비밀번호 또는 특별히 생성된 액세스 토큰을 사용합니다.
4. GitLab Connections 설정
이번에는 GitLab Connections를 설정하기 위해 Jenkins 관리 > System 으로 이동합니다.
Connection name / GitLab Host URL을 입력하고, Credentials은 3. Credentials 생성 에서 만들어두었던 것을 선택하면 됩니다.
전부 입력 후 우측 하단에 Test Connection 버튼을 클릭했을 때, 좌측 하단에 Success가 출력되면 완료입니다.
다음 글에서는 Freestyle 프로젝트를 만드는 방법에 대해 설명하겠습니다.
'🧑🏻💻 Develop > Devops' 카테고리의 다른 글
[Jenkins] 설치 및 실행하기 (0) | 2024.04.28 |
---|---|
[CI/CD] Elastic Beanstalk + Github Actions + Spring Boot CI/CD 적용기 (1) | 2023.10.15 |