서론
효율적인 DevOps 환경에서는 다양한 시스템 간의 통신과 자동화를 위해 API 인증 및 웹훅과 같은 도구를 활용한다. 이를 통해 젠킨스, 깃허브, 깃랩 등에서의 워크플로를 원활하게 통합할 수 있다.
API 인증
API 인증은 시스템 간의 안전한 통신을 보장하기 위해 사용된다. 이를 통해 서버나 애플리케이션은 각 사용자의 신원을 확인하고 적절한 권한을 부여할 수 있다.
- API 키: 클라이언트가 서버와 상호작용하기 위해 사용하는 고유한 문자열이다.
- 액세스 토큰: OAuth와 같은 인증 프로토콜을 통해 발급받으며, 더 안전한 인증 방식으로 널리 사용된다.
깃허브 리포지터리에 API 인증 적용
깃허브에서는 개인 액세스 토큰(Personal Access Token, PAT)을 사용해 API 호출을 인증한다. 이는 비밀번호 대신 사용할 수 있으며, 더 높은 보안성을 제공한다.
- 토큰 생성
- 깃허브 설정 > Developer Settings > Personal Access Tokens에서 토큰 생성.
- 토큰에 필요한 권한(예: repo, workflow)을 선택.
- 토큰 사용
- HTTPS 인증 시:
git clone https://<token>@github.com/username/repository.git
- HTTPS 인증 시:
Windows 자격 증명 관리자와 API 토큰 사용 방법(비공개 깃허브)
- 깃허브 토큰 생성
- 깃허브 계정에서 Personal Access Token (PAT) 생성:
- 깃허브 설정 → Developer Settings → Personal Access Tokens → Generate new token.
- 필요한 권한(예: repo, workflow)을 선택 후 토큰 생성.
- 깃허브 계정에서 Personal Access Token (PAT) 생성:
- Windows 자격 증명 관리자에 토큰 추가
- 자격 증명 관리자(Credential Manager) 실행:
- Windows 검색창에 "자격 증명 관리자" 입력 후 실행.
- Windows 자격 증명 탭 선택 → 새 자격 증명 추가 클릭.
- 인터넷 또는 네트워크 주소: https://github.com
- 사용자 이름: 깃허브 사용자 이름.
- 암호: 생성한 Personal Access Token 입력.
- 저장 후 닫기.
- 자격 증명 관리자(Credential Manager) 실행:
- Git에서 자격 증명 사용
- 명령 프롬프트 또는 Git Bash에서 깃 리포지터리에 연결(git clone)
- 이후 자격 증명 관리자에 저장된 정보를 자동으로 사용하여 인증.
- 자격 증명 확인 및 수정
- 자격 증명 관리자에서 깃허브 관련 자격 증명을 확인하거나 수정 가능.
깃랩에서 API 액세스 토큰 생성
깃랩에서는 API를 통해 프로젝트, 브랜치, 또는 리포지터리를 관리하기 위한 Private Access Token을 제공한다.
- 토큰 생성 방법:
- 깃랩 사용자 설정 > Access Tokens > 토큰 생성.
- 필요한 권한(예: read_repository, write_repository)을 선택 후 토큰 발급.
- 토큰 사용 방법:
- Git 클라이언트나 CI/CD 스크립트에서 토큰을 사용해 인증한다.
Jenkinsfile 이해
Jenkinsfile은 Jenkins에서 코드형 파이프라인을 정의하는 파일로, 빌드와 배포 프로세스를 코드로 관리한다. 이 파일은 프로젝트의 루트 디렉토리에 저장되며, Jenkins는 이를 사용해 파이프라인 작업을 실행한다.
코드형 파이프라인의 장점
- 버전 관리 가능
- Jenkinsfile은 깃과 같은 버전 관리 시스템에서 관리할 수 있다.
- 변경 이력을 추적하며, 협업 시 변경 사항을 쉽게 공유 가능.
- 일관성
- 모든 작업의 빌드 및 배포 단계가 동일한 코드로 정의되어 일관된 결과 보장.
- 재사용성
- 파이프라인 코드의 모듈화와 재사용으로 반복 작업 최소화.
- 자동화와 협업
- 팀 전체에서 표준화된 빌드 프로세스를 공유해 작업 효율성 향상.
- 문서화 역할
- 코드 자체가 빌드와 배포 과정을 설명하므로 별도 문서화가 불필요.
Jenkinsfile에서 파이프라인 작성
- 스크립트형 구문
- 유연하고 복잡한 작업을 수행할 때 유리.
- Groovy 스크립트를 기반으로 작동.
- 선언형 구문
- 읽기 쉽고 구조화된 코드 작성에 적합.
- 문법 오류 검출이 용이하며, 초보자에게 권장.
스크립트형 구문과 선언형 구문의 비교
특징 | 스크립트형 구문 | 선언형 구문 |
유연성 | 복잡한 작업 처리 가능 | 기본 구조에 적합 |
가독성 | 코드 분석이 필요 | 직관적이고 명확한 구조 |
오류 처리 | 오류 관리 직접 구현 필요 | 문법 검사를 통해 오류 쉽게 탐지 가능 |
초보자 적합성 | 진입 장벽 높음 | 초보자 친화적 |
Jenkinsfile 실행하는 젠킨스 작업 생성
- 작업 생성
- Jenkins 대시보드에서 새 작업(New Item) 클릭.
- 파이프라인 프로젝트(Pipeline Project) 선택.
- 이름 입력 후 생성.
- 파이프라인 설정
- Pipeline 섹션에서 Pipeline script from SCM 선택.
- SCM에서 Git 선택 후 저장소 URL 입력.
- Credentials 추가로 인증 설정.
- 저장 후 빌드
- 작업 생성 후 Build Now 클릭.
Jenkinsfile 저장하고 푸시
- Jenkinsfile 작성
- 프로젝트 루트 디렉토리에 Jenkinsfile 생성.
- 필요한 파이프라인 스크립트를 작성.
- 깃 저장소에 추가
- git add Jenkinsfile git commit -m "Add Jenkinsfile for pipeline" git push origin main
- Jenkins 작업 실행
- Jenkins 대시보드에서 해당 작업을 선택하고 Build Now 클릭.
- Jenkins는 저장소에서 Jenkinsfile을 읽어 파이프라인 실행.
웹훅이란?
웹훅(Webhook)은 특정 이벤트 발생 시 외부 시스템에 알림을 보내는 자동화된 메시지이다. 깃허브나 깃랩에서 사용하면 코드 푸시 등의 이벤트가 발생할 때 젠킨스 작업을 자동으로 트리거할 수 있다.
깃허브 웹훅으로 파이프라인 작업 생성 및 시작
- 웹훅 설정:
- 깃허브 리포지터리 > Settings > Webhooks로 이동.
- URL 입력: 젠킨스 서버의 웹훅 엔드포인트(예: http://jenkins-server/github-webhook/).
- 파이프라인 설정:
- Jenkinsfile에 웹훅 이벤트 발생 시 실행될 파이프라인 정의.
- 작업 자동화:
- 웹훅 이벤트 발생(예: 코드 푸시) 시, 젠킨스 작업이 자동으로 실행된다.
반응형
'VCS > CICD' 카테고리의 다른 글
젠킨스 AWS와 통합 (0) | 2025.01.03 |
---|---|
젠킨스 분산 빌드 (0) | 2025.01.02 |
젠킨스 파이프라인 이해 (0) | 2024.12.31 |
젠킨스, 메이븐과 넥서스 통합 및 자바 API 릴리스용 프리스타일 작업 생성 (0) | 2024.12.30 |
젠킨스, 메이븐으로 자바 API 프로젝트 준비 (0) | 2024.12.30 |
댓글