모범 사례 및 튜토리얼

Jenkins 및 Java로 지속적 배포 파이프라인 만들기

최근에는 Jenkins와 많은 작업을 하고 있습니다. 를 사용하여 Java JAR 파일을 실행합니다. 를 사용하여 애플리케이션 중 하나를 지속적으로 배포할 수 있습니다. 아직 보시지 못하신 분들을 위해 기조 연설 데모는 카우치베이스 커넥트 2016 는 Jenkins를 사용하여 GitHub에서 변경 사항이 감지될 때마다 Java 백엔드와 Angular 프론트엔드를 빌드하고 다시 배포했습니다. 이것이 제가 빌드하는 데 도움을 준 애플리케이션입니다.

그렇다면 어떻게 활용했을까요? Jenkins 이 Java 애플리케이션 배포? 만드는 방법을 살펴보겠습니다. 를 사용하여 JAR 파일을 생성하면 다음과 같이 됩니다. 서버에 빌드 및 배포를 포함하는 지속적인 배포 파이프라인입니다.

명확히 말씀드리자면, 여기서는 Couchbase Connect 2016 애플리케이션을 사용하는 방법에 대해서는 설명하지 않겠습니다. GitTalent를 사용하면 좀 더 복잡해집니다. 이해를 돕기 위해 천천히 시작하겠습니다.

요구 사항

이 가이드를 성공적으로 사용하려면 몇 가지 요구 사항을 충족해야 합니다. 아래에서 확인할 수 있습니다:

이 예제에서는 Jenkins, JDK 및 Couchbase Server가 모두 동일한 시스템에 상주합니다. 즉, Jenkins 지속적 배포 스크립트는 GitHub에서 코드를 가져와 JDK를 사용하여 빌드한 다음 원격 서버가 아닌 로컬에 게시합니다. 즉, 커밋이 발견될 때 Jenkins가 자동으로 빌드하도록 하려면 로컬 호스트가 아닌 머신이 필요하므로 이 예제에서는 일부 자동화가 제거되었습니다. 이 가이드의 효과는 여전히 유효합니다.

카우치베이스는 필수 요건이지만 이 가이드의 초점은 아닙니다. GitHub에서 가져올 샘플 애플리케이션에 반드시 있어야 합니다.

필수 플러그인 및 종속성으로 Jenkins 구성하기

이 시점에서 최소한 Jenkins를 다운로드하셨을 것입니다. 처음 사용하는 사용자에게는 다소 혼란스러울 수 있으므로 설정하는 방법을 안내해 드리겠습니다.

명령 프롬프트 또는 터미널에서 다음을 실행하여 Jenkins를 실행할 수 있습니다:

위의 명령은 다음 주소에서 Jenkins에 액세스할 수 있도록 합니다. http://localhost:8080 를 클릭합니다. 처음 실행하면 구성 마법사를 통해 안내를 받게 됩니다.

Jenkins Configuration Part 1

첫 번째 구성 단계의 일부로 슈퍼 관리자 비밀번호로 사용할 생성된 값을 얻어야 합니다.

화면의 안내에 따라 비밀번호를 입력하면 Jenkins 플러그인 설치에 대한 메시지가 표시됩니다.

Jenkins Configuration Part 2

먼저 추천 플러그인을 설치한 다음 나중에 추가 플러그인을 설치하겠습니다. 시간이 다소 걸릴 수 있지만 추천 플러그인을 설치한 후에는 첫 번째 관리 사용자 계정을 설정하라는 메시지가 표시됩니다.

Jenkins Configuration Part 3

관리 사용자를 만들거나 생성된 비밀번호를 계속 사용하도록 선택하여 Jenkins로 작업할 수 있습니다.

계정을 만들면 Jenkins를 사용할 준비가 된 것입니다. 첫 번째 워크플로 또는 작업을 만들기 전에 추가 플러그인을 설치해야 합니다.

Manage Jenkins

다음을 선택할 수 있습니다. 젠킨스 관리 를 클릭하면 관리 섹션 목록이 표시되며, 그 중 하나가 플러그인 관리 섹션입니다.

다음을 선택합니다. 플러그인 관리 를 검색하고 빌드 후 스크립트 플러그인.

Install Jenkins Post-Build Script Plugin

이 플러그인을 사용하면 빌드가 오류 없이 완료된 후 Jenkin 호스트에서 스크립트를 실행할 수 있습니다.  Jenkins가 패키징된 후 JAR을 배포하려면 이 정보가 필요합니다..

이제 Jenkins 전체가 구성되었습니다. 일자리를 창출할 준비가 되었지만 먼저 카우치베이스 준비 완료.

문서 저장용 버킷으로 카우치베이스 준비하기

카우치베이스가 이 예제의 핵심은 아니지만, 이전 프로젝트 중 하나를 사용하고 있기 때문에 프로젝트에 따른 요구 사항이었어요.

아직 Couchbase를 다운로드하지 않았다면 지금 다운로드하여 구성을 안내받으세요. Couchbase 구성에 대한 도움이 필요한 경우 이전 기사 제가 썼어요.

중요한 것은 우리가 사용할 버킷입니다. 다음과 같은 제목의 버킷을 만들어야 합니다. restful-sample 최소한 기본 N1QL 인덱스가 있어야 합니다.

이와 관련하여 도움이 필요하면 프로젝트에 대한 전체 글을 참조하세요. 여기. 물론 이 글에는 Jenkins를 사용한 지속적 배포는 포함되지 않았습니다.

