Getting Started

본 장에서는 Oden을 사용하기 위한 설치요구사항과 설치 및 설정에 대한 소개를 제공한다.

System Requirements

Anyframe Oden을 설치하기 위해서는 다음의 요구사항을 충족해야 한다.

  • Oden Server 및 Agent 설치요구사항

    • Java Runtime Environment 1.5.0 or above

    • 10MB of free physical disk space

  • Oden Eclipse Plug-in 설치요구사항

    • Java Runtime Environment 1.5.0 or above

    • Eclipse IDE for Java EE Developers (Ganymede/Galileo) or equivalent

    • Anyframe Common 3.0.0 or above

    • 기타 하드웨어 및 소프트웨어 요구사항은 위 Eclipse 버전별 요구사항을 따름

Note

Anyframe Java 개발을 원활하게 진행하기 위해 "Anyframe Open Source Community" 에서 배포하는 Eclipse 배포본의 사용을 권장한다.

Installing Anyframe Oden

Server and Agents

Oden은 Server와 Agent로 구성되어 있다. Agent는 파일이 배포될 서버인 배포대상서버 (Target Server) [10] 에 설치되어 Oden Server에서 지시하는 명령에 따라 파일을 배포한다. Oden Server는 여러개의 Agent를 관리하며 사용자는 Shell이나 Eclipse Plug-in과 같은 UI환경을 통해 Oden Server에 명령을 내리게 된다. 사용자는 Agent에 직접 명령을 내릴 수 없으며, Oden Server를 통해 Agent에 명령을 내려야 한다. Oden Server는 기본적으로 Agent를 하나 내장하고 있으므로, Oden Server가 설치된 장비에는 별도의 Agent를 설치할 필요가 없다.

Installing Server and Agents

배포될 파일이 존재하는 빌드리파지토리 (Build Repository) [11] 와 파일을 배포할 서버인 Target Server가 있을 때, Oden Server를 Build Repository에 설치할 수도 있고 Target Server에 설치할 수도 있다. Target Server에 Oden Server를 설치하게 되면 Oden Agent를 따로 설치할 필요없이 Oden Server에 내장되어 있는 Oden Agent를 이용할 수 있다. 다만, Build Repository는 물리적으로 다른 장비에 위치하고 있을 경우에는 둘 간의 통신을 위해 FTP를 사용해야 한다. Build Repository에 Oden Server를 설치하게 되면, Target Server에 Oden Agent를 별도로 설치해야 하나 FTP를 사용하여 Build Repository에 접근하지 않아도 되므로 속도가 빠르다.

Oden Server의 압축을 풀면 아래와 같은 구조로 되어 있다.

[Oden Server 설치 디렉토리]
	|
	+---- bin
	|  |
	|  +---- oden-x.x.x.jar    // 실행할 바이너리 파일 
	|
	+---- bundle    // Oden 실행시 필요한 library 파일들이 들어 있음. 
	|
	+---- conf	
	   |
	   +---- oden.ini    // Oden Server 설정파일 
	   |
	   +---- config.xml    // Oden Agent 및 기타 Oden 설정이 들어 있는 파일

Oden Agent는 아래와 같은 구조로 되어 있다.

[Oden Agent 설치 디렉토리]
	|
	+---- bin
	|  |
	|  +---- oden-x.x.x.jar    // 실행할 바이너리 파일 
	|
	+---- bundle    // Oden 실행시 필요한 library 파일들이 들어 있음.

Oden Server와 Agent의 실행 및 설정에 관한 사항은 아래를 참고하도록 한다.

Configuring Server and Agents

위에서 언급했듯이 Oden Server를 Build Repository에 설치할 수도 있고 Target Server에 설치할 수도 있다. 여기서는 우선 Build Repository에 Oden Server를 설치하고 Target Server에 Oden Agent를 설치했다고 가정하고 Oden 설정을 하는 방법을 설명하도록 하겠다. Oden Server에서 Oden Agent를 인식시키게 하기 위해서는 conf/config.xml에 Oden Agent의 정보를 입력해 주어야 한다. conf/config.xml을 열어 Oden Agent가 제대로 등록이 되어 있는지 확인한다.

