본문 바로가기
VCS/CICD

젠킨스 코드형 파이프라인 이해

by Jinger 2025. 1. 1.

서론

    효율적인 DevOps 환경에서는 다양한 시스템 간의 통신과 자동화를 위해 API 인증 및 웹훅과 같은 도구를 활용한다. 이를 통해 젠킨스, 깃허브, 깃랩 등에서의 워크플로를 원활하게 통합할 수 있다.


API 인증

   API 인증은 시스템 간의 안전한 통신을 보장하기 위해 사용된다. 이를 통해 서버나 애플리케이션은 각 사용자의 신원을 확인하고 적절한 권한을 부여할 수 있다.

  • API 키: 클라이언트가 서버와 상호작용하기 위해 사용하는 고유한 문자열이다.
  • 액세스 토큰: OAuth와 같은 인증 프로토콜을 통해 발급받으며, 더 안전한 인증 방식으로 널리 사용된다.

깃허브 리포지터리에 API 인증 적용

   깃허브에서는 개인 액세스 토큰(Personal Access Token, PAT)을 사용해 API 호출을 인증한다. 이는 비밀번호 대신 사용할 수 있으며, 더 높은 보안성을 제공한다.

  1. 토큰 생성
    • 깃허브 설정 > Developer Settings > Personal Access Tokens에서 토큰 생성.
    • 토큰에 필요한 권한(예: repo, workflow)을 선택.
  2. 토큰 사용
    • HTTPS 인증 시:
      git clone https://<token>@github.com/username/repository.git
      
  •  

Windows 자격 증명 관리자와 API 토큰 사용 방법(비공개 깃허브)

  1. 깃허브 토큰 생성
    • 깃허브 계정에서 Personal Access Token (PAT) 생성:
      • 깃허브 설정 → Developer SettingsPersonal Access TokensGenerate new token.
      • 필요한 권한(예: repo, workflow)을 선택 후 토큰 생성.
  2. Windows 자격 증명 관리자에 토큰 추가
    • 자격 증명 관리자(Credential Manager) 실행:
      • Windows 검색창에 "자격 증명 관리자" 입력 후 실행.
    • Windows 자격 증명 탭 선택 → 새 자격 증명 추가 클릭.
    • 인터넷 또는 네트워크 주소: https://github.com
    • 사용자 이름: 깃허브 사용자 이름.
    • 암호: 생성한 Personal Access Token 입력.
    • 저장 후 닫기.
  3. Git에서 자격 증명 사용
    • 명령 프롬프트 또는 Git Bash에서 깃 리포지터리에 연결(git clone)
    • 이후 자격 증명 관리자에 저장된 정보를 자동으로 사용하여 인증.
  4. 자격 증명 확인 및 수정
    • 자격 증명 관리자에서 깃허브 관련 자격 증명을 확인하거나 수정 가능.

깃랩에서 API 액세스 토큰 생성

   깃랩에서는 API를 통해 프로젝트, 브랜치, 또는 리포지터리를 관리하기 위한 Private Access Token을 제공한다.

  1. 토큰 생성 방법:
    • 깃랩 사용자 설정 > Access Tokens > 토큰 생성. 
    • 필요한 권한(예: read_repository, write_repository)을 선택 후 토큰 발급.
  2. 토큰 사용 방법:
    • Git 클라이언트나 CI/CD 스크립트에서 토큰을 사용해 인증한다.

Jenkinsfile 이해

   Jenkinsfile은 Jenkins에서 코드형 파이프라인을 정의하는 파일로, 빌드와 배포 프로세스를 코드로 관리한다. 이 파일은 프로젝트의 루트 디렉토리에 저장되며, Jenkins는 이를 사용해 파이프라인 작업을 실행한다.

코드형 파이프라인의 장점

  1. 버전 관리 가능
    • Jenkinsfile은 깃과 같은 버전 관리 시스템에서 관리할 수 있다.
    • 변경 이력을 추적하며, 협업 시 변경 사항을 쉽게 공유 가능.
  2. 일관성
    • 모든 작업의 빌드 및 배포 단계가 동일한 코드로 정의되어 일관된 결과 보장.
  3. 재사용성
    • 파이프라인 코드의 모듈화와 재사용으로 반복 작업 최소화.
  4. 자동화와 협업
    • 팀 전체에서 표준화된 빌드 프로세스를 공유해 작업 효율성 향상.
  5. 문서화 역할
    • 코드 자체가 빌드와 배포 과정을 설명하므로 별도 문서화가 불필요.

Jenkinsfile에서 파이프라인 작성

  1. 스크립트형 구문
    • 유연하고 복잡한 작업을 수행할 때 유리.
    • Groovy 스크립트를 기반으로 작동.
  2. 선언형 구문
    • 읽기 쉽고 구조화된 코드 작성에 적합.
    • 문법 오류 검출이 용이하며, 초보자에게 권장.

스크립트형 구문과 선언형 구문의 비교

특징 스크립트형 구문 선언형 구문
유연성 복잡한 작업 처리 가능 기본 구조에 적합
가독성 코드 분석이 필요 직관적이고 명확한 구조
오류 처리 오류 관리 직접 구현 필요 문법 검사를 통해 오류 쉽게 탐지 가능
초보자 적합성 진입 장벽 높음 초보자 친화적

 


Jenkinsfile 실행하는 젠킨스 작업 생성

  1. 작업 생성
    • Jenkins 대시보드에서 새 작업(New Item) 클릭.
    • 파이프라인 프로젝트(Pipeline Project) 선택.
    • 이름 입력 후 생성.
  2. 파이프라인 설정
    • Pipeline 섹션에서 Pipeline script from SCM 선택.
    • SCM에서 Git 선택 후 저장소 URL 입력.
    • Credentials 추가로 인증 설정.
  3. 저장 후 빌드
    • 작업 생성 후 Build Now 클릭.

Jenkinsfile 저장하고 푸시

  1. Jenkinsfile 작성
    • 프로젝트 루트 디렉토리에 Jenkinsfile 생성.
    • 필요한 파이프라인 스크립트를 작성.
  2. 깃 저장소에 추가
  3. git add Jenkinsfile git commit -m "Add Jenkinsfile for pipeline" git push origin main
  4. Jenkins 작업 실행
    • Jenkins 대시보드에서 해당 작업을 선택하고 Build Now 클릭.
    • Jenkins는 저장소에서 Jenkinsfile을 읽어 파이프라인 실행.
  1.  

웹훅이란?

   웹훅(Webhook)은 특정 이벤트 발생 시 외부 시스템에 알림을 보내는 자동화된 메시지이다. 깃허브나 깃랩에서 사용하면 코드 푸시 등의 이벤트가 발생할 때 젠킨스 작업을 자동으로 트리거할 수 있다.

깃허브 웹훅으로 파이프라인 작업 생성 및 시작

  1. 웹훅 설정:
    • 깃허브 리포지터리 > Settings > Webhooks로 이동.
    • URL 입력: 젠킨스 서버의 웹훅 엔드포인트(예: http://jenkins-server/github-webhook/).
  2. 파이프라인 설정:
    • Jenkinsfile에 웹훅 이벤트 발생 시 실행될 파이프라인 정의.
  3. 작업 자동화:
    • 웹훅 이벤트 발생(예: 코드 푸시) 시, 젠킨스 작업이 자동으로 실행된다.
반응형

댓글