Jenkins란?
오픈 소스 자동화 서버로, 주로 소프트웨어 개발과 관련된 작업의 자동화를 지원하는 도구입니다.
그리고 CI/CD 파이프라인을 설정하고 관리하는 데 많이 사용됩니다.
Jenkins의 주요 사용 목적중 하나는 개발자가 코드를 변경할 때마다 자동으로 빌드, 테스트, 배포를 실행하여 개발 주기를 가속화하고 품질을 높이는 것입니다.
Jenkins 주요 기능과 구성 요소
1. 자동화된 빌드와 테스트
코드가 레포지토리에 커밋될 때마다 자동으로 빌드를 수행하고, 테스트를 실행하여 코드가 정상적으로 작동하는지 확인합니다.
2. 플러그인 시스템
플러그인 기반 아키텍처를 채택하고 있어, 다양한 플러그인을 통해 기능을 확장할 수 있습니다. 가령 Git과 같은 버전 관리 시스템, Gradle과 같은 빌드 도구 지원, Docker연동이 그것입니다.
3. 파이프라인
코드 형식으로 작성된 빌드, 테스트, 배포의 일련의 과정을 정의합니다. 스크립트 파일에 파이프라인을 정의하며, 이를 통해 워크플로우를 쉽게 설정하고 관리할 수 있습니다.
4. 분산 빌드
빌드를 여러 서버에서 병렬로 수행할 수 있어, 빌드 시간을 단축하고 효율성을 높일 수 있습니다. 마스터는 보통 비르 작업을 조정하고, 에이전트는 실제 빌드를 수행하는 역할을 합니다.
5. 알림
빌드 상태나 테스트 결과에 따라 이메일, 슬랙, 웹훅 등을 통해 알림을 보내고, 다양한 형식의 리포트를 생성할 수 있습니다. 이를 통해 개발자들은 빌드 상태를 실시간으로 확인하고 신속하게 대응할 수 있다는 장점이 있습니다.
https://www.jenkins.io/doc/book/installing/
공식 홈페이지에 다양한 환경에서 Jenkins 설치 방법이 있으니,
다른 환경에서 설치를 진행하실 분들은 참고하시기 바랍니다!!!
Ubuntu 가상환경에서 Jenkins 설치
1. Ubuntu 서버 설치
https://hyunily.tistory.com/25
해당 글을 참고하셔서, Ubuntu 환경을 준비해주시기 바랍니다.
2. 레포지토리 추가
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
apt update
3. Java 설치
Java는 17로 진행하겠습니다.
apt install openjdk-17-jdk
4. Jenkins 설치
apt install jenkins
5. Jenkins 실행
systemctl restart jenkins
6. 대시보드 접속
// 초기 패스워드 확인
cat /var/lib/jenkins/secrets/initialAdminPassword
// 비밀번호 복사 후 Jenkins 접속
// ubuntu 서버 IP:8080
6-1. 대시보드에서 초기 비밀번호 입력
6-2. Install Suggested plugins 선택 후 Continue
6-3. Admin User 설정
6-4. Jenkins URL 설정
Jenkins URL 설정에 기본 셋팅은 http://[현 Jenkins설치 환경IP]:8080 일것입니다.
만약 포트포워딩 설정을 해서 접속할 예정이라면, 추후 Jenkins URL을 꼭 포트포워딩한 URL로 변경해주셔야 합니다.
그러지 않으면 속도가 매우 느려지는 현상이 생깁니다!!!
만약 위 단계를 성공하셨다면 아래와 같이 대시보드가 뜹니다.
Jenkins에는 다양한 기능들이 있는데, 다음 포스팅에서는 github에 있는 webhook과 연동하여, push와 동시에 Jenkins가 배포를 할 수 있게 해보는 내용을 다뤄보겠습니다!!
'Daily' 카테고리의 다른 글
[Spring Boot] 동시성 제어 (3) | 2024.10.12 |
---|---|
Spring Boot - 이메일(SMTP)비동기 전송 (0) | 2024.09.29 |
git pull error (0) | 2024.08.25 |
Mac M1 VMware + Ubuntu 설치 (0) | 2024.08.14 |
Github Actions로 배포 자동화 (0) | 2024.08.12 |