Jenkins 플러그인 활용 및 고급 설정
🔟 Jenkins 플러그인 활용 및 고급 설정
1️⃣ Jenkins 주요 플러그인 소개 및 설치
Jenkins는 플러그인을 통해 기능을 확장할 수 있습니다. 플러그인은 Jenkins의 핵심 기능을 보강하고 다양한 외부 도구와 연동을 가능하게 합니다. 여기서는 Jenkins에서 자주 사용되는 플러그인들과 그 설치 방법을 다룹니다.
1.1. Jenkins 플러그인 설치 방법
- Jenkins 대시보드에서 Manage Jenkins를 클릭합니다.
- Manage Plugins 메뉴를 선택합니다.
- 플러그인 관리 화면에서 Available 탭에서 필요한 플러그인을 검색하여 설치합니다.
2️⃣ Git Plugin
Git Plugin은 Jenkins에서 Git 리포지토리와 연동하여 빌드, 테스트, 배포 등 다양한 작업을 자동화하는 데 사용됩니다. 이를 통해 GitHub, GitLab, Bitbucket 등에서 코드 변경 사항을 자동으로 감지하고 빌드를 트리거할 수 있습니다.
2.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
Git Plugin
을 검색하여 설치합니다. - 설치 후, Jenkins Job에서 Source Code Management 섹션에 Git을 선택하고, GitHub URL 및 인증 정보를 입력합니다.
2.2. 예제
pipeline {
agent any
stages {
stage('Clone Git Repository') {
steps {
git url: 'https://github.com/your-repository.git', branch: 'main'
}
}
// 빌드 및 테스트 단계
}
}
3️⃣ Pipeline Plugin
Pipeline Plugin은 Jenkins에서 파이프라인을 정의하고 실행할 수 있게 해주는 플러그인입니다. Jenkinsfile을 통해 여러 단계로 나누어 빌드, 테스트, 배포를 자동화할 수 있습니다.
3.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
Pipeline Plugin
을 검색하여 설치합니다. - 설치 후, Jenkins의 New Item에서 Pipeline을 선택하고 Jenkinsfile을 설정합니다.
3.2. 예제
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building the project'
}
}
stage('Test') {
steps {
echo 'Running tests'
}
}
stage('Deploy') {
steps {
echo 'Deploying the project'
}
}
}
}
4️⃣ Blue Ocean
Blue Ocean은 Jenkins의 최신 UI로, 파이프라인을 시각적으로 표현하고, 사용자가 쉽게 작업할 수 있도록 돕습니다. 파이프라인의 각 단계를 드래그 앤 드롭 방식으로 관리할 수 있습니다.
4.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
Blue Ocean
을 검색하여 설치합니다. - 설치 후, Jenkins 대시보드에서 Blue Ocean 메뉴를 선택하면 새로운 UI로 파이프라인을 시각화할 수 있습니다.
5️⃣ Slack Notification
Slack Notification 플러그인은 Jenkins 빌드 상태를 Slack 채널로 알릴 수 있게 해줍니다. 이를 통해 빌드가 성공했는지 실패했는지를 실시간으로 팀원에게 전달할 수 있습니다.
5.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
Slack Notification
을 검색하여 설치합니다. - 설치 후, Manage Jenkins → Configure System에서 Slack Webhook URL을 설정합니다.
5.2. 예제
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building the project'
}
}
}
post {
success {
slackSend (channel: '#your-channel', message: 'Build Success!')
}
failure {
slackSend (channel: '#your-channel', message: 'Build Failed!')
}
}
}
6️⃣ SonarQube Scanner
SonarQube Scanner는 코드 품질을 분석하고 결과를 SonarQube 대시보드에 보여주는 플러그인입니다. 이를 통해 코드 품질을 지속적으로 모니터링할 수 있습니다.
6.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
SonarQube Scanner
를 검색하여 설치합니다. - 설치 후, Manage Jenkins → Configure System에서 SonarQube 서버를 설정합니다.
6.2. 예제
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building the project'
}
}
stage('Code Quality Analysis') {
steps {
script {
// SonarQube 분석 명령
sh 'mvn sonar:sonar'
}
}
}
}
}
7️⃣ Nexus Repository Manager
Nexus Repository Manager 플러그인은 빌드 아티팩트를 관리하는 데 유용합니다. 빌드 후 생성된 아티팩트를 Nexus에 업로드하여 다른 프로젝트에서 재사용할 수 있습니다.
7.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
Nexus Artifact Uploader
를 검색하여 설치합니다. - 설치 후, Jenkins의 Post-build Actions에서 Nexus 업로드 옵션을 설정합니다.
7.2. 예제
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building the project'
}
}
}
post {
success {
nexusPublisher(
nexusInstanceId: 'your-nexus-id',
nexusRepository: 'your-repository',
packages: [
[
$class: 'MavenArtifact',
artifactId: 'your-artifact',
version: '1.0.0',
filePath: 'target/your-artifact.jar'
]
]
)
}
}
}
8️⃣ Kubernetes Plugin
Kubernetes Plugin은 Jenkins와 Kubernetes 클러스터를 연동하여 Jenkins Agent를 Kubernetes Pod로 자동화하여 실행하는 기능을 제공합니다.
8.1. 설치 방법
- Manage Jenkins → Manage Plugins → Available 탭에서
Kubernetes Plugin
을 검색하여 설치합니다. - 설치 후, Manage Jenkins → Configure System에서 Kubernetes 클러스터 정보를 설정합니다.
8.2. 예제
pipeline {
agent {
kubernetes {
label 'my-pod'
defaultContainer 'jnlp'
}
}
stages {
stage('Build') {
steps {
echo 'Building in Kubernetes pod'
}
}
}
}
9️⃣ Jenkins 글로벌 설정 (Manage Jenkins 설정 옵션)
Jenkins 글로벌 설정은 Jenkins 환경을 설정하는 곳으로, 관리자가 Jenkins의 동작 방식 및 플러그인 동작 방식을 설정할 수 있습니다. 예를 들어, 이메일 서버 설정, JDK 및 Maven 경로 설정 등이 있습니다.
9.1. 설정 방법
- Manage Jenkins → Configure System에서 필요한 설정을 추가합니다.
- 예를 들어, Email Notification을 설정하려면, SMTP 서버 정보를 입력하고, 이메일 발송 기능을 활성화합니다.
🔟 Jenkins의 REST API 활용 (/api/json, curl 예제)
Jenkins는 REST API를 통해 외부 시스템과 연동할 수 있습니다. curl
을 이용하여 Jenkins 정보를 요청하거나 빌드를 트리거할 수 있습니다.
10.1. 예제
curl -X POST http://your-jenkins-url/job/your-job-name/build
10.2. 빌드 상태 조회
curl http://your-jenkins-url/job/your-job-name/lastBuild/api/json
1️⃣1️⃣ Role-Based Access Control (RBAC) 설정
RBAC는 Jenkins에서 사용자별로 권한을 관리하는 기능입니다. 이를 통해 특정 사용자에게만 빌드 실행 권한, 관리 권한 등을 부여할 수 있습니다.
11.1. 설정 방법
- Manage Jenkins → Configure Global Security에서 Role-Based Authorization Strategy를 활성화합니다.
- Manage and Assign Roles에서 사용자의 역할을 설정합니다.
1️⃣2️⃣ Jenkins 사용자 및 권한 관리
Jenkins는 각 사용자에게 권한을 부여하여 작업을 제어할 수 있습니다. 사용자마다 접근 가능한 기능을 제한할 수 있습니다.
12.1. 설정 방법
- Manage Jenkins → Configure Global Security에서 Matrix-based security를 선택하고, 각 사용자에게 필요한 권한을 설정합니다.