...
<agents>
    <agent name="agent0">
        <address host="177.11.22.33" port="9862"/>
        <default-location value="C:/tomcat/webapps/anyframe-app"/>
        <backup-location value="C:/oden/backup"/>
    </agent>
</agents>
...

Oden Agent가 설치된 Target Server의 주소(여기서는 177.11.22.33)를 <address .../> 란에 넣어 주었다. Agent의 기본 포트는 9862이며 실행시 -port옵션을 통해 변경할 수 있다. Oden Agent에 배포할 때 배포할 기본 위치를 default-location에 설정하며, 여기서는 Target Server에 있는 application의 root 디렉터리를 default-location으로 지정하였다. backup-location은 파일 백업이나 배포 취소를 위해 임시로 사용하는 경로이며, 필수로 설정되어 있어야 한다. (default-location과 동일하거나 default-location 하위 경로를 설정해 주어서는 안된다.) config.xml에 Agent정보를 추가하였으면, 우선 Oden을 사용할 준비는 끝났다. (config.xml은 수정 후 재부팅하지 않아도 된다.)

이번에는 Build Repository에 Oden Server를 설치하고 Target Server에 Oden Agent를 설치하는 방법을 설명하도록 하겠다. Target Server에 Oden Server를 설치하였기 때문에 별도의 Agent를 설치하지 않고 Oden Server에 내장되어 있는 Agent를 통해 파일을 배포할 것이다. 내장된 Agent라 하더라도 Oden Server에서 Agent를 인식하게 하기 위해서는 conf/config.xml에 Agent의 정보를 입력해 주어야 한다. Build Repository는 떨어져 있으므로 Oden 명령어를 실행할 때 FTP 프로토콜을 이용하여 Build Repository에 접근하여야 한다. conf/config.xml을 열어 Oden Agent가 제대로 등록이 되어 있는지 확인한다.

...
<agents>
    <agent name="agent0">
        <address host="localhost" port="9862"/>
        <default-location value="C:/tomcat/webapps/anyframe-app"/>
        <backup-location value="C:/oden/backup"/>
    </agent>
</agents>
...

여기서는 Oden Server에 내장된 Agent를 사용할 것이므로 address항목에 localhost를 넣어 주었다. Agent의 기본 포트는 9862이며 conf/oden.ini나 실행시 -port옵션에서 변경할 수 있다. 여기서는 Target Server (Oden Server가 설치되어 있는 PC)에 존재하는 application의 root 디렉터리를 default-location으로 지정하였다. config.xml은 수정후 재부팅하지 않아도 된다. config.xml에 Agent정보를 추가하였으면, 우선 Oden을 사용할 준비는 끝났다.

oden.ini 와 config.xml을 통해 Oden Server의 설정을 변경할 수 있다. Oden Agent는 oden.ini 파일이 없으므로 Oden Agent 의 포트 변경을 위해서는 구동시 -port <포트번호> 옵션을 사용하여 구동시키면 된다.

Note

oden.ini를 통해 Oden Server자체의 설정을 변경할 수 있다. 변경 내용을 적용하기 위해서는 서버를 재구동 시켜야 한다.

  • bundle.libs: Oden library 목록. bundle 폴더에 있는 jar 파일중 이 목록 외의 파일만 active 상태가 되며, 이 목록에 설정된 파일은 비활성화 상태가 되어 library 로써만 사용된다. 수정할 필요 없음.

  • log.level: log파일에 뿌려질 로그 레벨(1 = error, 2 = warning, 3 = info, 4 = debug). 로그파일은 meta폴더에서 확인할 수 있다. Oden에 문제가 생겼을 시 디버깅하기 위한 용도로 사용되며, 일반적으로 수정할 필요는 없다.

  • http.port: Telnet이 아닌 Eclipse Plug-in과 같은 UI와 통신하기 위한 포트.

  • shell.port: Telnet으로 Oden Shell에 접근할 때 사용하는 포트.

  • agent.port: Oden Server에 내장된 Agent에 접근하기 위한 포트.

  • shell.maxconn: telnet으로 oden 접속시 허용가능한 세션 수.

  • deploy.undo: 배포전 기존 파일을 백업할지 여부. 백업을 하게 되면 가장 최근 배포에 대해 배포 취소가 가능하다. 단 백업본 관리하는데 리소스(시간, 용량)가 들게 된다.(true/false)

