[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

29
Confidential [오픈소스컨설팅]애플리케이션 빌드 및 배포.docx Last printed on 3/1/2014 9:21:00 AM 애플리케이션 빌드 및 배포 Project Name: Internal Department: Consulting Group Focus Area: Amazon Web Service Product/Process: 애플리케이션 빌드 및 배포 Prepared By: Document Owner(s) Project/Organization Role Sang-Cheon Park([email protected]) Technical Assistance Ji-Woong Choi([email protected]) Consulting Coach Project Status Report Version Control Version Date Author Change Description 1.0 2014/02/11 Sang-Cheon Park Document created

Upload: ji-woong-choi

Post on 31-May-2015

4.947 views

Category:

Technology


8 download

DESCRIPTION

This document allows you to improve function on your build guide line in company. It includes Jenkins installation, configuration with Maven, revision check and so on.

TRANSCRIPT

Page 1: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Confidential

[오픈소스컨설팅]애플리케이션 빌드 및 배포.docx

Last printed on 3/1/2014 9:21:00 AM

애플리케이션 빌드 및 배포

Project Name: Internal

Department: Consulting Group

Focus Area: Amazon Web Service

Product/Process: 애플리케이션 빌드 및 배포

Prepared By:

Document Owner(s) Project/Organization Role

Sang-Cheon Park([email protected]) Technical Assistance

Ji-Woong Choi([email protected]) Consulting Coach

Project Status Report Version Control

Version Date Author Change Description

1.0 2014/02/11 Sang-Cheon Park Document created

Page 2: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 2 3/1/2014

TABLE OF CONTENTS

1 본 문서의 목적 ........................................................................................................................... 4

2 PYTHON 빌드/배포 시스템 ...................................................................................................... 4

3 JENKINS 빌드 시스템 구축 ....................................................................................................... 4

3.1 Jenkins 설치 .................................................................................................................. 5

3.2 보안 설정 ...................................................................................................................... 8

3.3 플러그인 설치 .............................................................................................................. 11

3.4 Jenkins 디렉토리 구조 ................................................................................................. 12

3.5 환경설정 ...................................................................................................................... 13

3.5.1 Maven 설정 ........................................................................................................... 13

3.5.2 Credentials ............................................................................................................ 14

3.6 View & Job(Item) ....................................................................................................... 15

4 애플리케이션 빌드 ................................................................................................................... 17

4.1 Job 생성 ...................................................................................................................... 17

4.2 빌드 수행 .................................................................................................................... 20

4.3 소스 Revision 태깅 ...................................................................................................... 21

4.3.1 pom.xml 수정 ....................................................................................................... 21

4.3.2 revision.jsp 파일 생성 ............................................................................................ 22

4.3.3 빌드 옵션 수정 ....................................................................................................... 23

5 애플리케이션 배포 ................................................................................................................... 25

5.1 Plugin 설치.................................................................................................................. 25

Page 3: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 3 3/1/2014

5.2 시스템설정 .................................................................................................................. 26

5.3 Job 수정 ...................................................................................................................... 27

5.3.1 빌드 수행 ............................................................................................................... 28

Page 4: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Confidential

[오픈소스컨설팅]애플리케이션 빌드 및 배포.docx

Last printed on 3/1/2014 9:21:00 AM

1 본 문서의 목적

본 문서는 기존 Python 빌드/배포 시스템을 대체할 수 있는 Jenkins 빌드 시스템의 구축과 tag,

branch 등 형상별 애플리케이션 빌드, AWS(Amazon Web Service) EC2 인스턴스로의

애플리케이션 배포 방법에 대한 내용을 담고 있다.

2 Python 빌드/배포 시스템

기존 Fabric 기반에서 사용하고 있는 빌드/배포 시스템은 Python 으로 직접 구현된 것으로

SVN 의 특정 애플리케이션 Branch 버전을 입력 받아 해당 애플리케이션을 빌드하고, 배포

대상 타깃 시스템을 선택함으로써 해당 시스템으로 애플리케이션이 배포되는 형태이다.

비록 기능상의 간결함과 커스터마이징을 통해 원하는 대로 수정이 가능하다는 장점이 있지만

기능 수정에 추가 구현이 필요하며 다양한 플러그인의 부재 및 Web UI 가 풍부하지 못한

단점이 있다.

본 문서에서 소개하려는 대표적인 CI 툴인 Jenkins 는 기존 빌드/배포 요건을 충족할 수 있을

뿐만 아니라 다양한 빌드 옵션과 플러그인을 제공함으로써 여러가지 상황에서 유연하게 대처할

수 있다.

3 Jenkins 빌드 시스템 구축

Jenkins 는 애플리케이션 빌드를 자동화 함으로써 지속적인 통합을 가능하게 해주는 대표적인

툴로써 본래 Hudson 이라는 이름을 사용했지만 Oracle 에 흡수되면서 발생한 여러 가지

이슈들로 인해 2011 년 Jenkins 라는 이름의 별도 프로젝트로 분리되었다.

빌드 자동화를 위해 CVS나 SVN 등의 형상관리 시스템에 접속이 가능해야 하며 따라서

대부분의 회사나 조직에서는 빌드 시스템을 형상관리 시스템과 마찬가지로 방화벽 안쪽에

위치시킨다.

Page 5: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 5 3/1/2014

3.1 Jenkins 설치

Jenkins 는 war 형태로 다운로드 받아 java –jar Jenkins_x.x.war 형태로 실행이 가능하지만

실행 스크립트 작성 및 서비스 등록 등을 자동화 하기 위해 Red Hat/Fedora/CentOS 계열의

OS 에서는 yum 명령을 이용하여 자동 설치한다.

다음 명령을 이용하여 Jenkins 를 설치한다.

~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-

ci.org/redhat/jenkins.repo

--2014-02-11 16:14:07-- http://pkg.jenkins-ci.org/redhat/jenkins.repo

Resolving pkg.jenkins-ci.org... 199.193.196.24

Connecting to pkg.jenkins-ci.org|199.193.196.24|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 75 [text/plain]

Saving to: `/etc/yum.repos.d/jenkins.repo'

100%[=========================================================

==============================================================

=====================>] 75 --.-K/s in 0s

2014-02-11 16:14:08 (10.4 MB/s) - `/etc/yum.repos.d/jenkins.repo' saved [75/75]

~]$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

