IT/보안

젠킨스(Jenkins): DevOps 필수 자동화 도구 완벽 가이드

알콩달콩아빠 2025. 2. 5. 09:47
728x90
반응형

🚀 1. 젠킨스란?

**젠킨스(Jenkins)**는 **CI/CD(Continuous Integration & Continuous Deployment)**를 지원하는 오픈소스 자동화 서버입니다.
✅ 개발자들이 코드를 푸시하면, 자동으로 빌드, 테스트, 배포까지 수행할 수 있도록 설정할 수 있습니다.

💡 즉, 젠킨스는 "소프트웨어 개발 자동화"를 위한 핵심 도구입니다!


🔍 2. 젠킨스의 주요 기능

✔ 2.1 CI/CD 자동화

  • CI(Continuous Integration, 지속적 통합): 코드 변경 시 자동으로 빌드 & 테스트
  • CD(Continuous Deployment/Delivery, 지속적 배포): 배포 자동화 (운영까지 자동 반영 가능)

✔ 2.2 다양한 플러그인 지원

  • 1,800개 이상의 플러그인을 제공 (Git, Docker, Kubernetes, Slack 등)
  • 필요에 따라 추가 기능을 쉽게 확장 가능

✔ 2.3 분산 빌드 지원

  • 여러 서버에서 동시에 빌드 실행 가능 → 성능 최적화

✔ 2.4 다양한 환경 지원

  • Windows, macOS, Linux, Docker, Kubernetes 등에서 실행 가능

🛠 3. 젠킨스 설치 및 기본 설정

💡 Jenkins 설치는 매우 간단합니다!

📌 3.1 설치 방법

1️⃣ Docker 설치 방법 (추천 ✅)

sh
복사편집
docker run -p 8080:8080 -p 50000:50000 -d --name jenkins jenkins/jenkins:lts

2️⃣ Linux 설치 방법 (Ubuntu 기준)

sh
복사편집
sudo apt update sudo apt install openjdk-11-jdk wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt update && sudo apt install jenkins -y sudo systemctl start jenkins

3️⃣ Windows 설치 방법

sh
복사편집
java -jar jenkins.war --httpPort=8080

📌 3.2 초기 설정

  1. 브라우저에서 http://localhost:8080 접속
  2. Administrator Password 입력
    sh
    복사편집
    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. 플러그인 자동 설치
  4. 관리자 계정 생성 후 로그인

⚙ 4. 젠킨스 기본 사용법

📌 4.1 새로운 프로젝트(Job) 생성

  1. "새로운 Item" 클릭 → "Freestyle Project" 또는 "Pipeline" 선택
  2. Git 저장소 연동 (GitHub, Bitbucket, GitLab 등)
  3. 빌드 스크립트 추가 (예: Maven, Gradle, Shell Script 사용)
  4. 자동 빌드 트리거 설정 (예: Git Push 발생 시 자동 빌드)

📌 4.2 Git 연동 예제

Jenkins에서 GitHub 프로젝트를 자동 빌드하려면:
1️⃣ Git 플러그인 설치 (Manage Jenkins → Manage Plugins)
2️⃣ Git 저장소 URL 입력
3️⃣ 빌드 스크립트 추가 (예: Maven)

sh
복사편집
mvn clean install

🔒 5. 젠킨스 보안 강화 (내부통제)

Jenkins는 기본적으로 보안 설정이 허술할 수 있어 내부통제 강화를 위한 설정이 필요합니다.

📌 5.1 접근 제어 (Authentication & Authorization)

✅ Manage Jenkins → Configure Global Security에서 보안 설정
RBAC(Role-Based Access Control) 적용

  • 관리자: 전체 권한
  • 개발자: 특정 프로젝트 관리 권한
  • QA 팀: 테스트 실행 권한
  • 익명 사용자: 접근 금지

📌 5.2 중요 플러그인 설치

플러그인기능

Matrix Authorization Strategy 세부적인 권한 설정
Role-based Authorization Strategy 역할 기반 접근 제어 (RBAC)
Audit Trail Plugin 사용자 및 빌드 이력 로깅
Credentials Binding Plugin API Key, 비밀번호 등 민감 정보 보호

📌 5.3 빌드 승인 정책 추가

Jenkins에서 운영 반영 시 승인 프로세스를 추가하려면:

groovy
복사편집
stage('Approval Required') { input message: '운영 배포를 승인하시겠습니까?', ok: 'Proceed' }

🔥 6. 젠킨스 활용 사례 (Best Practices)

🚀 6.1 Git + Jenkins + Docker 자동화 배포

1️⃣ Git Push → Jenkins 자동 빌드
2️⃣ Docker 컨테이너 생성 → 새로운 이미지 빌드
3️⃣ Kubernetes 또는 AWS ECS 배포 자동화

🚀 6.2 Slack 알림 연동

빌드 실패 또는 배포 성공 시 Slack으로 자동 알림 전송
🔹 Slack Notification Plugin 사용
🔹 Webhook 설정 후 Post-build Actions에 추가

🚀 6.3 테스트 자동화

Selenium UI 테스트, JUnit 테스트 자동 실행
✅ 코드 변경 사항 발생 시, 자동으로 테스트 후 결과 제공


🚀 7. 결론: 젠킨스는 DevOps의 필수 도구!

💡 Jenkins를 사용하면 개발 및 배포 속도를 혁신적으로 개선할 수 있습니다.
✅ Git과 연동하여 코드 변경 사항을 자동 빌드
✅ Docker/Kubernetes와 함께 컨테이너 기반 배포 자동화
✅ 보안 강화를 통해 안전한 CI/CD 환경 구축 가능

🔹 젠킨스를 아직 사용하지 않았다면?
👉 지금 바로 설치하고 소프트웨어 개발 자동화를 시작하세요! 🚀

📌 추가 자료

😊 이 글이 도움이 되셨다면 공유해주세요! 🚀

728x90
반응형