DevOps 학습 파이프라인 및 Docker를 이용한 Jenkins와의 CI/CD - 1주차
CI/CD와 젠킨스 소개 및 설치
CI/CD란?
- CI (지속적 통합)
모든 개발자의 작업 복사본을 공유된 메인 라인으로 하루에 몇 번 씩 병합하는 소프트웨어 엔지니어링 방식
- CD (지속적 제공)
팀이 소프트웨어를 짧은 주기로 만들어 소프트웨어가 언제든지 안정적으로 출시될 수 있도록 하는 소프트웨어 엔지니어링 방식
→ CI / CD : 자동화된 빌드와 테스트를 진행해 작업을 검증하고 게시하는 것
이에 이용하는 것이 젠킨스
→ 소프트웨어를 계속해서 테스트하고 구축하기에 소프트웨어를 짧은 주기로 출시하는데 도움을 줌
소프트웨어 개발 라이프 사이클(SDLC)을 앞당길 수 있음
젠킨스는 자동화된 테스와 빌드에 도움을 주지만, 코드 병합, 충돌 해결을 위해 여전히 Git 을 사용해야 함
CI / CD within the SDLC

이 과정을 빨리 할 수록 좋음
Build, Test → 젠킨스
Release(소프트웨어 패키징) → Docker
다른 툴 소개

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

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
해당 명령어로 얻은 초기 비밀번호를 서버에 접속 후 입력합니다.

본 스터디는 Udemy의 <【한글자막】 Docker & Kubernetes: 실전 가이드 -2022년판> 강의를 활용해 진행됐습니다. 강의에 대한 자세한 정보는 아래에서 확인하실 수 있습니다.
프밍 스터디는 Udemy Korea와 함께 합니다.