본문 바로가기
DevOps/CICD

[DevOps] Jenkins , GitLab 연동(CI 생성)(2)

by Yoon_estar 2024. 12. 18.
728x90

개요

아래의 과정의 내용을 포스팅 하겠습니다. 

  1. Jenkins에서 GitLab 관련 플러그인을 설치
  2. GitLab에서 User 설정 → Access Tokens으로 들어가 API 토큰 생성
  3. Jenkins에서 Credentials → GitLab API Token을 만듦
  4. Token에 GitLab에서 만든 Token을 넣어줌
  5. Jenkins관리 → 시스템 설정
  6. GitLab 탭에서 Connection name(원하는 거), host URL (https://gitlab.com) API credentials 넣어준다.

전체 시나리오 및 개요에 관한 내용을 포스팅한 글입니다. 

2024.12.18 - [DevOps] - [DevOps] Jenkins , GitLab 연동(CI 생성)(1)

 

[DevOps] Jenkins , GitLab 연동(CI 생성)(1)

개요(버전 정보)OS : Ubuntu 24.04gitlab : 17.6.1jenkins : 2.479.2java : openjdk 17.0.13시나리오Jenkins에서 GitLab 관련 플러그인을 설치GitLab에서 User 설정 → Access Tokens으로 들어가 API 토큰 생성Jenkins에서 Credentials

www.estar987.com

 

이후 과정들을 포스팅한 글들입니다. 

 

1. Jenkins Plugin

 

1-1. Jenkins Plugin 목록

Jenkins GitLab 연동에 필요한 Plugin을 설치합니다. 목록은 아래와 같습니다. Jenkins 플러그인을 전부 설치하면 시스템이 매우 무거워지기 때문에 필수 플러그인만 설치하는 것을 권장합니다. 아래는 제가 설치한 플러그인 목록입니다. 

  • Generic Webhook Trigger Plugin
  • GitLab API Plugin
  • GitLab Plugin
  • Post build task
  • Git Push Plugin
  • Docker API Plugin
  • Docker Common Plugin
  • Docker Compose Build Step Plugin
  • Docker Pipeline
  • Docker plugin
  • SSH Agent Plugin
  • SSH Credentials Plugin
  • Pipeline : Stage View Plugin

플러그인에 대한 정보는 따로 포스팅하도록 하겠습니다. 

 

1-2. Jenkins Plugin 하는 법

  1. Jenkins 로그인
  2. Jenkins 관리 클릭 → System Configuration에 있는 Plugins 클릭
  3. 원하는 Plugin 들 check 한 후 설치

2. API TK, SSH Key 생성

 

2.1 GitLab API TK

2.1.1 GitLab Access TK 생성

왼쪽 상단의 프로필 클릭 후 Edit profile 클릭

 

 

Access tokens → Add new token
Token 명 입력 후 원하는 권한을 체크 해준 후 Token 값을 메모해둔 후 생성해준다.

 

2.1.2 Jenkins Credentials 설정

  1. Jenkins 관리 → Credentials 클릭
  2. Add credentials
  3. Kind는 GitLab API token 선택, 바로 직전 2.1.1 에서 메모해둔 API 토큰 값 입력 후 생성

2.1.3 Jenkins System configure

  • Jenkins의 시스템 구성에서 GitLab 항목에 API 토큰을 등록하면 Jenkins가 GitLab 계정 및 리포지토리를 인증하고 상호 작용가능
  • 레포지토리, 문제 및 병합 요청과 같은 GitLab 리소스에 액세스해야 하는 CI/CD 파이프라인 또는 작업을 설정할 때 특히 유용
  • Jenkins 파이프라인 프로젝트에서 빌드를 트리거하며 기타 자동화된 작업을 수행 가능
  • 이를 통해 Jenkins와 GitLab 간의 통합이 향상되어 CI/CD 프로세스가 간소화

 

  1. Jenkins 관리 → System
  2. 아래로 스크롤 후 GitLab의 Enable authentication for '/project' end-point 활성화

  3.  Test connection 클릭 후 고급 아래에 Success 문구 확인 후 Apply → 저장

 

3. SSH Key

3.1 Jenkins 계정 Server로 진입 후 공개키(pub) 생성

# su - estar987 -s /bin/bash

$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/estar987/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/estar987/.ssh/id_ed25519
Your public key has been saved in /home/estar987/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:Ujarms5vmLNr6qr0M6R6IxDfHoyxUlQSdqVfJ63W7eA estar987@kubenode213
The key's randomart image is:
+--[ED25519 256]--+
|  +oo..          |
| ..o .   .       |
| .  .   * o      |
|. o  . + B .     |
| + *  o S o .    |
|o +.+  + . o     |
|.oo. +.   E .    |
|o.++*o.          |
|*=o*X*.          |
+----[SHA256]-----+

$ ls .ssh/
authorized_keys  id_ed25519       id_ed25519.pub

$ cat .ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAWzzQQoZSIJaw/QsfkdxzSOBXTfHJEoGTk2STt5gx7K estar987@kubenode213

 

3.2 Jenkins Credentials 등록

  1. Jenkins 관리 → Credentials System → Global credentials (unrestricted)
  2. Add Credentials 클릭
  3. 위에서 확인한 pub키의 값을 복사하여 아래의 Private Key 칸에 입력

 

 

이후 Jenkins Project 생성부터는 다음 포스팅에서 다루도록 하겠습니다. 

2024.12.18 - [DevOps] - [DevOps] Jenkins , GitLab 연동(CI 생성)(3)

 

[DevOps] Jenkins , GitLab 연동(CI 생성)(3)

개요아래의 과정의 내용을 포스팅 하겠습니다.  이전 글과 이어지는 내용이기 때문에 이전에 포스팅한 글부터 참고해주세요.(아래 링크 첨부해뒀습니다.)2024.12.18 - [DevOps] - [DevOps] Jenkins , GitLab

www.estar987.com