소스 자동 배포 JENKINS
소스 자동 배포 JENKINS

소스 자동 배포 JENKINS

gubun
Infra
Stack
Jenkins
Webhook
Git
진행기간
2024년 3월 ~ 현재
작성일
2024년 03월 01일 00시 00분
Author

🔖 요약


notion image
notion image

👏 프로젝트 소개


  • 프로젝트 개요
    • 프로젝트 이름: 젠킨스 도입 및 운영
    • 프로젝트 기간: 2024년 3월 1일 ~ 2024년 3월 31일
    • 역할: 시스템 엔지니어
      • 오픈 소스 솔루션 리서치
      • 서버 선정 및 구축
      • 유지 관리 및 운영

✍️ 프로젝트 배경


  • 도입 이전 상황
    • 모든 개발 및 운영 서버에 git에 푸시가 되면 각 서버에 수동으로 접속하여 git pull을 실행해야 하는 번거로움
    • 개발 브랜치 (master, develop, feature)별로 소스 배포를 진행하는데, 이를 자동화하지 않으면 시간이 많이 소모됨
    • yona에서 웹훅을 전송하고 해당 서버에만 배포하는 프로세스 필요
  • 도입 이유 및 목표
    • 도입 이유:
      • 효율적인 CI/CD 파이프라인 구축
      • 소스 코드 배포의 자동화 및 효율성 증대
    • 목표:
      • 서버에 대한 자동화된 소스 배포 시스템 구축
      • 개발 브랜치별로 자동 배포 설정

🔦 기술 스택 및 주요 기능 구현


  • 기술 스택
    • 주요 기술:
      • Jenkins (자동화 서버)
      • Ubuntu 22.04
      • Git
      • Yona (웹훅 전송)
      • Shell Script
  • 주요 기능 및 구현 내용
    • CI/CD 파이프라인:
      • 자동 소스 배포
        • 브랜치별 (master, develop, feature) 소스 코드 자동 배포 설정
        • Yona에서 웹훅을 통해 Jenkins로 트리거 전달
        • Jenkins가 해당 서버에 자동으로 배포 수행

🔦 도입 과정


  1. 초기 요구사항 분석
    1. 기능
      설명
      자동 소스 배포
      브랜치별로 소스 코드를 자동으로 배포하는 기능.
      웹훅 통합
      Yona에서 웹훅을 통해 Jenkins로 트리거를 전달하는 기능.
      사용자 및 권한 관리
      사용자 계정을 생성하고, 각 사용자에게 적절한 접근 권한을 부여하는 기능.
      로그 및 감사 기능
      배포 로그를 기록하고, 감사 기능을 제공하는 기능.
  1. 오픈 소스 CI/CD 시스템 리서치
    1. 기능
      Jenkins
      GitLab CI
      라이선스
      MIT
      MIT
      자동 소스 배포
      웹훅 통합
      사용자 및 권한 관리
      로그 및 감사 기능
      플러그인 지원
      대시보드
      API 통합
  1. 서버 설치 및 Jenkins 환경 구성
    1. 설치 정보
      1. CPU
        4Core
        MEM
        8GB
        DISK
        100GB
        OS
        Ubuntu 20.04
        Jenkins
        2.448
    2. 설치
      1. Jenkins 설치 및 설정
        1. Jenkins 서버 설치 및 플러그인 설정
        2. Git 통합 설정
      2. Yona 웹훅 설정
        1. Yona에서 브랜치별 푸시 시 웹훅 전송 설정
      3. 배포 스크립트 작성
        1. Shell Script를 사용하여 서버에 소스 코드를 자동으로 배포하는 스크립트 작성
        2. 각 브랜치별 배포 파이프라인 설정

🔦 결과 및 성과


  • 성과 및 결과
    • 도입 후 성과
      • 소스 코드 배포의 자동화 및 효율성 증대
        • 수동으로 git pull을 실행하는 번거로움 없이 자동으로 소스 코드를 배포할 수 있게 되었습니다.
      • 개발 브랜치별 자동 배포
        • 브랜치별로 소스 코드가 자동으로 배포되어 개발 속도가 향상되었습니다.
      • 업무 단순화 및 시간 절약
        • Yona에서 웹훅을 통해 Jenkins로 트리거를 전달하여 해당 서버에만 소스를 배포함으로써 시간과 노력을 절약할 수 있었습니다.
  • 향후 계획
    • 정기적인 시스템 업데이트 및 유지보수

댓글

guest