반응형
1. Jenkins에서 GitHub 및 GitLab 인증 연동하기
Jenkins를 사용해 GitHub이나 GitLab의 리포지토리와 통합하고 파이프라인을 자동화하려면 인증 설정이 필요합니다. 이번 글에서는 GitHub과 GitLab에 대한 인증 방법과 Jenkins 파이프라인 설정까지 설명하겠습니다.
2. GitHub 및 GitLab 인증 방식
GitHub과 GitLab에 접근하기 위해서는 Jenkins에서 OAuth 토큰이나 SSH 키를 통해 인증할 수 있습니다. 두 가지 방식 모두 보안성이 뛰어나며, 각 상황에 맞는 방식을 선택할 수 있습니다.
- OAuth 토큰 방식: GitHub 또는 GitLab에서 생성한 개인 액세스 토큰을 사용합니다.
- SSH 키 방식: Jenkins 서버와 리포지토리 간에 SSH 키를 사용해 인증합니다.
3. GitHub 연동하기
3.1 GitHub Access Token 발급
- GitHub에 로그인 후, Settings > Developer settings > Personal access tokens로 이동합니다.
- Generate new token을 클릭하고, 필요한 권한을 선택해 토큰을 생성합니다. (보통
repo
,admin:repo_hook
권한 필요) - 생성된 토큰을 복사해 두세요. 이 토큰은 한 번만 표시되므로 잃어버리면 재생성이 필요합니다.
3.2 Jenkins에 GitHub Access Token 등록
- Jenkins 대시보드에서 Manage Jenkins > Manage Credentials로 이동합니다.
- Global credentials에서 Add Credentials를 클릭합니다.
- Kind는
Secret text
로 설정하고, Secret에 아까 복사한 GitHub Access Token을 입력합니다. - ID와 Description을 지정해 나중에 구분하기 쉽게 설정합니다.
4. GitLab 연동하기
4.1 GitLab Access Token 발급
- GitLab에서 로그인 후 Settings > Access Tokens로 이동합니다.
- 토큰 이름을 작성하고, 필요한 Scope를 선택합니다 (
api
,read_repository
,write_repository
등). - 생성된 토큰을 복사해 둡니다.
4.2 Jenkins에 GitLab Access Token 등록
- Jenkins의 Manage Jenkins > Manage Credentials로 이동합니다.
- Global credentials에서 Add Credentials를 선택합니다.
- Kind를
Secret text
로 설정하고, Secret에 GitLab Access Token을 입력합니다. - ID와 Description을 입력하여 나중에 관리하기 쉽게 합니다.
5. Jenkins 파이프라인 작성 예시
GitHub 또는 GitLab의 저장소를 빌드하고 배포하는 Jenkins 파이프라인을 작성해보겠습니다.
pipeline {
agent any
stages {
stage('Checkout') {
steps {
// GitHub 또는 GitLab 리포지토리에서 코드 체크아웃
git branch: 'main',
url: 'https://github.com/username/repository.git',
credentialsId: 'GitHub-Token-ID'
}
}
stage('Build') {
steps {
echo 'Building...'
// 빌드 명령어 (예: Gradle, Maven 등)
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
// 배포 명령어 (예: Kubernetes, Docker 등)
}
}
}
}
위의 credentialsId
값은 Jenkins의 Credentials에 등록한 ID를 입력하면 됩니다. branch
와 url
은 본인의 리포지토리에 맞게 수정해주세요.
6. 마무리
Jenkins에서 GitHub 및 GitLab 리포지토리를 연동하고 파이프라인을 설정하는 방법을 알아봤습니다. 인증 방식으로 OAuth 토큰과 SSH 키가 있으며, 각 저장소의 토큰을 Jenkins의 Credentials로 추가하고 파이프라인에서 credentialsId
를 사용해 참조하는 구조입니다.
위의 방법을 통해 간단히 GitHub 및 GitLab 연동을 자동화할 수 있으며, 파이프라인에서 빌드와 배포 프로세스를 정의할 수 있습니다.
반응형
'IT 지식' 카테고리의 다른 글
WSL(Windows Subsystem for Linux)에서 SSH 설정하기 (10) | 2024.11.14 |
---|---|
[Kubernetes] 쿠버네티스(Kubernetes)란 무엇인가 (2) | 2024.11.12 |
[Jenkins] CI/CD 환경 구축하기 (8) | 2024.11.08 |
웹 접근성(Web Accessibility)이란 (8) | 2024.11.07 |
WSL(Windows Subsystem for Linux) 설치 및 설정 (0) | 2024.10.29 |