Jenkins DSL 플러그인으로 집중된 작업 구성

기관들은 젠킨스를 점차 채택하여 빌드 및 테스트 프로세스를 자동화하고 있으며, 이로 인해 수동으로 젠킨스 작업을 관리하는 것이 어려워지고 있습니다. 좋은 소식은 젠킨스 DSL 플러그인이 도메인별 특정 언어(Domain Specific Language, DSL) 구문을 사용하여 젠킨스 작업을 정의할 수 있도록 해준다는 것입니다.

젠킨스 DSL을 사용하면 작업을 버전 관리 시스템에 저장하고 다른 사용자와 공유하며 템플릿에서 새로운 작업을 생성할 수 있습니다. 이 튜토리얼에서는 젠킨스 DSL 플러그인을 활용하여 응용 프로그램 개발을 자동화하는 데 도움을 받는 방법을 배우게 됩니다.

계속 읽어보면 젠킨스 UI를 번거롭게 사용하여 작업을 만들 필요가 없어집니다!

전제 조건

이 튜토리얼은 실습을 중심으로 진행됩니다. 함께 따라하려면 다음 사항을 준비해야 합니다.

  • A Linux machine – This guide uses Ubuntu 20.04.
  • Java 11+ 및 리눅스 머신에 설치된 젠킨스. Linux
  • Git을 Git 저장소와 통합하는 방법입니다.
  • 파이프라인:Job은 지속적인 전달 파이프라인을 구현하고 통합하는 데 사용되는 플러그인 모음을 추가하는 것입니다.

Jenkins DSL 플러그인 설치하기

작업 간 일관성을 유지하는 것은 어려울 수 있지만, Jenkins DSL 플러그인은 이 문제를 해결합니다. 어떻게? 작업을 프로그래밍적 형태로 정의하여 인간이 읽을 수 있는 파일로 정의할 수 있도록 허용함으로써입니다.

그러나 작업을 만들기 전에 먼저 Jenkins DLS 플러그인을 설치해야 합니다:

1. Jenkins 서버로 SSH하여 아래 명령을 실행하여 필요한 Java 버전이 설치되어 있는지 확인하고 jenkins 서비스가 실행 중인지 확인하십시오.

java -version && systemctl status jenkins

아래와 유사한 출력을 볼 수 있다면 Jenkins DSL 플러그인을 설치할 준비가 되었습니다.

Checking Java version and Jenkins status

2. 다음으로, 웹 브라우저를 열고 http://your_server_ip:8080/pluginManager/available 로 이동하십시오. your_server_ip:8080 를 사용 중인 Jenkins 서버의 실제 IP 주소와 포트 번호로 교체하십시오.

3. 마지막으로, 다음을 사용하여 Jenkins DSL 플러그인을 설치하십시오:

  • 아래에 표시된 대로, 오른쪽 상단의 검색 상자에 Job DSL을 입력하십시오.

이미 Job DSL 플러그인을 설치하고 이전 버전에서 업그레이드했다면 Job DSL 스크립트는 Job DSL을 검색할 때 목록에 표시되지 않습니다. 플러그인 Job DSL이 있는지 확인하려면 http://your_server_ip:8080/pluginManager/installed 로 이동할 수 있습니다.

  • Job DSL 옵션 옆의 확인란을 선택하십시오.
  • 아래쪽에 있는 다시 시작 없이 설치를 클릭하여 Jenkins Job DSL 플러그인을 설치하십시오.
Installing the Jenkins DSL plugin

플러그인을 설치하는 동안 Jenkins UI에서 진행률 표시줄이 표시됩니다. 설치가 완료되면 아래와 유사한 성공 메시지가 표시됩니다.

Viewing Jenkins DLS Plugin Installation Progress

Jenkins DSL 플러그인을 사용하여 Jenkins 시드 작업 만들기

Jenkins DSL 플러그인을 설치했으므로 Jenkins 시드 작업을 만들어 보세요. 기본 Job DSL 스크립트를 작성하고 해당 스크립트를 Jenkins 시드 작업에 통합하십시오. Jenkins 콘솔에 ‘Hello World!’ 메시지를 출력하는 freestyle 작업을 만들 것입니다.

Jenkins 시드 작업에 Job DSL 스크립트를 통합하려면:

1. Jenkins 대시 보드로 이동하고 왼쪽 사이드바에서 새 항목을 클릭합니다. 브라우저가 새 항목을 생성할 수 있는 페이지로 이동합니다 (단계 두).

