스터디 포스트 >  DevOps 학습: 파이프라인 및 Docker를 이용한 Jenkins 와의 CI/CD

CI/CD 와 젠킨스 소개 및 설치

장지창 멘토
백엔드 개발하고 있는 장지창입니다

DevOps 학습 파이프라인 및 Docker를 이용한 Jenkins와의 CI/CD - 1주차

 
💡
CI/CD와 젠킨스 소개 및 설치
 

CI/CD란?

  • CI (지속적 통합)
    • 모든 개발자의 작업 복사본을 공유된 메인 라인으로 하루에 몇 번 씩 병합하는 소프트웨어 엔지니어링 방식
 
  • CD (지속적 제공)
    • 팀이 소프트웨어를 짧은 주기로 만들어 소프트웨어가 언제든지 안정적으로 출시될 수 있도록 하는 소프트웨어 엔지니어링 방식
 
→ CI / CD : 자동화된 빌드와 테스트를 진행해 작업을 검증하고 게시하는 것
 
이에 이용하는 것이 젠킨스
→ 소프트웨어를 계속해서 테스트하고 구축하기에 소프트웨어를 짧은 주기로 출시하는데 도움을 줌
소프트웨어 개발 라이프 사이클(SDLC)을 앞당길 수 있음
 
젠킨스는 자동화된 테스와 빌드에 도움을 주지만, 코드 병합, 충돌 해결을 위해 여전히 Git 을 사용해야 함
 
CI / CD within the SDLC
notion image
이 과정을 빨리 할 수록 좋음
Build, Test → 젠킨스
Release(소프트웨어 패키징) → Docker
 
다른 툴 소개
notion image
 

젠킨스란?

젠킨스(Jenkins)는 소프트웨어 개발 시 지속적 통합(continuous integration) 서비스를 제공하는 툴입니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해 준다. MIT 라이선스를 따른다. 젠킨스는 오라클과의 분쟁 이후 허드슨으로부터 분기되었다.
 

젠킨스 설치

도커를 이용한 설치
notion image
 
git clone https://github.com/phj1120/jenkins-course.git

bash jenkins-course/scripts/install_jenkins.sh
 
 
install_jenkins.sh
#!/bin/bash

# this script is only tested on ubuntu focal 20.04 (LTS)

# install docker
sudo apt-get update
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker
usermod -aG docker ubuntu

# run jenkins
mkdir -p /var/jenkins_home
chown -R 1000:1000 /var/jenkins_home/
docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -d --name jenkins jenkins/jenkins:lts

# show endpoint
echo 'Jenkins installed'
echo 'You should now be able to access jenkins at: http://'$(curl -s ifconfig.co)':8080'
 
cat /var/jenkins_home/secrets/initialAdminPassword
해당 명령어로 얻은 초기 비밀번호를 서버에 접속 후 입력합니다.
 
notion image
 
 
 
 
본 스터디는 Udemy의 <【한글자막】 Docker & Kubernetes: 실전 가이드 -2022년판> 강의를 활용해 진행됐습니다. 강의에 대한 자세한 정보는 아래에서 확인하실 수 있습니다.
 
 
프밍 스터디는 Udemy Korea와 함께 합니다.
 
원하는 스터디가 없다면? 다른 스터디 개설 신청하기
누군가 아직 원하는 스터디를 개설하지 않았나요? 여러분이 직접 개설 신청 해 주세요!
이 포스트는
"DevOps 학습: 파이프라인 및 Docker를 이용한 Jenkins 와의 CI/CD" 스터디의 진행 결과입니다
진행중인 스터디
DevOps 학습: 파이프라인 및 Docker를 이용한 Jenkins 와의 CI/CD
Docker를 이용한 Jenkins와 CI/CD를 학습합니다. Jenkins를 활용해 CD를 구축합니다. 간단한 NodeJS 애플리케이션을 만듭니다.
장지창 멘토
백엔드 개발하고 있는 장지창입니다