무중단 배포 진행하기 5

무중단 배포 진행하기 2023 (3) - 젠킨스 잡 Setting 및 실행파일 확인하기

젠킨스 잡 Setting 아래와 같이 새로운 잡을 생성한다. 설정 완료 후 , 설정한 브랜치에 push을 하면 아래와 같이 자동으로 빌드가 된다. CD(Continues deploy) - 실행 파일 생성하기 수정사항 기존에는 맥 로컬에 Jenkins을 설치하여, 해당 프로젝트를 진행하려 했으나, 맥 로컬의 원격 접속 IP가 재부팅하면 바뀌는 이슈가 있어, Centos7 으로 OS을 변경하였다. (centos7 젠킨스 위치 : sudo vim /etc/sysconfig/jenkins) push을 하면 자동으로 빌드가 되고, 이 파일 위치는 아래와 같다. /var/lib/jenkins/workspace/파일이름 이후 젠킨스 관리 → Tools → Gradle에서 Add Gradle을 한다. https://g..

무중단 배포 진행하기 2023 (4) - profile 간단 설정

개요 대부분의 무중단 배포 관련 블로그에서는 프로필(profile) 설정을 필수로 언급하고 있다. 일반적으로 현업에서는 무중단 배포을 위해 여러 대의 머신(인스턴스)을 사용하고 있기 때문에 이 경우 프로필 과정은 필요하지 않다. 그러나 많은 사람들이 무중단 배포를 사이드 프로젝트로 진행하고 있는데, 이 경우 머신의 개수가 제한되어 있어,단일 머신에서 무중단 배포 환경을 구축하는 상황이기 때문이다. 이런 경우를 위해 2개의 프로필을 생성하여 프로젝트를 다른 포트 번호로 실행하고 있다. application.properties 설정 properties 설정에 spring.config.activate.on-profile=이름 을 추가해야한다. 만약 해당 profile의 DB, PORT 등 설정을 다르게 두고 ..

무중단 배포 진행하기 2023 - 젠킨스 빌드 시 3가지 에러 상황

첫번 째 에러 상황 ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-11-openjdk-devel.x86_64/bin/javac Please set the JAVA_HOME variable in your environment to match the location of your Java installation. Build step 'Invoke Gradle script' changed build result to FAILURE Build step 'Invoke Gradle script' marked build as failure Finished: FAILURE 생각해보니, 해당 프로젝트는 java 17 버전으로 빌드해야해서, java..

무중단 배포 진행하기 2023 (2) - 젠킨스 생성 및 github과 연동하기

젠킨스 생성하기 먼저 젠킨스를 사용하는 이유부터 알아보자. 만약 젠킨스같은 CI/CD을 사용하지 않고 어떠한 작업이 있어서 소스코드를 수정하거나, 추가한다고 가정하자. 작업 이후에 배포 파일(Jar)을 만들고(빌드), 서비스가 배포되고 있는 머신에 배포파일(Jar)을 보내야한다. 그렇게 된다면, 소스 한줄 바꾸더라도, 개발자가 직접 빌드하고, 빌드된 파일을 배포하는 작업까지 매번 하기 상당히 귀찮을 것이다. 이 동작을 자동화 해주는 것이 젠킨스이다. 실무에서 젠킨스를 구축한다면, 도커, 추가 머신을 이용하여 젠킨스 서버를 따로 띄울 것 같은데, 그럴만한 여건이 안되기 때문에 젠킨스를 로컬에서 띄우기로 하였다. 해당 링크를 참고하였다. 다만 jenkins의 포트를 변경할 때 아래의 주소에서 젠킨스 설정파일..

무중단 배포 진행하기 2023 (1) - 클라우드 인스턴스 원격 접속하기

개요 토이 프로젝트로 무중단 배포 하는걸 시작하였다. 회사에서도 무중단 배포를 하고 있지만, 이미 만들어진 걸 사용하고 있었기 때문에 이해도가 부족하다고 스스로 생각하여, 직접 무중단 배포 환경을 구축해보기로 하였다. 도커를 사용하면 좋지만, 일단 무중단 배포 개념만 학습하기로 하여, 도커는 사용하지 않았고, 추후 디벨롭 과정에서 사용할 예정이다. 로컬 환경 : Mac os(DB, Jenkins) 배포 환경 : Centos 7 DB : MYSQL 배포 파일 : JAR 파일 (Spring boot, Gradle) 클라우드 인스턴스 원격 접속하기 오라클 클라우드를 사용하려 했는데, 카드 번호와 주소? 문제로 회원가입이 계속 안됐고, 결국 사내에서 개인 공부용으로 제공하는 NHN 클라우드를 사용해서 인스턴스를..

728x90