Note

Oden Agent를 Oden Server에서 인식하게 하기 위해서는 config.xml에 Agent정보를 추가해 줘야 한다. Oden Server 실행과 동시에 구동되는 Oden Agent의 정보 역시 config.xml에 설정해 줘야 한다. config.xml의 값은 Oden Server의 재구동 없이 바로 적용된다. 기본 형태는 아래와 같다.

<oden>
    <agents>
        <agent name="">
            <address host="" port=""/>
            <default-location value=""/>
            <backup-location value=""/>
            <location name="" value=""/>
            <location /> ...
        </agent>
        <agent name="">
            <!-- 이 곳에 두번째 Agent의 정보를 설정한다. -->
        </agent>
    </agents>
</oden>

agent name에 Agent를 지칭할 Unique한 값을 넣어준다. 이 이름은 Oden 명령어에서 사용될 것이다. address의 host속성에는 Agent가 설치된 서버의 IP(Server에 내장된 Agent일 경우 localhost)를 입력한다. address의 port속성에는 Agent의 포트(기본값 9862. oden.ini 혹은 실행시 -port옵션에서 수정할 수 있다.) 값을 입력한다. 수정하지 않았다면 기본 값인 9862를 입력하여 준다. default-location은 Agent로 파일을 전송할 때 파일이 배포될 경로로 절대 경로를 입력한다(필수). backup-location은 파일 백업 혹은 배포 취소를 위해 임시로 사용하는 디렉터리이다. 필수로 지정되어 있어야 하며 절대 default-location과 동일하거나 default-location 하위에 존재하여서는 안된다(필수). location은 default-location 외에 사용할 경로를 지정하는 태그이다. 역시 절대 경로를 입력해야 한다. Agent가 여러개 일 경우 동일한 방식으로 다른 서버에 설치되어 있는 Agent 정보를 추가해 주면 된다.

Starting Up Server and Agents

Oden Server 및 Agent의 설치 및 설정이 끝났으면, 아래의 명령으로 Oden Server를 실행시킬 수 있다.

cd <Oden Server가 설치된 경로>
java -jar bin/oden-x.x.x.jar

Oden Agent는 아래의 명령으로 실행시킬 수 있다.

cd <Oden Agent가 설치된 경로>
java -jar bin/oden-x.x.x.jar

Oden Server를 실행시키면 Oden Shell이 뜨며, help를 입력하면 Shell에서 사용가능한 명령들을 확인할 수 있다.

Important

Server 및 Agent 실행 시, Target Server의 파일 및 디렉토리에 대한 소유자(ownership) 및 권한(permission)에 유의한다.

Eclipse Plug-in

Anyframe Oden은 Eclipse Plug-in으로도 제공된다. 다음은 Plug-in 설치에 대한 안내이다.

Installing Eclipse Plug-in

Eclipse의 Help > Install New Software 를 통해서 Anyframe Update Site 인 http://dev.anyframejava.org/update 을 추가한다.

Important

Anyframe Oden은 Anyframe Common이 설치되어 있어야 설치가 가능하다.

Eclipse 3.4, Eclipse 3.5의 경우에는 Anyframe Oden에 Anyframe Common이 포함되어 있으므로 따로 설치하지 않아도 된다.

설치가 완료되면, Eclipse의 Help > About Elicpse 를 통해서 확인할 수 있다.

Configuring Eclipse Plug-in

Server, Agent의 설정은 Working with Command Line을 참조한다.



[10] 이 문서에서는 파일이 배포될 서버를 Target Server라 칭한다.

[11] 이 문서에서는 배포할 파일이 존재하는 장소를 Build Repository라 칭한다. 일반적으로 빌드가 끝나고 class나 lib과 같은 바이너리 파일이 존재하는 장소가 될 것이다.