~]$ sudo yum install jenkins

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

* base: centos.tt.co.kr

* extras: centos.tt.co.kr

* updates: centos.tt.co.kr

Setting up Install Process

Page 6: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 6 3/1/2014

Resolving Dependencies

--> Running transaction check

---> Package jenkins.noarch 0:1.550-1.1 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

==============================================================

==============================================================

==========================================================

Package Arch Version

Repository Size

==============================================================

==============================================================

==========================================================

Installing:

jenkins noarch 1.550-1.1

jenkins 58 M

Transaction Summary

==============================================================

==============================================================

==========================================================

Install 1 Package(s)

Total download size: 58 M

Installed size: 64 M

Is this ok [y/N]: y

Downloading Packages:

jenkins-1.550-1.1.noarch.rpm

| 58 MB 00:33

Page 7: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 7 3/1/2014

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : jenkins-1.550-1.1.noarch

1/1

warning: /etc/yum.repos.d/jenkins.repo created as /etc/yum.repos.d/jenkins.repo.rpmnew

Verifying : jenkins-1.550-1.1.noarch

1/1

Installed:

jenkins.noarch 0:1.550-1.1

Complete!

다음 명령을 이용하여 Jenkins 를 구동한다.

~]$ sudo service jenkins start

Starting Jenkins [ OK ]

- Jenkins 는 기본적으로 8080 포트로 Listening 하며, 변경을 원할 경우

/etc/sysconfig/jenkins 파일의 JENKINS_PORT="8080" 부분을 수정한다.

다음 명령을 이용하여 부팅 시 Jenkins 가 자동으로 시작하도록 서비스 등록한다.

~]$ sudo chkconfig jenkins on

~]$ sudo chkconfig --list | grep jenkins

jenkins 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제

브라우져를 통해 Jenkins 서버에 정상적으로 접근되는지 확인한다.

Page 8: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 8 3/1/2014

3.2 보안 설정

Jenkins 설치 후 기본적으로 Jenkins 접속이 가능한 사람은 로그인 과정 없이 모든 메뉴에 Full

Access 권한을 얻는다. 따라서 보안 설정을 통해 로그인 기능을 추가하고 각 사용자 별 접근

권한을 제어하도록 수정한다.

좌측의 “Jenkins 관리” 메뉴를 클릭한다.

“보안 설정” 버튼 또는 “Configure Global Security” 메뉴를 클릭한다.

- Enable Security 항목을 체크한다.

- Security Realm 항목에서 Jenkins’ own user database 를 선택한다.

Page 9: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 9 3/1/2014

- 사용자의 가입을 허용할 경우 임의의 사용자가 가입 후 로그인 할 수 있으며, 허용하지

