Jenkins - Pipeline 내장 기능
페이지 정보
작성자 snow 작성일 25-03-14 09:12 조회 1,081 댓글 0본문
1. 인삿말
이 게시글에서는 Pipeline 내장 문서와 스니펫 생성기 활용법에 대한 문서를 살펴보고, 예시만 안내드리는 글입니다.
2. Pipeline 내장 문서와 스니펫 생성기의 이해
Jenkins에서 Pipeline은 다양한 플러그인과 함께 동작하며, 복잡도에 따라 여러 단계를 단순화하거나 확장해서 사용할 수 있는 강력한 기능입니다. 특히 필요한 부분을 빠르게 찾아볼 수 있도록 Jenkins는 자체적으로 제공하는 내장 문서와 스니펫 생성기 기능을 갖추고 있습니다. 이 두 가지 기능은 사용자가 직관적으로 여러 단계(스텝)와 전역 변수들을 파악하거나, 필요한 코드 스니펫을 생성해 간단히 Pipeline에 적용할 수 있도록 해줍니다.
2.1. Jenkins Pipeline 빌트인 문서의 특징
Jenkins의 Pipeline 내장 문서는 Jenkins 컨트롤러(서버)에 설치된 플러그인을 기반으로 자동 생성됩니다. 따라서 여러분이 Jenkins를 운영하면서 특정 플러그인을 추가하거나 제거하게 되면, 해당 플러그인과 관련된 Pipeline 문서 역시 자동으로 업데이트됩니다. 이 문서는 Jenkins 인터페이스에서 바로 볼 수 있도록 편리하게 구성되어 있으며, Jenkins 메인 대시보드에서 Pipeline Syntax(파이프라인 구문)라고 표시된 링크를 클릭하거나, 또는 브라우저 주소에 아래처럼 직접 접근함으로써 확인할 수 있습니다.
- 예: Jenkins 서버 주소 뒤에 /pipeline-syntax 를 붙여서 접속 예시: http://서버주소/pipeline-syntax
이 빌트인 문서에는 기본적인 Pipeline 문법, 전역 변수와 그 사용 방법, 스니펫 생성기의 사용 예시 등이 상세히 나와 있습니다. 이를 통해 Jenkins에 처음 입문하는 분뿐만 아니라, 이미 꽤 숙련된 운영자들도 필요한 정보를 빠르고 정확하게 얻을 수 있습니다.
2.2. 실제 활용 예시 (터미널 명령)
실제로 파이프라인에 대한 빌트인 문서를 빠르게 확인하기 위해서는 터미널에서 아래와 같은 명령을 시도해볼 수 있습니다.
```bash
curl -v http://서버주소/pipeline-syntax
```
위 명령을 실행할 시, 해당 경로에서 노출되는 Jenkins Pipeline 문서의 HTML 구조를 확인할 수 있으며, 어떤 정보가 자동 생성되어 있는지 미리 확인할 수 있습니다. 이를 통해 문서 접근에 어려움이 있는 경우, 혹은 구체적으로 자동화하여 스크립트 측면에서 문서를 파싱하고자 할 때 도움을 얻을 수 있습니다.
3. Snippet Generator(스니펫 생성기) 활용
Jenkins Pipeline에서 스니펫 생성기는 어떤 스텝(step)을 사용할 수 있는지 직관적으로 살펴볼 수 있게 해주는 도구입니다. 제공되는 옵션들을 통해 플러그인별로 등록된 스텝 목록을 확인하거나, 특정 스텝에 필요한 파라미터를 구성할 수 있습니다. 설정을 완료하면, 해당 스텝을 Pipeline 코드 형태로 자동 생성해주는데, 이 부분이 매우 편리합니다.
3.1. 주요 기능과 장점
- 다양한 플러그인 지원: Jenkins가 인식하고 있는 모든 플러그인의 스텝을 한눈에 확인
- 파라미터 옵션 구성: 원하는 스텝에 필요한 파라미터를 직접 입력하고 미리보기 가능
- 자동 코드 생성: 구성한 스텝을 Pipeline 코드 형태로 만들어 복사하여 붙여넣을 수 있음
- 사용자 친화적 인터페이스: 시니어 운영자는 물론, 초보자도 쉽게 접근 가능
이러한 장점을 통해 우리는 Pipeline 작성 시 실수를 줄이고, 원하는 단계만 빠르게 선택하여 적용할 수 있게 됩니다.
3.2. 스니펫 생성기 사용 방법
1. Jenkins 대시보드에서 이미 설정된 Pipeline 작업을 선택한 뒤, 사이드바에서 'Pipeline Syntax' 링크를 찾습니다.
2. 해당 링크를 클릭하면 'Snippet Generator' 인터페이스가 표시됩니다.
3. 'Sample Step' 드롭다운 목록에서 원하는 스텝을 선택합니다.
4. 스텝을 선택하면, 필요한 파라미터를 입력할 수 있는 버튼이 동적으로 표시됩니다.
5. 파라미터를 채운 뒤 'Generate Pipeline Script' 버튼을 누르면, 설정한 스텝에 대응하는 Pipeline 코드 조각이 자동 생성됩니다.
6. 생성된 코드를 복사해서 나의 Pipeline에 붙여넣으면 됩니다.
예를 들어, 데플로이(배포)를 위한 'Deploy' 스텝을 구성했다면, 스니펫 생성기가 자동으로 해당 스텝에 필요한 파라미터와 코드를 완성해줍니다. 따라서 매번 스텝 문법을 검색할 필요 없이 스니펫 생성기를 통해 간단히 해결할 수 있습니다.
3.3. 터미널에서의 확인
스니펫 생성기를 좀 더 심층적으로 확인하고자 한다면 다음과 같은 명령을 사용할 수 있습니다.
```bash
curl -v http://서버주소/pipeline-syntax
```
마찬가지로 파이프라인 관련 문서와 함께 스니펫 생성기에 대한 정보도 반환되는 구조를 살펴볼 수 있습니다. 물론 화면에서 보는 것이 더 직관적이지만, 터미널을 통해 Jenkins가 어떤 형태의 데이터를 노출하는지 로우 데이터로 확인할 수 있어, 자동화 과정에서의 디버깅 시에도 활용 가능합니다.
4. 전역 변수(Global Variable Reference) 활용
Jenkins Pipeline에는 스텝뿐 아니라 '전역 변수'라는 개념이 존재합니다. 이 전역 변수들은 Pipeline에서 특정 환경 정보나 빌드 관련 속성을 쉽게 접근하고 사용할 수 있도록 해줍니다. 전역 변수도 Snippet Generator처럼 Jenkins 플러그인에 의해 동적으로 추가되며, 해당 정보는 Jenkins의 Global Variable Reference에 문서화되어 있습니다.
4.1. 전역 변수의 예시
- env: 환경 변수를 담고 있으며, env.PATH, env.BUILD_ID 등의 형태로 접근
- params: Pipeline에 정의된 파라미터를 읽기 전용 Map 형태로 제공
- currentBuild: 현재 실행 중인 빌드 상태나 결과 등을 조회 가능(예: currentBuild.result, currentBuild.displayName)
각 전역 변수의 구체적인 속성은 Jenkins의 'Global Variable Reference' 문서를 통해 확인할 수 있습니다. 주소 형식은 아래와 같습니다.
예) http://서버주소/pipeline-syntax/globals
여기를 방문하면 env, params, currentBuild 등과 같은 변수가 실제로 어떤 속성과 메서드를 제공하는지 상세 설명과 함께 확인할 수 있어, 복잡한 로직을 짜는 데 큰 도움이 됩니다.
4.2. 터미널에서의 Global Variable Reference 확인
선호도에 따라 아래와 같은 명령을 통해 Global Variable Reference의 HTML 정보를 파악해볼 수도 있습니다.
```bash
curl -v http://서버주소/pipeline-syntax/globals
```
실행 결과로 전역 변수의 목록과 설명에 대한 HTML 응답이 출력될 것입니다. 웹 브라우저로 접근하는 것보다 가독성은 떨어질 수 있지만, 자동화 테스트 시 혹은 Jenkins 설정 스크립트와의 연동을 테스트할 때 유용하게 활용 가능합니다.
5. Declarative Directive Generator(디렉티브 생성기) 활용
Declarative Pipeline을 사용할 때에는 Scripted Pipeline과 달리, 직접 스텝(block)을 일일이 작성하는 것이 아니라 여러 기능과 디렉티브(directives)를 조합하여 좀 더 선언적인 형태로 Pipeline을 정의합니다. 이 과정에서 스니펫 생성기만으로는 해결이 힘들 수 있는데, 이때 도움을 주는 것이 바로 Declarative Directive Generator입니다.
5.1. Declarative Directive Generator 소개
- Declarative Pipeline 구조에 최적화된 폼을 제공
- stage, steps, post 같은 블록을 조금 더 상세히 구성
- 디렉티브 내부의 중첩 구조도 생성 가능
- 다만 스텝(steps) 자체는 직접 코드로 입력해야 하는 부분이 있을 수 있음
예를 들어, Declarative Pipeline에서 "stage('배포')" 안에 여러 조건문(when)이나 post 블록을 넣고 싶을 때, directive generator를 통해 어떻게 구성할지 미리 살펴보는 식입니다. 일부 블록은 중첩된 내용이 많아 코드를 손으로 치다 보면 실수가 잦은데, 이 도구를 활용하면 형태를 빠르게 잡아낼 수 있습니다.
5.2. 사용 절차
1. 이미 설정된 Pipeline 작업에 들어가 사이드바에서 'Pipeline Syntax'를 찾습니다.
2. 그리고 'Declarative Directive Generator' 링크를 클릭하거나, 웹 주소 뒤에 /directive-generator를 직접 붙여 접속합니다.
3. 화면에서 원하는 디렉티브를 선택합니다. 예: stages, when, post 등
4. 필요한 설정값을 입력한 뒤 'Generate Directive' 버튼을 누르면, Declarative Pipeline에서 사용할 수 있는 형태의 문법이 자동 생성됩니다.
5. 생성된 텍스트를 복사해 Jenkinsfile에 붙여넣고, 필요한 스텝(steps)이나 로직을 직접 추가하면 됩니다.
5.3. 코드 예시
Declarative Pipeline에서 가장 기본적인 예시는 아래와 같은 형태입니다.
```groovy
stage('Stage 1') {
steps {
echo '작업 실행'
}
}
```
여기에서 Declarative Directive Generator를 이용하면 stage 블록, when 조건, post 블록 등을 뼈대만 자동 생성할 수 있습니다. 단, 그 안에 들어가는 실제 steps(예: sh 스크립트, 배포 명령어 등)는 스니펫 생성기 또는 사용자가 직접 작성해야 합니다.
6. Pipeline 활용을 위한 추가 팁
실무에서 Jenkins Pipeline을 효율적으로 다루기 위해서는 빌트인 문서와 스니펫 생성기의 활용이 매우 중요합니다. 그 외에도 다음과 같은 방식을 고려해볼 수 있습니다.
6.1. Jenkinsfile 버전 관리
Jenkinsfile을 소스 코드와 함께 Git 등에 저장하고, 변경 이력도 함께 추적하면 문제 발생 시 빠른 복구와 히스토리 확인이 가능합니다. 또한 여러 명이 협업할 때도 충돌을 최소화하고, Pipeline의 안정성을 높일 수 있습니다.
6.2. 테스트용 Jenkins 컨트롤러 운영
실제 운영 중인 Jenkins 환경과는 별개로, 사내 스테이징이나 개인용 VM에 간단한 Jenkins 컨트롤러를 구성하여 새 플러그인이나 신기능을 실험해보는 것이 좋습니다. 스니펫 생성기로 생소한 스텝을 테스트하거나, Declarative Directive Generator로 다양한 설정을 시도해볼 때 활용하기에 안성맞춤입니다.
7. 마무리
지금까지 Jenkins Pipeline에 내장된 문서와 스니펫 생성기, 그리고 Declarative Directive Generator에 대해 살펴보았습니다. 다시금 이 기능들의 역할과 장점을 상기하며 더욱 효율적인 Jenkins 환경을 구성해보시기 바랍니다.
이 두 가지 빌트인 기능(문서와 스니펫/디렉티브 생성기)은 Jenkinsfile을 작성하거나 Pipeline을 확장할 때 실수를 크게 줄여주며, 빠른 코드 생성을 돕습니다. 필요한 정보를 모두 제대로 숙지한다면, 이후에는 아주 복잡한 CI/CD 환경도 손쉽게 관리하고 자동화할 수 있을 것입니다.
출처: [Jenkins] https://www.jenkins.io/doc/book/installing/docker (CC BY-SA 4.0)
관련링크
댓글목록 0
등록된 댓글이 없습니다.
