-
[CI/CD] Jenkins 기본 개념 및 구성 요소Dev Ops/CI-CD 2023. 1. 21. 18:28반응형
Jenkins란?
CI/CD 전반적인 흐름을 관장하는 툴
- 서브버전, Git과 같은 버전 관리 시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정 가능
Jenkins 구조
1. Jenkins Master (Server)
: Jenkins 서버이자 Jenkins 파이프라인으로 정의된 모든 흐름을 관장하는 컨트롤 서버
- 각 Jenkins Slave들에게 각자의 할 일을 정해주고 분배
[ Jenkins 작업 ]
① Git 등의 리파지토리에서 푸쉬되어 받은 자료를 정기적으로 Jenkins가 확인
② Jenkins 테스트 과정을 다양한 Jenkins Agent에서 실행시키면서 독자적 테스트 환경을 만듦
③ Jenkins Agent 통해 얻은 결과물을 Jenkins Master가 받아 테스트 보고1) Jenkins Plugins
: 다른 개발 툴과 연동할 때 사용
- S3 버킷을 저장소로 두고 Jenkins와 연동한다고 하면 AWS CLI 플러그인만 연동하면 됨2) Jenkins Global Security
: 주로 아래와 같이 3가지의 인증방법이 존재
① Jenkins 자체 유저 DB : Jenkins 자체적으로 운영되는 DB내 유저 정보로 XML 파일 구성
② LDAP 통합 : LDAP에다가 Server, User, Group, Manager 정보들을 기입해 사용
③ SSP(Single Sign-On) : 보안 보장 마크업 언어(SAML)을 활용해 구글 클라우드나 Azure와 같은 사용자 인증정보로 로그인3) Jenkins Credentials
: 다른 클라우드 계정, 서버, DB에 연결하는 경우 보안에 필요한 정보를 저장하기 위한 곳(Secret text, SSH Keys 등)
4) Jenkins Global Configs
: 전에 사용한 플러그인 등의 정보를 가져와 사용
5) Jenkins Logs
: 작업 로그/플러그인 로그/웹훅 로그 등의 정보를 포함한 모든 서버의 정보 제공
2. Jenkins Agent
: Jenkins Master가 작업을 시켰을 때 일을 하는 Node
- Agent 없이 Master만으로도 작업은 진행 가능하나 작업들이 서로 겹치며 충돌될 수 있음[ Agent 종류 ]
① Agent Nodes
: 윈도우/리눅스와 같은 서버로 개별 script를 작성해 서버 위에서 Jenkins 실행과 정지를 조절② Agent Clouds
: Dynamic agents라고도 불리며 작업을 하고 컨테이너로 배포하고 완성하는 작업에 사용되며 인프라에 따라 사용량이 지불됨[ Master - Agent 연결 방법 ]
① SSH : SSH 프로토콜을 사용해 연결, Master에서 연결이 시작되며 보통 22포트를 넘어 연결
② JNLP : Java Network Launch Protocol을 50000포트에서 사용해 Agent로부터 연결하는 작업으로 Master의 방화벽을 열어 놓아야 가능
3. Jenkins Web Interface
- Jenkins Blue Ocean이라 불리는 웹 인터페이스로 젠킨스의 플러그인
: 시각화된 대시보드를 제공하며 파이프라인이 시각화되어 문제 발생 시 어느 스테이지, 스텝에서 발생했는지 보다 쉽게 파악 가능
반응형'Dev Ops > CI-CD' 카테고리의 다른 글