않을 경우 Administrator 권한을 가진 사용자를 통해 계정을 생성할 수 있다. 관리적인

측면에서 사용자로부터 계정 생성 요청을 받고 관리자에 의한 계정 생성 절차를

수행하도록 권고한다.

Save 버튼을 클릭 후 메인 페이지로 이동하면 초기 사용자 가입 화면이 표시된다.

Page 10: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 10 3/1/2014

Sign Up 이후 Jenkins 관리 - Configure Global Security 메뉴를 선택하여 계정/그룹별

접근 권한을 재설정한다.

Page 11: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 11 3/1/2014

- Authorization 항목에서 Matrix-based security 를 체크한다.

- 관리자 계정을 추가하고 모든 권한을 추가 후 Save 버튼을 클릭한다.

이후 Jenkins 관리 – Manage Users 메뉴에서 사용자를 추가/삭제할 수 있으며 위와 같이

각 사용자에 대한 권한을 관리할 수 있다.

3.3 플러그인 설치

Jenkins 는 3rd party plugin 을 통해 기능을 확장시킬 수 있다.

Jenkins 관리 – 플러그인 관리 메뉴를 선택한다.

Page 12: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 12 3/1/2014

- 설치된 플러그인 목록 탭에서 현재 설치되어 있는 플러그인 목록을 확인한다.

- 설치 가능 탭에서 필요한 플러그인 목록을 탐색하여 설치할 수 있다.

- SVN, Maven 등 필수 플러그인은 기본으로 설치되어 있으며, 커버리지 분석 및 코드

인스펙션 등이 필요할 경우 해당 플러그인을 설치할 수 있다.

3.4 Jenkins 디렉토리 구조

Jenkins 는 빌드를 수행하고 archive 파일을 저장하기 위해 디스크 공간을 필요로 하며, 다음과

같은 구조를 가진다.

JENKINS_HOME (/var/lib/jenkins)

+- config.xml (jenkins 기본 설정 파일)

+- *.xml (other site-wide configuration files)

