젠킨스를 사용한 이유
https://github.com/f-lab-edu/careers
프로젝트를 어느정도 진행하다보니 CI/CD를 적용해야될 때가 되었다.
자바진영에서는 CI/CD 툴로 젠킨스를 가장 많이 사용하는 걸로 알고있다.
그래서 젠킨스의 CI/CD를 도입하여 프로젝트 개발에만 집중할 수 있도록 이참에 환경 구성을 해보았다.
CI란
Continuous Integration 즉 지속적인 통합을 의미한다.
개발자가 개발을 하면 그 코드들은 결국은 다른 여러 개발자들과의 코드들과 Merge가 되어야 한다.
이때 CI를 반영하지 않고 나중에 몰아서 처리하게 된다면 Merge양과 범위에 따라 개발자들의 시간과 리소스를 투자해야 한다.
하지만 CI를 사용하면 CI툴이 특정 이벤트를 받아 빌드, 테스트, Merge등을 해주어 혹시라도 코드 충돌이 발생하거나 테스트 실패 등이 발생 시 이를 여러 방법으로 Notify를 해준다.
또한 소스코드 버전관리로 깃허브를 사용한다면 CI 실패 시 Merge를 할 수 없도록 강제할 수도 있다.
CD란
Continuous Deployment 즉 지속적인 배포를 의미한다.
개발을 하고난 뒤 실제 서비스를 제공하기 위해서는 배포를 해야만 한다. 그런데 배포과정이 험난하고 귀찮으면 누가 하고싶겠는가.. 그래서 계속 미루게 되고 그러다보면 인간인지라 간헐적인 배포실수가 발생하게 된다.
이러한 문제점들을 방지하는 것이 CD의 역할이다.
그래서 어떻게 사용하나?
일단 제일 먼저 자바를 설치해야한다.
sudo apt update
sudo apt search openjdk
sudo apt install openjdk-11-jdk
java -version
Jenkins 설치방법은 Jenkins 공식 홈페이지에 잘 설명되어있다.
Jenkins 접속방법
일단 Jenkins를 설치했으면 정상적으로 실행되어있는지 확인한다.
sudo systemctl start jenkins
sudo systemctl stop jenkins
sudo systemctl restart jenkins
기본적으로 Jenkins 포트를 변경하지 않으면 8080으로 설정되어 실행된다.
Jenkins 포트설정(Option)
혹시라도 기본포트를 변경하고 싶다면 아래 설정에서 변경 가능하다.
sudo vi /etc/default/jenkins
HTTP_PORT값을 원하는 포트값으로 변경한다.
변경 후 jenkins 서비스를 재시작 한다.
붉은색 하이라이킹된 부분을 복사하여 Jenkins의 관리자 패스워드를 알아낸뒤 붙여넣는다.
그다음 기본 Installer를 설치하고 사용하면 된다.
설치 시 주의사항
1.설치 서버는 최소사양보다 높게 잡자
여러 클라우드 서비스가 있지만 30만 크레딧을 추가로 받은 네이버 클라우드를 사용하고 있었다.
젠킨스를 서버에 설치하기 전 젠킨스의 최소사양을 확인해 보았다.
Hardware requirements:
- You need minimum 256 MB of RAM in your computer or laptop to install Jenkins.
- You need at least 1 GB of space in your hard drive for Jenkins.
그래서 네이버 클라우드가 무료로 제공하는 Micro 서버를 사용하니 다양한 문제가 발생되어 애먹었다..
플러그인 설치가 정상적으로 안된다던가.. 프로젝트 빌드를 하면 함흥차사던가..
그래서 이것저것 트러블 슈팅하다가 결국엔 서버성능 문제로 판단하여 한단계 올리니 모든 문제들이 해결되었다.
2.Jenkins 설치도중 에러
Failed to start LSB : Start Jenkins at boot time. 이라는 에러가 발생했다.
찾아보니 Java가 설치되어있지 않거나 Jenkins의 버전과 호환되지 않는 버전이 설치되어있다면 발생하는 에러였다.
Jenkins는 자바로 만들어 졌으므로 JVM위에서 동작한다.
현재 Jenkins는 자바버전 8, 11을 지원한다고 한다.
난 공식문서에 나와있는 8을 설치하였다.
그리고 빌드를 하기위해서는 gradle도 설치하여야 한다.
하지만 난 빌드는 프로젝트를 클론받아 gradlew를 사용할 것 이므로 별도의 설치를 하지 않았다.
혹시 필요하다면 아래 명령어로 설치하자.
./gradlew -v
스프링 부트에서 사용하고있는 버전을 확인한다.
sudo add-apt-repository ppa:cwchien/gradle #원하는 버전을 맞게 설치하기위해 repository를 추가한다.
sudo apt install gradle-6 # 하고 탭을 누르면 설치가능한 버전목록이 표출된다. 알맞는 버전선택하여 설치한다.
'프로젝트 > Careers' 카테고리의 다른 글
CI/CD 왜 필요한가? (0) | 2021.08.05 |
---|---|
Session Storage 선택과정 (0) | 2021.07.29 |
Java CheckStyle 적용 (0) | 2021.06.10 |
대규모 서버들의 세션 처리방법 (0) | 2021.04.29 |
대규모 트래픽을 고려한 서버 확장 방법 (0) | 2021.04.06 |
댓글