개요
이번 포스팅에서는 Jenkins를 사용하여 SpringBoot 애플리케이션에 CI/CD를 구축해 보겠습니다.
CI/CD (Continuous Integration/Continuous Delivery) Pipeline
먼저 CI/CD Pipeline을 구상해 보겠습니다.
- 원격 저장소로 Push
- Github Webhook을 통해 Jenkins에 알림
- Jenkins에서 Test & Build 진행
- 이후 Jenkins 서버에서 SSH로 애플리케이션 서버 접근
- Shell을 실행하여 Jar 파일 배포
Jenkins + SpringBoot로 CI/CD 구축해보기(1) - 인스턴스 생성하기
본격적으로 진행하기 앞서 미리 준비해야 할 것들이 있습니다.
일단 이번 포스팅에서는 Jenkins 서버 및 애플리케이션 서버를 AWS EC2 Amazon Linux 2 기준으로 진행할 예정이니 위 세팅에 맞춘 인스턴스 2대가 준비되어야 합니다.
추가로 Github 계정과 SpringBoot 애플리케이션을 준비해야 합니다.
Jenkins + SpringBoot로 CI/CD 구축해보기(2) - 서버에 Jenkins 설치하기
서버에 Jenkins를 설치하기 앞서 Java가 필요하기 때문에 먼저 Java부터 설치해 보도록 하겠습니다.
# aws coreetto 다운로드
sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o jdk11.rpm
# jdk11 설치
sudo yum localinstall jdk11.rpm
# jdk version 선택
sudo /usr/sbin/alternatives --config java
# java 버전 확인
java --version
이렇게 설치가 완료되면
위 사진처럼 정상적으로 자바 버전이 나오는 것을 확인할 수 있습니다.
yum install dejavu-sans-fonts
yum install fontconfig
이후에 위 라이브러리들을 설치해 줍니다.
이 라이브러리들을 설치해 줘야 Jenkins에서 Font 오류가 발생하는 것을 방지할 수 있습니다.
추가로 Jenkins를 Git과 연동해서 사용하기 때문에 Jenkins 서버에 Git을 미리 설치해봅시다.
sudo yum install git
이렇게 Git을 설치를 마쳤다면
git --version
위 커맨드를 날려 정상적으로 Git이 설치됐는지 확인해 봅시다.
이렇게 버전이 잘 나온다면 정상적으로 설치가 된 것입니다.
이제 Jenkins를 설치해보겠습니다.
sudo yum update -y
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install -y jenkins
이렇게 설치가 완료되면
sudo service jenkins start
sudo chkconfig jenkins on
위 명령어를 입력하여 Jenkins를 실행해줍니다.
systemctl status jenkins.service
Jenkins를 실행했다면 위 명령어를 입력하여 Jenkins의 상태를 확인합니다.
이렇게 정상적으로 기본 포트인 8080에 Jenkins가 떠있는 것을 확인할 수 있습니다.
Jenkins + SpringBoot로 CI/CD 구축해보기(3) - Jenkins UI 접근하기
젠킨스 설치 및 실행을 마쳤으니 Jenkins UI에 접근할 수 있도록 해보겠습니다.
EC2를 생성하고 보안 그룹을 따로 건드리지 않았다면 SSH(22 Port)에 대해서만 인바운드 허용이 되어있는 상태일 것입니다.
하지만 Jenkins는 8080 포트에 떠있기 때문에 추가로 8080 포트에 대한 인바운드 규칙을 추가해 줘야 접근할 수 있습니다.
위 사진과 같이 8080 포트에 대한 인바운드 허용을 설정해 줍니다.
인바운드 규칙을 수정해줬다면 http://your-ec2-instance-ip:8080 << 위 경로로 접근해봅니다.
그럼 위 사진과 같이 초기 비밀번호를 입력하는 창이 나오게 됩니다.
이럼 성공입니다.
초기 비밀번호를 입력해야 Jenkins UI로 넘어갈 수 있기 때문에 초기 비밀번호를 찾아보겠습니다.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
위 명령어를 입력하여 초기 비밀번호를 뿌려봅니다.
이렇게 뿌려진 초기 비밀번호를 복사하여 Jenkins에 붙여 넣습니다.
이후에는 해당 화면에서 Jenkins 서비스 계정을 생성해 줍니다.
위에서 만든 계정으로 로그인하면 이렇게 정상적으로 Jenkins UI에 접근되는 것을 확인할 수 있습니다.
'Jenkins' 카테고리의 다른 글
[Jenkins] Jenkins + SpringBoot로 CI/CD 구축해보기(3) (0) | 2023.09.21 |
---|---|
[Jenkins] Jenkins + SpringBoot로 CI/CD 구축해보기(2) (0) | 2023.09.21 |