+- userContent (http://${server}:${port}/userContent/ 로 접속 가능한 컨텐츠)

+- fingerprints (fingerprint records 가 저장되는 디렉토리)

+- plugins (plugins 이 저장되는 디렉토리)

+- jobs

+- [JOBNAME] (각 job 별 서브 디렉토리)

+- config.xml (job 설정파일)

Page 13: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 13 3/1/2014

+- workspace (working directory)

+- latest (최근 성공적인 빌드에 대한 심볼릭 링크)

+- builds

+- [BUILD_ID] (각 빌드별 서브 디렉토리)

+- build.xml (빌드 결과 요약)

+- log (로그 디렉토리)

+- changelog.xml (변경 로그)

3.5 환경설정

Jenkins 시스템 환경설정을 통해 Maven 실행 환경 및 SVN 접속을 위한 credential 설정을

수행한다.

3.5.1 Maven 설정

Jenkins 빌드 시스템에 Maven 이 설치되어 있지 않을 경우,

http://preilly.me/2013/05/10/how-to-install-maven-on-centos/ 를 참고하여 Maven 을

설치한다.

Jenkins 관리 – 시스템 설정 메뉴를 클릭한다.

Maven 항목에서 Maven installations 버튼을 클릭한다.

Page 14: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 14 3/1/2014

Name 및 maven 이 설치된 경로(MAVEN_HOME)을 입력하고 저장 버튼을 클릭한다.

3.5.2 Credentials

SVN 접속 정보를 저장하기 위한 Credential 을 추가한다.

좌측의 Credentials 메뉴를 클릭하고 Add domain 링크를 클릭한다.

Domain Name 에 SVN 서버의 호스트 IP 또는 호스트 명을 입력하고 저장 버튼을 클릭한다.

Add Credentials 화면으로 username 과 password 를 이용한 인증을 사용하기 때문에

Kind 에 Username with password 를 선택하고 접속 정보를 입력 후 OK 버튼을 클릭한다.

Page 15: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 15 3/1/2014

3.6 View & Job(Item)

View 와 Job 은 Jenkins 내에서 빌드 프로세스를 관리하기 위한 기본 개념으로 Job(Item)은

하나의 빌드 프로세스를 의미하고 View 는 여러 Job 의 집합을 의미한다.

Page 16: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 16 3/1/2014

View 는 최소 하나 이상의 Job(Item)을 생성 이후에 추가할 수 있으며, Job(Item)의 생성은

4. 애플리케이션 빌드에서 설명한다.

Page 17: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Confidential

[오픈소스컨설팅]애플리케이션 빌드 및 배포.docx

Last printed on 3/1/2014 9:21:00 AM

4 애플리케이션 빌드

애플리케이션 빌드를 위한 Job 생성 및 설정 방법을 가이드하고 빌드를 수행한다.

4.1 Job 생성

빌드 작업을 위한 새로운 Job 을 생성하고 설정한다.

새 작업 링크를 클릭하거나 좌측의 새로운 Item 메뉴를 클릭한다.

Job(Item) 이름을 입력하고 Build a free-style software project 를 선택한다.

Job 이 생성되고 나면 Job 구성 메뉴가 표시되며, 소스 코드 관리 항목에서 Subversion 을

선택하고 URL 정보를 입력하고 앞절에서 생성한 Credentials 정보를 선택한다.

Page 18: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 18 3/1/2014

- Check-out Strategy: Use ‘svn update’ as much as possible 을 선택하면 처음에만 소스

코드를 전체 다운로드 받고, 두번째 부터는 변경된 소스 코드만 다운로드 받기 때문에 소스

코드를 다운 받는 시간을 많이 줄일 수 있다.

- tags 나 branch 를 사용하여 빌드할 경우 Repository URL 에 해당 tags 나 branch 의

URL 정보를 입력한다.

Build 항목에서 Add build step 콤보박스를 선택하고 Invoke top-level Maven targets 를

선택 후 앞 절에서 설정한 Maven 실행 환경 및 Goals 를 입력한다.

Page 19: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 19 3/1/2014

그 밖에 Job 관리 항목으로 빌드 유발 및 빌드 후 조치 추가 항목이 있다.

빌드 유발 : 빌드가 언제 수행되어야 하는지 설정하는 항목으로 다음 네 가지 옵션을 중복

선택할 수 있다.

- 다른 프로젝트가 빌드된 후 빌드함

- 빌드를 원격으로 유발 (예: 스크립트 사용)

- Build periodically : Cron Expression 을 사용하여 빌드 수행 주기를 지정할 수 있다.

- Poll SCM : 지정한 주기별로 소스 관리 시스템을 폴링(체크)하여 변경이 있을 경우에만

빌드를 수행한다.

빌드 후 조치 추가 : 빌드가 완료된 이후의 작업을 설정하는 항목으로 다음 각각의 옵션을

중복하여 설정할 수 있다.

- Aggregate downstream test results

- Archive the artifacts

- Build other projects

- Publish JUnit test result report

- Public Javadoc

Page 20: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 20 3/1/2014

- Record fingerprints of files to track usage

- E-mail Notification

4.2 빌드 수행

추가된 Job 에 대한 수동 빌드를 수행한다.빌드를 수행하려는 Job 을 선택하고 좌측의 Build

Now 를 클릭하여 수동 빌드를 수행한다.

빌드를 수행하려는 Job 을 선택하고 좌측의 Build Now 를 클릭한다.

Page 21: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 21 3/1/2014

4.3 소스 Revision 태깅

현재 동작중인 애플리케이션의 SVN Revision 번호와 빌드 날짜를 태깅함으로써 애플리케이션

변경 여부를 확인할 수 있다.

4.3.1 pom.xml 수정

빌드 시 SVN Revision 정보와 빌드 날짜를 태깅하기 위해 pom.xml 파일을 다음과 같이

수정한다.

<properties>

<maven.build.timestamp.format>YYYY.MM.dd. HH:mm:ss</maven.build.timestamp.format>

<buildNumber>${maven.build.timestamp}</buildNumber>

</properties>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

Page 22: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 22 3/1/2014

<artifactId>maven-antrun-plugin</artifactId>

<version>1.7</version>

<executions>

<execution>

<id>Revision Tagging</id>

<phase>package</phase>

<configuration>

<target name="jar-checkversion">

<jar destfile="target/checkversion.jar">

<manifest>

<attribute name="Revision-Number" value="${SVN.Revision}" />

<attribute name="Build-Date" value="${maven.build.timestamp}" />

</manifest>

</jar>

<copy file="target/checkversion.jar" tofile="target/${project.artifactId}-

${project.version}/WEB-INF/lib/checkversion.jar" overwrite="true" failonerror="false" />

</target>

</configuration>

<goals>

<goal>run</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

4.3.2 revision.jsp 파일 생성

SVN Revision 번호 및 빌드 실행 시간을 확인할 수 있는 JSP 페이지를 생성한다.

<%@ page import="java.util.*, java.io.*, java.util.jar.*" %>

<%!

public String [] checkVersion(String jarFileUrl) throws Exception {

JarFile jarFile = new JarFile(new File(jarFileUrl));

Manifest manifest = jarFile.getManifest();

Attributes attributes = (Attributes) manifest.getMainAttributes();

String buildDate = attributes.getValue("Build-Date");

String revision = attributes.getValue("Revision-Number");

return new String [] {buildDate, revision};

}

%>

Page 23: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 23 3/1/2014

<%

String portalJar = "/Development/project/peacock/workspace/spring-

sample/chapter4/src/main/webapp/WEB-INF/lib/checkversion.jar";

String [] data = checkVersion(portalJar);

out.println("Revision<br>");

out.println("===============================<br>");

out.println("Build Date : " + data[0] + "<br>");

out.println("Revision : " + data[1] + "<br><p>");

%>

4.3.3 빌드 옵션 수정

Jenkins 를 통해 SVN.Revision 파라메타 값을 세팅하기 위해 빌드 옵션을 수정한다.

위와 같이 수정하고 빌드 후 배포하면 revision.jsp 파일을 통해 다음과 같이 SVN Revision

및 빌드 수행 시간을 확인할 수 있다.

Page 24: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 24 3/1/2014

Page 25: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Confidential

[오픈소스컨설팅]애플리케이션 빌드 및 배포.docx

Last printed on 3/1/2014 9:21:00 AM

5 애플리케이션 배포

빌드 결과 패키징 파일에 대한 서버 배포 방법에는 다음과 같은 여러 가지 방법이 존재한다.

수동 배포

: Jenkins 빌드 시스템에 접속 후 스크립트 등을 이용하여 서버에 수동으로 배포한다.

Maven 설정 파일 이용한 자동 배포

: war 패키징 파일을 WAS 로 배포하기 위해 사용할 수 있으며 pom.xml 파일에 각 WAS 별

plugin 을 이용하여 빌드 후 자동 배포를 수행한다.

: 버전에 따라 Tomcat Manager 가 필요할 수 있다.

Deploy Plugin 이용한 자동 배포

: Deploy Jenkins Plugin 을 통해 war/ear 패키징 파일을 Tomcat 4.x/5.x/6.x/7.x, JBoss

3.x/4.x, Glassfish 2.x/3.x 서버로 자동 배포를 수행한다.

Publish Over SSH Plugin 이용한 자동 배포

: Publish Over SSH Jenkins Plugin 을 통해 패키징 결과 파일을 SCP 또는 SFTP 를

이용하여 배포하고 별도의 command 를 실행시킬 수 있다.

Publish Over FTP 이용한 자동 배포

: Publish Over FTP Jenkins Plugin 을 통해 패키징 결과 파일을 FTP 를 이용하여 배포할 수

있다.

본 문서에서는 패키징 파일의 유형에 관계없이 범용으로 사용할 수 있는 Publish Over SSH

Plugin 을 사용한 배포를 가이드한다.

5.1 Plugin 설치

Publish Over SSH Jenkins Plugin 을 다음과 같이 설치한다.

Jenkins 관리 – 플러그인 관리 메뉴를 선택하고 설치 가능 탭에서 Publish Over SSH 를

검색한다.

Page 26: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 26 3/1/2014

플러그인 설치를 수행한다. (Jenkins 를 재시작 해야 적용됨)

5.2 시스템설정

SSH 접속 정보를 설정한다.

Jenkins 관리 – 시스템 설정 메뉴를 클릭하고 Publish over SSH 항목에서 서버 및 계정 등

SSH 접속 정보를 설정한다.

Page 27: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 27 3/1/2014

5.3 Job 수정

Job 구성 메뉴에서 빌드 후 조치 항목에 Send build artifacts over SSH 옵션이 포함되어 있는

것을 확인할 수 있으며 앞절에서 설정한 서버 정보를 이용한다.

Page 28: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 28 3/1/2014

Source files : 배포 대상 패키징 파일

Remove prefix : 배포 대상 패키징 파일이 위치한 workspace/job_name 하위의 경로(eg.

target)를 제거할 수 있다. 비어있거나 경로가 일치하지 않을 경우 Remote directory 하위에 동일

서브 디렉토리가 생성된다.

Remote directory : 시스템 설정의 SSH Server 항목에서 설정한 Remote Directory 에서의

상대 경로

Exec command : 패키징 파일 전송 후 실행될 명령 또는 스크립트

5.3.1 빌드 수행

설정이 정상적으로 적용되었는지 Build Now 를 클릭하여 빌드를 수행하고 관련 로그를

확인한다.

Page 29: [오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211

Configuration Report

Confidential Page 29 3/1/2014

……