🚀 Jenkins로 CI/CD 환경 구축하기 - 기본 플러그인 소개부터 설치까지!
개발이나 DevOps를 처음 시작한 분이라면 지속적 통합과 지속적 배포(Continuous Integration/Continuous Deployment, CI/CD) 자동화 도구로 Jenkins를 한 번쯤 들어봤을 겁니다. Jenkins는 오픈 소스 기반의 자동화 서버로, 다양한 빌드와 배포 작업을 자동화할 수 있게 도와줍니다. 그럼 Jenkins의 기본 개념과 함께, CI/CD 작업을 자동화하는 데 필수적인 플러그인 설치 방법과 그 사용법에 대해 자세히 알아보겠습니다.
🎯 1. Jenkins란?
Jenkins는 주로 소프트웨어 프로젝트의 자동화된 빌드, 테스트, 배포 파이프라인을 관리하기 위해 개발된 오픈 소스 도구입니다. 개발 과정에서 반복되는 많은 작업을 자동화하여 생산성을 높이고, 팀이 더 빠르게 소프트웨어를 배포할 수 있게 해줍니다.
- Jenkins의 주요 기능은 다양한 형태의 빌드, 테스트, 배포 작업을 조합해 하나의 파이프라인으로 묶는 것입니다. 이를 통해 코드 변경 사항이 배포까지 이어지는 과정을 자동화할 수 있습니다.
- 플러그인을 통해 기능을 무한히 확장할 수 있어, 거의 모든 빌드 도구 및 소스 코드 관리 도구(SCM)와 통합할 수 있습니다.
💡 Jenkins의 탄생 배경
Jenkins는 2004년에 Hudson이라는 이름으로 시작되었습니다. 오라클이 Hudson 프로젝트를 인수하면서 라이센스 문제로 분리된 것이 바로 Jenkins입니다. 이후 Jenkins는 독립적인 오픈 소스 프로젝트로 빠르게 발전했고, 현재는 DevOps와 CI/CD의 표준 도구 중 하나로 자리 잡았습니다.
🛠️ 2. Jenkins 설치하기
- 기본 시스템 요구사항:
- Java 설치 필수 (주로 JDK 11 이상 권장)
- 최소 메모리 256MB (권장 1GB 이상)
- 설치 과정
- Java 설치 후 환경 변수 설정을 완료합니다.
- Jenkins 공식 사이트에서 설치 파일을 다운로드합니다.
- 다운로드한 파일을 실행하여 설치합니다.
- 설치 후 브라우저에서
http://localhost:8080
으로 접속하여 관리자 암호를 입력해 초기 설정을 마칩니다.
📦 3. Jenkins에서 유용한 기본 플러그인들
Jenkins는 다양한 작업을 자동화하고, 다양한 도구와 통합할 수 있도록 플러그인 기반으로 동작합니다. 여기서 Jenkins의 주요 기능과 통합을 위한 필수 플러그인들을 살펴볼게요.
✅ 3.1 기본 플러그인 목록 및 기능 설명
- Folders: 프로젝트를 폴더로 분류하여 관리할 수 있도록 해주는 플러그인으로, 여러 프로젝트를 관리할 때 유용합니다.
- OWASP Markup Formatter: OWASP 표준을 기반으로 안전한 마크업을 지원하여 보안을 강화합니다.
- Build Timeout: 빌드 시간이 너무 오래 걸리면 자동으로 중단해 주어, 자원을 낭비하지 않도록 해줍니다.
- Credentials Binding: 암호나 API 토큰 같은 자격 증명을 안전하게 관리할 수 있습니다.
- Timestamper: 빌드 로그에 타임스탬프를 추가해 로그 분석을 용이하게 합니다.
- Workspace Cleanup: 빌드 전후에 워크스페이스를 정리하여 불필요한 파일을 제거하고 깨끗한 환경에서 빌드를 진행합니다.
- Ant: Apache Ant 빌드 도구를 지원하는 플러그인입니다.
- Gradle: Gradle 빌드 도구를 지원하여 더욱 다양한 빌드 옵션을 제공합니다.
- Pipeline: Jenkins 파이프라인 스크립트를 통해 빌드 및 배포를 자동화하는 필수 플러그인입니다.
- GitHub Branch Source: GitHub의 특정 브랜치를 빌드 소스로 설정하여, 브랜치마다 빌드를 자동화할 수 있습니다.
- Pipeline: GitHub Groovy Libraries: 파이프라인에서 GitHub의 Groovy 라이브러리를 사용할 수 있어 다양한 스크립트를 손쉽게 사용할 수 있습니다.
- Pipeline Graph View: 파이프라인 빌드를 그래프로 시각화해 보여줍니다.
- Git: Git을 통한 소스 코드 관리를 위한 필수 플러그인입니다.
- SSH Build Agents: SSH를 사용하여 원격 빌드 에이전트와 통신할 수 있습니다.
- Matrix Authorization Strategy: 권한을 매트릭스 형식으로 설정할 수 있어 사용자 권한 관리를 체계적으로 할 수 있습니다.
- PAM Authentication: PAM을 사용해 시스템 계정 인증을 Jenkins에서 활용할 수 있습니다.
- LDAP: LDAP를 통한 사용자 인증을 지원하여 중앙집중적인 사용자 관리를 할 수 있습니다.
- Email Extension & Mailer: 빌드 성공, 실패 등에 따라 이메일로 알림을 받을 수 있습니다.
- Dark Theme: Jenkins 인터페이스에 다크 테마를 적용하여 눈의 피로를 줄일 수 있어요.
- Slack Notification: Slack에 빌드 결과를 알림으로 보낼 수 있는 플러그인입니다.
🚀 4. 플러그인 설치 및 적용 방법
- 플러그인 파일 복사: 해당 플러그인을
/plugins
디렉토리에서 다운로드한 후, Jenkins의 플러그인 디렉토리/var/jenkins_home/plugins
에 복사합니다. - Jenkins 재기동: 플러그인을 적용하려면 Jenkins를 재시작해야 합니다. 명령어를 사용해 간단히 재기동할 수 있습니다.
명령어 예시:
sudo systemctl restart jenkins
- 플러그인 적용 확인: 재기동 후, Jenkins 관리 화면에서 플러그인 설치 여부를 확인하고, 설정에 반영되었는지 확인합니다.
🌐 5. Jenkins의 SCM(소스 코드 관리)와의 통합
Jenkins는 Git, GitHub, GitLab 등 다양한 소스 코드 관리(SCM) 도구와 통합할 수 있습니다. 특히 GitHub Branch Source
와 Git
플러그인은 소스 코드 변경 사항에 따라 자동으로 빌드 및 배포 파이프라인을 시작하는 데 유용합니다.
🔄 GitHub 연동 예시
Jenkins에서 GitHub와 연동하는 과정은 다음과 같습니다.
- Jenkins에 GitHub 플러그인 설치:
GitHub Branch Source
와Git
플러그인을 설치합니다. - GitHub 웹훅(Webhook) 설정: GitHub 리포지토리 설정에서 웹훅을 추가하여 코드 변경 시 Jenkins에서 빌드가 자동으로 트리거되도록 합니다.
- Credential 설정: GitHub에 인증할 자격 증명(Credential)을 Jenkins에 등록합니다.
- Pipeline 스크립트 작성:
Jenkinsfile
을 작성하여 빌드와 배포 과정을 설정합니다.
Jenkinsfile 예시:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
}
stage('Test') {
steps {
echo 'Testing...'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
}
}
}
}
📝 구현 및 플러그인 참조 링크
📝 요약
Jenkins는 다양한 빌드와 배포 작업을 자동화하여 DevOps 프로세스를 간소화하는 강력한 도구입니다. 플러그인을 통해 기능을 확장할 수 있어 다양한 빌드 도구와 소스 코드 관리 시스템과 손쉽게 통합할 수 있습니다. 기본 플러그인 설치를 통해 Jenkins 환경을 안정적이고 효율적으로 구축하고, 자동화 파이프라인 설정을 통한 완벽한 CI/CD 환경을 만들어 보세요!
위의 과정들을 따라가면서 자신만의 Jenkins 환경을 구축해보세요. 😄
'IT 지식' 카테고리의 다른 글
[Kubernetes] 쿠버네티스(Kubernetes)란 무엇인가 (2) | 2024.11.12 |
---|---|
[Jenkins] Jenkins에서 GitHub 및 GitLab 인증 연동하기 (0) | 2024.11.09 |
웹 접근성(Web Accessibility)이란 (8) | 2024.11.07 |
WSL(Windows Subsystem for Linux) 설치 및 설정 (0) | 2024.10.29 |
JWT Token JAVA 구현 방법 (0) | 2023.06.16 |