1. Script 모드 사용법 및 Script 작성법
본 절에서는 Script 모드 사용법 및 Script 작성법에 대해서 설명한다.
1.1. Script 모드 사용법
Script모드로 jeusadmin을 동작시킨다.
-
예제
다음은 JEUS 사용자 이름은 'administrator', 비밀번호는 'jeus’로 가정하고 test.py 스크립트를 실행하는 jeusadmin script 모드 예제이다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -script "test.py" Attempting to connect to 127.0.0.1:9736. The connection has been established to JEUS Master Server [adminServer] in the domain [domain1]. JEUS 21 Administration Tool To view help, use the 'help' command.
Script 모드로 사용시 추가적으로 JEUS 커맨드 예외를 무시하는 옵션을 사용 할 수 있다. -i 또는 -ignore 옵션을 사용하면 JEUS 커맨드 오류가 발생하더라도 스크립트는 계속 이어서 실행된다. 단, 스크립트 자체의 오류가 있을 경우에는 중단된다.
[-i, --ignore] 옵션은 Script 모드에서만 사용 가능하다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -script "test.py" -i
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -script "test.py" --ignore
아래와 같이 스크립트에 인자를 넘겨 줄 수도 있다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -script "test.py arg1 arg2"
1.2. Script 작성법
jeusadmin은 Script 모드로 동작할 때에 JEUS 커맨드 실행을 위한 메서드와 결과 데이터를 제공한다.
-
커맨드 실행
아래와 같은 방법으로 각 스크립트 언어별로 JEUS 커맨드를 실행할 수 있다.
-
Python, Ruby 공통
result = command("server-info")
-
Ruby
result = command "server-info"
선택 사항으로 JEUS 커맨드에 verbose 옵션을 추가적으로 실행할 수 있다. 기본적으로 비활성화(false) 상태이다. JEUS 커맨드에 verbose 옵션을 활성화(true) 한 경우에는 해당 커맨드의 실행 결과를 화면에 상세하게 출력한다.
-
Python:
result = command("server-info", [True | False])
-
Ruby:
result = command "server-info", [true | false]
-
-
결과 데이터
JEUS 커맨드 실행에 대한 결과로 JeusResult 객체가 리턴되며 결과가 표 형태의 결과를 포함할 경우 JeusResult로부터 JeusTabularData 객체를 얻을 수 있다. 각 데이터 타입은 아래와 같은 메소드를 제공한다.
-
JeusResult
메소드 설명 isComplete()
JEUS 커맨드 실행이 정상적으로 완료되었는지 리턴한다.
getMessage()
결과 메시지를 리턴한다.
getData()
결과의 표 데이터인 JeusTabularData의 리스트를 리턴한다.
-
JeusTabularData
메소드 설명 getTitle()
표의 타이틀을 리턴한다.
getHeader()
표의 머릿말을 리턴한다.
getFooter()
표의 꼬릿말 리턴한다.
getColumnNames()
표의 각 열의 제목만을 리스트 형태로 리턴한다.
getRows()
표 데이터의 각 행의 리스트를 리턴한다.
-
-
예제
-
SHUTDOWN 상태인 서버들을 찾아 출력한다.
result = command("server-info") tables = result.getData(); table = tables[0]; rows = table.getRows(); shutdown_servers = [] for row in rows: if "SHUTDOWN" in row[1]: shutdown_servers.append(row[0]) print("Server : %s, Node : %s" % (row[0], row[2]))
-
스크립트의 인자로 애플리케이션 경로와 deploy할 서버 리스트를 받아 애플리케이션을 install, deploy한다.
import time import sys import os path = sys.argv[0] servers = sys.argv[1] direc, app = os.path.split(path) apptype = os.path.splitext(app)[1][1:].upper() command("undeploy -f %s " % app) command("uninstall-application %s" % app) command("install-application %s -id %s" % (path, app)) command("deploy %s -servers %s -type %s" % (app, servers, apptype))
-
현재 jeusadmin에서는 Python과 Ruby 두 가지 스크립트 언어에 대해서만 스크립트 모드를 제공하며 이를 확장자로 구분하고 있다. 각각 .py와 .rb 확장자에 대해서만 스크립트를 인식하여 동작한다. |