1. Pipeline Project생성
1. Pipeline Project

CI/CD 파이프라인 구성 시 Maven Porject에 비해 확장성 및 자동화 측면에서 훨씬 자주 사용되는 프로젝트로 젠킨스 프로젝트에서 사실상 표준처럼 사용되는 프로젝트이다
Maven Project에서는 CI/CD인프라를 UI를 통해 관리했다면, Pipeline Project는 DSL 및 Jenkinsfile을 이용하여 코드형태로 CI/CD 인프라를 관리한다.
2. Pipeline Project 생성
1) 플러그인 설치


2) 프로젝트 생성

3) Pipeline Script작성

4) 빌드 후 결과 확인

3. PipeLine Script
소프트웨어의 전체 CI/CD 단계를 자동화하고 이를 코드를 통해 관리하도록 도와주는 Jenkins의 핵심기능입니다.
파이프라인을 코드로 정의함으로써 Git과 같은 형상 관리 시스템을 통해 버전 관리, 코드 리뷰, 협업 등을 효율적으로 수행할 수 있습니다. 이는 Infrastructure as Code와 유사하게 CI/CD 파이프라인 자체를 코드화하여 관리합니다.(Infra as Code)
1) DSL문법과 Jenkinsfile
DSL(Domain Specific Language)
Pipeline스크립트를 작성하는데 사용되는 스크립트 문법
Groovy기반의 문법이며, Jenkins에서만 사용가능하다.
사용자 편의를 위해 Pipeline Syntax Generator기능을 제공하여 복잡한 스크립트 코드를 쉽게 생성할 수 있다.
코드생성 예시

Jenkinsfile
DSL문법을 사용하여 CI/CD 파이프라인을 정의한 텍스트 파일. 일반적으로 프로젝트의 루트디렉토리에 관리한다.
GIT으로 형상관리가 가능하기 때문에 협업 및 유지보수에 좋다.
파이프라인이 코드로 정의되어 있어, 다른 환경에서도 동일한 빌드 및 배포과정을 손쉽게 재현할 수 있다.
2) Agent와 Stage
Agent
파이프라인의 각 단계를 실행할 작업환경(노드)를 정의하는 키워드
agent any : 사용 가능한 모든 에이전트 중 하나를 임의로 선택하여 파이프라인 전체를 실행
젠킨스는 기본적으로 controller(master)라는 이름의 노드를 하나 가지고 있기 때문에, agent any 설정시 controller노드가 작업을 수행한다.
대규모 어플리케이션에서는 여러 개의 노드를 추가로 설치하여 노드별로 작업을 분산처리한다.
Stage
CI/CD 파이프라인의 논리적인 단계를 의미한다. 각 단계는 해당 단계에 맞는 목적의 집합으로, 파이프라인의 각 단계를 Stage로 나누어 가독성을 높이고 진행상태를 한눈에 파악할 수 있또록 해준다.
4. Maven Project의 CI/CD를 Code화
1) 도커 파이프라인 플러그인 설치

2) 도커허브 접속용 인증 키 추가
젠킨스 관리 - Credentials - System - Global credentials - Add credential
ID에 오타가 나지 않도록 주의 (DockerHub_Credential)

3) 파이프라인 스크립트 추가
도커 이미지, 깃허브 url, 소나큐브 url은 본인계정에 맞게 수정 필요.
4) 빌드 후 결과 확인

Last updated