월루를 꿈꾸는 대학생
Jenkins와 CI/CD 개념 정리 본문
1. CI/CD란 무엇인가 ?
- 지속적인 통합 / 지속적인 배포
- 코드를 통합하고 서비스를 배달하며 배포하고 내부 소비자들에게도 지속적으로 코드를 작성하면 쓸 수 있는
사용자가 사용 가능한 환경에 배포하는 것을 자동화
- 개발자의 코드가 지속적으로 배포되며 자동적으로 통합이 되어 개발자와 사용자 사이 격차를 없앰
- 코드 작성 -> 빌드 -> 테스트 -> 배포
ci가 필요한 이유
- 10명의 개발자가 1주일 동안 개발... 통합시 조짐 커밋이 안 됨 시스템 자체가 하나로 합쳐지지 않고 여러군데에서 합치니까 문제가 발생
- 모든 개발자가 안심하고 남탓하지 않기 위해서 사용하는 CI
CD가 필요한 이유
- 지속적으로 코드 작성 후 배포되도록
- 사람 손으로 하면 실수가 생김
2. Jenkins 기본 개념과 동작 방식
젠킨스란?
- 개발자가 할 귀찮은 작업을 집사 = 젠킨스가 해줌
- Java runtime 위에서 동작하는 자동화 서버 = 설치되는 서버에 자바가 설치되어 있어야함
- 빌드 , 테스트 , 배포 등 모든 것을 자동화 해주는 자동화 서버
기본 개념
- java runtime enviroment 에서 동작
- 다양한 플러그인을 조합하여 자동화 작업을 처리 가능
- 젠킨스는 빈 껍데기 그 안에 있는 플러그인을 조립하여 돌아가게 하는 것 = 파이프라인
- 일련의 자동화 작업 순서들의 집합을 파이프라인이라고 하며 이를 통해 ci/cd 파이파라인 구축
플러그인
- 많음
- 처음 추천 해주는 거 다 깔면 됨
- git plugin 깃에 있는 거 사용할 때
플러그인 종류
1) credentials plugin
- 작업을 하려면 권한이 필요함 - 젠킨스에게 권한을 부여하는 플러그인
- 시크릿키, ssh, access token 등 저장해줌
- 서버에 개인 정보 저장해도 rsa 기반의 고유 id로 공개키 방식 암호화를 하기에 보안이 괜찮
- 실제 프라이빗 네트워크에 사용하니까 괜찮음
2) pipeline plugin
- 젠킨스 핵심 기능 파이프라인 관리
파이프라인
- 플러그인의 집합이자 구성
- ci/cd 파이프라인을 구현하기 위한 일련의 플러그인 집합 = 작업 레시피
섹션
- 어떤 일을 할것이고 누가할 것인지
Agent section
- 젠킨스 혼자 일처리 하기 빡세니까 일 같이 해주는 노예
- 어떤 노예에게 일 시킬지 정함
- 마스터할 떄 시킬지 노예 1 노예2에게 시킬지 agent에다가 어떤 놈한테 시킬지 지정 가능
Post section
- 각 순서가 끝날 때 마다 결과에 따라 후속 조치를 함
- 콘솔 찍기, 슬랙에 메일 보내기 등
- success , fail 등
Stage section
- 어떤 일들을 처리할 지 일련의 일처리 순서 stage를 정의 = 카테고리
Declaratives
- 각 스테이지마다 어떤 일 할지 정리
- 이 스테이지에서 어떤 환경변수 쓰고 어떤 파리미터 쓰고 어떤 형태로 트리거가 되고 언제 실행하는가
- trigger ( 어떤 주기로 실행할 것인가 )
Steps
- 스탭 내부는 여러가지 스텝들로 구성
- 여러 작업 실행 가능
- 플러그인 마다 사용 가능한 스텝이 있음
## 밑의 영상 22:30초 화면 참조 ###
젠킨스 설치
1. yum 업뎃
2. 젠킨스 패키지 설치
3. 자바와 git 설치
참고 영상
'Server&Network' 카테고리의 다른 글
power shell 참고 자료 (0) | 2021.11.05 |
---|---|
AI와 ML 그리고 DeepLearning (0) | 2021.10.18 |
리눅스 기초 구조 & 실습 (0) | 2020.12.28 |
DNS 설정 (0) | 2020.12.26 |
라즈베리파이 ssh 포트 번호 변경 (0) | 2020.12.26 |