Jenkins 플러그인 활용 및 고급 설정

Jenkins 플러그인 활용 및 고급 설정

🔟 Jenkins 플러그인 활용 및 고급 설정

1️⃣ Jenkins 주요 플러그인 소개 및 설치

Jenkins는 플러그인을 통해 기능을 확장할 수 있습니다. 플러그인은 Jenkins의 핵심 기능을 보강하고 다양한 외부 도구와 연동을 가능하게 합니다. 여기서는 Jenkins에서 자주 사용되는 플러그인들과 그 설치 방법을 다룹니다.

1.1. Jenkins 플러그인 설치 방법

  1. Jenkins 대시보드에서 Manage Jenkins를 클릭합니다.
  2. Manage Plugins 메뉴를 선택합니다.
  3. 플러그인 관리 화면에서 Available 탭에서 필요한 플러그인을 검색하여 설치합니다.

2️⃣ Git Plugin

Git Plugin은 Jenkins에서 Git 리포지토리와 연동하여 빌드, 테스트, 배포 등 다양한 작업을 자동화하는 데 사용됩니다. 이를 통해 GitHub, GitLab, Bitbucket 등에서 코드 변경 사항을 자동으로 감지하고 빌드를 트리거할 수 있습니다.

2.1. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 Git Plugin을 검색하여 설치합니다.
  2. 설치 후, 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. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 Pipeline Plugin을 검색하여 설치합니다.
  2. 설치 후, 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. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 Blue Ocean을 검색하여 설치합니다.
  2. 설치 후, Jenkins 대시보드에서 Blue Ocean 메뉴를 선택하면 새로운 UI로 파이프라인을 시각화할 수 있습니다.

5️⃣ Slack Notification

Slack Notification 플러그인은 Jenkins 빌드 상태를 Slack 채널로 알릴 수 있게 해줍니다. 이를 통해 빌드가 성공했는지 실패했는지를 실시간으로 팀원에게 전달할 수 있습니다.

5.1. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 Slack Notification을 검색하여 설치합니다.
  2. 설치 후, Manage JenkinsConfigure 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. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 SonarQube Scanner를 검색하여 설치합니다.
  2. 설치 후, Manage JenkinsConfigure 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. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 Nexus Artifact Uploader를 검색하여 설치합니다.
  2. 설치 후, 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. 설치 방법

  1. Manage JenkinsManage PluginsAvailable 탭에서 Kubernetes Plugin을 검색하여 설치합니다.
  2. 설치 후, Manage JenkinsConfigure 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. 설정 방법

  1. Manage JenkinsConfigure System에서 필요한 설정을 추가합니다.
  2. 예를 들어, 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. 설정 방법

  1. Manage JenkinsConfigure Global Security에서 Role-Based Authorization Strategy를 활성화합니다.
  2. Manage and Assign Roles에서 사용자의 역할을 설정합니다.

1️⃣2️⃣ Jenkins 사용자 및 권한 관리

Jenkins는 각 사용자에게 권한을 부여하여 작업을 제어할 수 있습니다. 사용자마다 접근 가능한 기능을 제한할 수 있습니다.

12.1. 설정 방법

  1. Manage JenkinsConfigure Global Security에서 Matrix-based security를 선택하고, 각 사용자에게 필요한 권한을 설정합니다.

RSS Feed