이제 파이프라인에 집중할 수 있습니다.

Java로 개발한 애플리케이션 빌드 및 배포를 위한 작업 만들기

Jenkins와 Couchbase가 준비되었으므로 이제 파이프라인을 제어할 작업을 만드는 데 집중할 수 있습니다. 계획을 다시 한 번 설명하자면, 빌드 프로세스에서 GitHub에서 가져오고, 빌드 프로세스에서 JAR을 패키징하고, 빌드 후(배포) 프로세스 중에 해당 JAR을 배포할 것입니다.

계속해서 Jenkins에서 새 작업을 만드세요. 가장 먼저 프로젝트 이름과 프로젝트 이름 유형을 묻는 메시지가 표시됩니다.

Jenkins Freestyle Java Project

작업에 고유한 이름을 지정하고 다음을 사용해야 합니다. 프리스타일 프로젝트 를 선택합니다. 이 프로젝트를 구성할 때 가장 먼저 고려해야 할 사항은 사용할 GitHub 리포지토리입니다.

Jenkins Java Project Source Control

리포지토리가 공개가 아닌 경우 자격 증명을 추가할 수 있으므로 걱정하지 않아도 되지만 이 예제에서는 프로젝트가 공개되어 있습니다.

여기에 있는 프로젝트를 사용하고 있습니다:

원한다면 자신만의 프로젝트를 자유롭게 사용하세요. 소스 컨트롤을 파악했으면 이제 빌드 단계.

Jenkins Build Java Project

여기에 Git에서 가져온 애플리케이션을 빌드하기 위해 원하는 셸 명령을 입력할 수 있습니다.

이 예제에서는 다음 명령을 추가하여 JAR 파일만 생성하고자 합니다:

이렇게 하면 JAR 파일이 새로운 대상 디렉터리를 삭제합니다. 마지막 단계는 이미 실행 중인 애플리케이션 인스턴스를 종료하고 다시 실행하는 것입니다.

설치한 이후 빌드 후 플러그인 스크립트 빌드에 어떤 일이 발생하는지 정의할 수 있습니다.

Jenkins Post-Build Java Actions

이 예제에서는 다른 머신에 배포하지 않지만 배포할 수 있습니다. 대신 로컬 컴퓨터에서 실행하겠습니다.

셸 스크립트를 실행하도록 선택하고 다음을 포함합니다:

위의 방법은 약간 속임수이지만 동일한 컴퓨터에서 모든 것을 로컬로 실행하기 때문에 필요합니다.

첫 번째 명령은 내 Mac에서 Java 애플리케이션처럼 보이는 실행 중인 모든 프로세스를 검색합니다. 프로세스가 발견되면 프로세스를 종료합니다. 프로세스를 찾지 못하더라도 파이프 때문에 true를 반환합니다. 이렇게 하면 작업이 실패하는 것을 방지할 수 있습니다.

프로세스가 중지된 후에는 빌드된 JAR을 백그라운드에서 실행합니다.

Linux나 Windows에서 로컬로 실행하는 경우에는 스크립트가 약간 다를 수 있습니다. 프로덕션 시나리오에서는 Jenkins용 SSH 플러그인을 사용하여 JAR을 일부 서버로 푸시하고 제어 데몬을 다시 시작하게 될 것입니다.

계속해서 다음을 사용하여 작업을 실행해 보십시오. 지금 구축 버튼을 클릭합니다. 수동으로 시작하고 싶지 않다면 방금 살펴본 구성 영역에 후크나 크론 타이머를 추가하는 것도 고려해 보세요.

모든 것이 순조롭게 진행되면 다음에서 Java 애플리케이션에 액세스할 수 있습니다. http://localhost:8081 를 호출하면 Couchbase 서버와 통신합니다.

결론

방금 방법을 확인하셨습니다. 에 JAR 파일을 배포합니다. Jenkins 를 사용하여 Couchbase Server와 통신하는 Java 애플리케이션을 지속적으로 배포할 수 있습니다. 이 Jenkins 구성은 GitHub에서 가져와서 JAR을 빌드하고 배포합니다. 프로덕션 시나리오에서는 좀 더 다듬어야 하지만 시작하기에 좋은 방법입니다.

Docker 컨테이너에 번들로 제공되는 마이크로서비스의 지속적인 배포를 위해 Jenkins를 사용하고 싶으신가요? 제가 쓴 이전 글을 확인해 보세요, Jenkins 및 Docker를 사용한 웹 애플리케이션 컨테이너의 지속적인 배포.

Couchbase와 함께 Java 지속적 배포를 사용하는 방법에 대해 더 자세히 알고 싶으신가요? 다음을 확인하세요. 카우치베이스 개발자 포털 에서 예제와 문서를 확인하세요.

카우치베이스 커넥트 2016을 확인해 보시기 바랍니다. 키노트 데모 아직 설치하지 않으셨다면요.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Nic Raboy, 개발자 옹호자, Couchbase

닉 라보이는 최신 웹 및 모바일 개발 기술을 옹호하는 사람입니다. 그는 Java, JavaScript, Golang 및 Angular, NativeScript, Apache Cordova와 같은 다양한 프레임워크에 대한 경험이 있습니다. Nic은 웹 및 모바일 개발을 보다 쉽게 이해할 수 있도록 자신의 개발 경험에 대해 글을 쓰고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.