Adding a New Item

2. 다음으로 다음을 포함하여 새 항목을 만듭니다:

  • 아래에 표시된대로 항목 이름을 입력합니다. 그러나 이 자습서에서는 항목 이름을 seed로 설정합니다.
  • 아래 옵션 중에서 반복 가능한 빌드 작업, 스크립트 또는 파이프라인인 “Freestyle 프로젝트”를 선택합니다.
  • 새 항목을 만들려면 아래쪽의 OK를 클릭하고 브라우저가 새 항목의 구성 페이지로 이동합니다.
Creating seed job

3. 새 항목의 구성 페이지에서 다른 모든 섹션에 대한 기본 설정을 유지합니다.

아래로 스크롤하여 빌드 섹션으로 이동하고 “빌드 단계 추가” 드롭다운 버튼을 클릭한 다음 “작업 DSL 처리”를 선택합니다. 이렇게 하면 DSL 스크립트를 제공할 수 있는 옵션이 열립니다 (단계 네).

Selecting process job DSLs

4. 이제 아래에 표시된대로 “제공된 DSL 스크립트 사용” 옵션을 선택하고 다음 코드 블록을 필드에 채웁니다.

이 코드 블록은 “Hello World” 메시지를 출력하기 위해 셸 단계를 사용하는 jenkins-job-demo-1이라는 프리스타일 작업 정의입니다. 작업의 이름이 Jenkins UI에 표시됩니다.

// Sets the API method you want to use (job)
job('jenkins-job-demo-1') { // Sets the name of the job to jenkins-job-demo-1
	// Define what the job does
  steps {
		// Prints a message
    shell('echo Hello World! This job is working!!')
  }
}

Jenkins 작업의 다양한 유형을 생성하는 데 사용할 수 있는 많은 방법이 있으며, 이를 공식 문서에서 찾을 수 있습니다.

Providing the DSL Script

5. 새 항목(시드)의 구성을 저장하려면 페이지 하단에 있는 저장을 클릭합니다.

Saving Configuration

6. 마지막으로, 생성한 시드 작업이 있는지 확인하기 위해 Jenkins 대시보드로 이동합니다. 아래에 표시된 대로입니다.

Verifying the seed Job

시드 작업 실행

시드 작업을 성공적으로 생성하고 확인했습니다. 그러나 작업이 작동하는지 어떻게 알 수 있을까요? “Jenkins DSL 플러그인을 사용하여 Jenkins 시드 작업 생성” 섹션의 네 번째 단계에서 제공한 DSL 스크립트를 사용하여 시드 작업을 실행합니다.

1. Jenkins 대시보드에서 시드 작업을 클릭하여 해당 구성 페이지로 이동합니다.

Navigating into the seed Job Page

2. 다음으로, 왼쪽 사이드바에서 지금 빌드를 클릭하여 작업을 실행합니다.

Running the Seed Job

3. 페이지를 새로 고치려면 F5를 누릅니다. 아래에 표시된 대로 빌드 기록 섹션에 새 빌드가 나타나며, 하단 왼쪽에 성공 상태(녹색 확인)가 표시됩니다.

이 출력은 시드 작업이 성공적으로 실행되어 생성된 새로운 Jenkins 작업(jenkins-job-demo-1)을 생성했음을 나타냅니다.

Viewing the See Job Works and Generated a New Job

4. 이제 Jenkins 대시보드로 이동합니다. 아래에 표시된 대로, 시드 작업에 의해 생성된 새 Jenkins 작업(jenkins-job-demo-1)이 표시됩니다.

새로 생성된 작업을 클릭하여 해당 구성 페이지에 액세스합니다.

Verifying See Job’s Generated Job

5. 지금 빌드를 클릭하여 생성된 작업(jenkins-job-demo-1)을 실행합니다.

Running the Generated Job (jenkins-job-demo-1)

6. 마지막으로, 빌드 히스토리 섹션 아래에 성공적으로 빌드된 옆에 있는 화살표 아래 버튼을 클릭하십시오. 아래에서 볼 수 있듯이, 컨텍스트 메뉴에서 콘솔 출력을 선택하여 작업의 출력을 볼 수 있습니다.

Accessing Console Output of the Generated Job (jenkins-job-demo-1)

생성된 작업이 작동하면 아래에 표시된 것처럼 “Hello World! This job is working!!”라는 메시지가 표시됩니다. 이 메시지는 Job DSL 스크립트에서 정의한 메시지입니다.

