Jenkins CI/CD 구축(1)

Moon·2023년 5월 27일
0

Jenkins

목록 보기
1/5
post-thumbnail

이번 프로젝트에서는 처음으로 젠킨스(Jenkins)를 이용하여 CI/CD를 구축했습니다.

여태까지, Travis CIGitHub Actions를 사용하여 CI/CD를 구축했는데, 어떤 식으로 구축을 했는지 기억이 안났고 어떤 식으로 동작하는지 제대로 몰랐기 때문에 이번에 젠킨스로 CI/CD를 구축하면서 어떤 과정을 거쳐서 구축했는지 정리의 필요성을 느껴 이렇게 게시글을 작성하게 되었습니다.

젠킨스로 CI/CD를 구축하기 전에, CI/CD에 대해서 알 필요가 있습니다.

📌 CI/CD란?

CI(Continuous Integration)는 지속적 통합을 의미하며, 코드를 커밋하고 빌드했을 때 정상적으로 작동하는지 반복적으로 검증해 애플리케이션의 신뢰성을 높이는 작업입니다.

CD(Continuous Deployment)는 지속적 배포를 의미하며, CI 과정에서 생성된 신뢰할 수 있는 애플리케이션을 실제 상용 환경에서 자동으로 배포하는 작업입니다.

즉, CI/CD변경 사항을 계속 추적해 좀 더 안정화된 애플리케이션을 만들고, 이를 배포하는 과정을 자동화해 시스템을 안정적으로 운영하는 데 가장 많이 쓰이는 개념입니다.

그래서 CI/CD가 어떤 식으로 동작하는지 설명하자면, 개발자가 소스를 커밋하고 푸시하면 CI 단계로 들어갑니다.

CI 단계에서는 애플리케이션이 자동 빌드되고 테스트를 거쳐 배포할 수 있는 애플리케이션인지 확인합니다.

테스트를 통과하면 신뢰할 수 있는 애플리케이션으로 간주하고 CD 단계로 넘어갑니다.

CD 단계에서는 애플리케이션을 미리 설정한 파일을 통해 배포합니다.

그래서 젠킨스가 무엇인지 궁금할 수 있습니다.

📌 젠킨스(Jenkins)?

CI/CD를 제공하는 툴이 매우 많지만, 그 중에서 젠킨스(Jenkins)가 대표적이라고 할 수 있습니다.

젠킨스는 오픈 소스 CI/CD 도구로, 사용자가 직접 UI에서 작업을 구성하거나 작업 순서를 코드로 정의할 수 있습니다.

오랜 시간 동안 많은 사람이 사용하고 있어서 사용에 필요한 정보를 찾기 쉽고 활용 방법과 플러그인 개발 관련 커뮤니티 활동이 활발해서 다양한 사용 환경, 언어 및 빌드 도구와 연계할 플러그인이 필요할 경우 인터넷에서 대부분의 플러그인을 쉽게 찾을 수 있습니다.

그러면 이 젠킨스를 사용하여 CI/CD를 구축해 보겠습니다.

📌 젠킨스 설치

  1. 먼저 yum을 update 해줍니다.
sudo yum update -y
  1. 이제 젠킨스를 설치해야 하는데 yum 패키지에는 기본적으로 젠킨스가 포함되어있지 않습니다. 그래서 yum패키지 저장소에 젠킨스를 수동으로 등록해줘야 합니다.
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  1. 젠킨스 저장소 키를 등록합니다.
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  1. 이제 젠킨스를 설치합니다.
sudo yum install jenkins
  1. 젠킨스를 실행시킵니다.
sudo systemctl start jenkins
  1. 젠킨스가 정상적으로 실행이 됐는지 아래의 명령어를 통해 확인합니다.
sudo systemctl status jenkins
[ec2-user@ip-172-31-34-142 ~]$ sudo systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-05-05 15:09:22 KST; 3 weeks 0 days ago
 Main PID: 14192 (java)
   CGroup: /system.slice/jenkins.service
           └─14192 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=9090

	...

Active : active (running) 상태면 정상적으로 실행되고 있다는 의미입니다.

이상으로 CI/CD가 무엇이고, 젠킨스에 대해서, 그리고 젠킨스 설치법에 대해서 간단히 알아봤습니다.

profile
꾸준함으로 성장하는 개발자 지망생

0개의 댓글