-
개요
- Jenkins 왜 사용하는지 알아보고, 사용 방법에 대해서 정리
배경
- 프로젝트를 진행하면 서비스를 배포하기까지 개발, 테스트, 빌드 등 많은 과정들이 필요하다. 이런 과정을 매번 수행하기에는 번거롭고 많은 투자가 필요하다. 이러한 반복적인 작업을 해결하기위해 만들어지기 위해 만들어진것이 CI/CD이다.
젠킨스란?
- 세계적으로 많은 개발자들이 사용중인 CI툴이다.
- 다수의 개발자들이 하나의 프로그램을 개발할 떄 공유 영역인 Git등의 저장소에 저장된 프로젝트를 버전 충돌을 방지하며 지속적 통합이 가능하도록 해준다.
왜 사용하는가?
- 젠킨스를 사용하면 개발자들은 코드를 저장소에 커밋할때마다 자동으로 빌드 및 테스트를 수행할수 있다.
- 개발자들은 더욱 빠르게 통합하고, 코드 변경사항에 대한 피드백을 더욱 빠르게 받을수 있다.
- 인간의 실수로 인한 버그를 줄이고, 코드 품질을 향상 시킬 수 있다.
따라서, 젠킨스를 사용하면 개발자들은 더욱 효율적으로 코드를 통합하고, 더욱 높은 코드 품질을 달성할 수 있다.
Jenkin의 장점
- 많은 유저들이 사용하여 많은 레퍼런스가 존재한다.(문제해결 용이)
- 편의를 위한 많은 플러그인이 제공되고, 통합가능한 API를 제공한다. → 유연하고 확장성있는 CI/CD파이프라인 구축이 가능함.
- 여러대의 빌드 서버를 사용하여 동시에 여러 프로젝트 처리가 가능하다.
- 웹 인터페이스를 제공하여 사용이 편리하다.
- Java기반이라 JDK, Gradle, Maven의 설정을 편리할게 할수 있어 Java기반의 프로젝트를 진행하는 사용자들이 빌드 설정을 하기 간편
Jenkins CI 파이프 라인 순서 요약 (AWS)
- 기본(깃 허브)
인스턴스를 생성 → 보안 그룹 생성 4개(포트 번호:22[default], 80, 7777, 50000) // 위치무관으로 생성 → 쉘 프로그램과 연결 (기본 포트 22로 연결시 오류가 발생하므로 openssh-server를 설치하여 준다.) → 관리자 권한으로 실행 → jdk설치 → 젠킨스 설치 → 기본포트 7777로 변경 → 젠킨스 재시작 → 초기비밀번호를 입력해서 unlock → install suggested plugins → 사용자 설정 → 깃 레포지토리 포크 하거나 생성 하여 작업 → Maven 빌드를 위한 플러그인 설치(maven Integration, maven Invoker) → 설치한 maven 등록 → pipeline으로 새로운 프로젝트 생성(자신의 깃허브와 연동) → 빌드하여 테스트 → 젠킨스 파일을 깃허브 레포지토리에 생성 → 프로젝트에 있는 구성으로 접속하여 SCM 깃허브 연결
Jenkins 작업
- 변경사항을 Jenkins파일을 통해서 작성후 Git으로 push한다.
- Git에서 push되어 받은 자료를 Git Hook을 통해 정기적으로 Jenkins가 확인한다.
- Jenkins 테스트 과정을 다양한 Jenkins Slave에서 실행시키면서 독자적인 테스트 환경을 만든다.
> 위와 같이 slave에서 실행시키는 것도 가능하고 master에서 실행시키는것도 가능한데 master에서 실행시키면 충돌이 발생한다. - Jenkins Slave를 통해 얻은 결과물을 Jenkins Master가 받아 테스트를 보고한다.
아래 링크는 GitHub Actions 와 비교하는 블로그이다.
https://choseongho93.tistory.com/295
[CI/CD] Jenkins 과 GitHub Actions의 개념, 차이점
[CI/CD] Jenkins 과 GitHub Action의 개념, 장단점에 대해 포스팅하겠습니다. JenKins와 GitHub Action 소개와 차이점을 앞서 배포, 빌드, 컴파일에 대해 간략하게 알고 싶다면 아래 링크를 참고해주세요. ▶빌
choseongho93.tistory.com
인스턴스 만들고 깃 훅으로 연결한 후 IAM 생성후 EKS클러스터 구성 도커 푸시