이 시점에서 Job DSL 플러그인을 사용하여 Jenkins 작업을 성공적으로 생성하고 실행했습니다!

Viewing Console Output

Jenkins DSL 플러그인을 사용하여 CI/CD 파이프라인을 위한 작업 만들기

지금까지 Job DSL 플러그인을 사용하여 Jenkins 프리스타일 작업을 만들고 실행하는 방법을 배웠습니다. Jenkins 작업을 만들어 CI/CD 파이프라인을 위한 작업을 만들어 소프트웨어 개발 프로세스의 비인간적인 부분을 자동화할 것입니다.

구체적으로, GitHub 저장소에서 코드를 가져 오고 코드를 빌드하고 단위 테스트를 실행하는 작업을 만듭니다.

Jenkins CI/CD 파이프라인을 위한 Jenkins 작업을 만들려면:

1. 웹 브라우저에서 http://your_server_ip:8080/job/seed/configure로 이동하여 시드 작업을 구성하십시오.. your_server_ip를 Jenkins 서버 IP 주소로, seed를 작업 이름으로 바꿉니다.

2. 다음으로, 빌드 섹션으로 스크롤하여 DSL 스크립트 필드를 찾고 다음 코드로 기존 내용을 교체하십시오.

job('jenkins-job-demo-2') {
    steps {
        shell('echo Hello World!')
    }
}

pipelineJob('github-demo') {
    definition {
        cpsScm {
            scm {
                git {
                    remote {
                        github('jenkinsci/pipeline-examples')
                    }
                }
            }
            scriptPath('declarative-examples/simple-examples/environmentInStage.groovy')
        }
    }
}

코드를 추가한 후 변경 사항을 저장하려면 저장을 클릭하십시오.

Providing DSL Script for a Pipeline

3. 다음 화면의 왼쪽 사이드바에서 ‘지금 빌드’를 클릭하여 시드 작업을 다시 실행하세요. 아래 ‘빌드 기록’ 섹션(왼쪽 하단)에서 시드 작업이 성공적으로 실행된 것을 확인할 수 있습니다.

새로운 빌드(#2)를 클릭하여 빌드 구성 페이지에 액세스하세요.

Rerunning the seed Job

4. 이제 새로운 빌드의 ‘콘솔 출력’으로 이동하세요. 여기에 ‘항목 추가됨’ 메시지와 새 작업의 이름이 표시됩니다.

이 출력은 새 파이프라인 작업이 성공적으로 추가된 것을 나타냅니다.

Verifying the New Pipeline Job was Added Successfully

5. Jenkin 대시보드로 돌아가면 새로 추가된 파이프라인 작업(jenkins-job-demo-2)이 작업 목록에 표시됩니다. 해당 새 파이프라인 작업을 클릭하여 작업의 구성 페이지에 액세스하세요.

Verifying the New Jenkins Job Exists

6. 마지막으로 새로운 파이프라인 작업을 실행하려면 ‘지금 빌드’를 클릭하세요. 빌드 기록 섹션에서 작업이 성공적으로 실행된 것을 확인할 수 있습니다.

작업 옆의 드롭다운 화살표를 클릭하고 ‘콘솔 출력’을 선택하세요.

Running the New Jenkins Job

콘솔 출력에서 작업의 출력을 확인할 수 있습니다. 여기에는 Jenkins가 리포지토리를 성공적으로 복제하고 코드를 빌드하며 단위 테스트를 실행했음을 나타내는 내용이 있습니다.

Viewing Console Output of the Pipeline Job

결론

이 튜토리얼에서는 Job DSL 플러그인을 사용하여 Jenkins 작업을 만드는 방법을 학습했습니다. Jenkins Pipeline 플러그인을 사용하여 CI/CD 파이프라인을 만들어 응용 프로그램 개발을 향상시키는 방법에 대해 알아보았습니다.

Job DSL 플러그인과 Jenkins 파이프라인 플러그인은 함께 작동하여 Jenkins 작업과 빌드 파이프라인을 효과적으로 관리할 수 있는 강력한 방법을 제공합니다. 빌드 프로세스의 일부로 Jenkins 작업을 자동으로 트리거하는 정교한 빌드 파이프라인을 생성하기 위해 이러한 플러그인을 구성하지 않는 것이 어떨까요?

Source:
https://adamtheautomator.com/jenkins-dsl/