WebLogic 은 Administrator 를 위한 Web GUI 콘솔을 제공한다. 브라우저를 통해서 관리자로 로그인을 하면 Web 을 통해서 각종 설정들을 할 수 있게 된다.
하지만 Web 을 사용할 수 없는 환경이라면 무용지물이 된다. 이럴때 WebLogic Scripting Tools(WLST)를 사용하면 된다. 자바로 만들어지는 Tools 로서 Web GUI 화면 대신에 터미널상에서 실행되며 대화형식으로 Web GUI 콘솔에 모든 기능을 사용할 수 있다.
실행하기
실행은 먼저 WebLogic 서버의 전역 변수를 소스(Source) 함으로써 WLST 실행환경을 조성해 준다.
Jython scans all the jar files it can find at first startup.Depending on the system,thisprocess may takeafew minutes tocomplete,andWLST may notreturnaprompt right away.
Welcome toWebLogic Server Administration Scripting Shell
Type help()forhelp on available commands
wls:/offline>
이제부터는 대화형으로 명령어를 입력하고 결과를 받아보는 형식으로 진행이 된다. 위와같이 처음 접속을 하면 offline 으로 되는데 먼저 Admin 으로 로그인을 해보자. 이는 Web GUI 콘솔 로그인과 동일한 효과를 가지고 온다.
ZSH
1
2
3
4
5
6
7
8
9
10
11
12
wls:/offline>username='Weblogic'
wls:/offline>password='14321'
wls:/offline>URL='t3://127.0.0.1:7001'
wls:/offline>connect(username,password,URL)
Connecting tot3://127.0.0.1:7001 with userid Weblogic ...
WebLogic 은 weblogic.Deployer 라는 Command Line 명령어를 이용해서 배포를 할 수 있습니다. 이를 통해서 GUI 화면인 WebLogic Admin Console 없이도 터미널을 이용해서 쉽고 빠르게 배포를 할 수 있는 것입니다.
setWLSEnv.sh 실행
터미널의 Command Line 에서 weblogic.Deployer 를 사용하기 위해서는 반드시 환경실행 파일을 먼저 실행해야 합니다. setWLSEnv.sh 라 불리우는 이 파일은 weblogic.Deployer 를 실행하기 위한 각종 라이브러리 클래스와 명령어 PATH를 세팅해 줍니다.
Task15initiated:[Deployer:149026]deploy application healthCheck on Server AdminServer.
Task15completed:[Deployer:149026]deploy application healthCheck on Server AdminServer.
Target state:deploy completed on Server AdminServer
배포가 완료 되었다. 하지만 여기에는 한가지 문제가 있습니다.
애플리케이션은 유지보수가 됩니다. 그래서 많은 변화가 일어나고 변화된 내용을 WebLogic 서버에 배포해야 합니다. 그런데, 배포할 파일 이름이 healthCheck.war 로 모두 동일하다면 WebLogic 서버에 배포하기 위해서는 기존의 배포된 파일을 제거하고 새로운 파일을 배포해야 합니다. 이는 사람이 수동을 다 해줘야 합니다.
버전 배포하기
만일, 배포시에 애플리케이션을 구분하기 위해서 버전정보를 준다면 WebLogic 서버는 자동으로 기존의 배포된 애플리케이션은 회수되고 새로운 버전의 애플리케이션이 활성화해주어 서비스를 지속할 수 있도록 해줍니다.
Target state:redeploy completed on Server AdminServer
기존의 1.0.1 버전보다 높아진 1.0.2 를 사용했고 재배포하기 위해서 -redeploy 를 사용했습니다.
지금까지 배포 방법에는 한가지 문제가 있습니다. 전부다 Admin 서버를 대상으로 배포를 진행했다는 것입니다. weblogic.Deployer 는 배포할 서버를 지정해줄 수가 있습니다. 서버뿐만 아니라 Cluster 를 지정함으로써 Cluster 내에 포함된 모든 서버에 배포를 적용할 수도 있습니다.
타켓(Target) 지정 배포하기
배포 대상 서버, Cluster 을 타켓이라고 합니다. -targets 옵션을 주어서 지정할 수 있습니다.
WebLogic 의 Admin 서버가 구동될때에 각종 옵션들을 주고 싶다면 “USER_MEM_ARGS” 쉘 환경변수로 지정하고 ‘startWebLogic.sh’ 를 실행하면 그것이 적용된다. Systemd 에서 이러한 환경변수들은 ‘/u01/app/weblogic/config/domains/mCloud/servers/AdminServer/etc/default/adminserver’ 파일에 다음과 같이 정의해 줍니다.
WebLogic 11g 기동시 JAVA OPTION 넣기위해서 setDomainEnv.sh 나 commonEnv.sh 를 수정하는 경우가 있다. 하지만 이렇게 하면 WebLogic 11g 를 구성하는 Admin, NodeManager, ManagedServer 에 각각 따로따로 적용해주기위해서 앞에서 언급한 쉘 스크립트에 조건식을 줘야 한다.
setDomainEnv.sh 나 commonEnv.sh 는 WebLogic 서버에서 전역적으로 사용하는 것이기 때문에 특정한 부분을 위해서 수정하는 경우는 지양해야 한다.
최신의 WebLogic 11g 에서는 이러한 특정부분만을 위해 적용할 수 있는 JAVA OPTION 변수를 제공하는데 그것이 바로 USER_MEM_ARGS 이다. 쉘 환경변수로서 이것을 활용하면 Admin, NodeManager, ManagedServer 기동시에 JAVA OPTION을 줄 수 있다.
예를들어 Admin 서버를 기동할때에 사용하는 스크립트인 ${DOMAIN_HOME}/startWebLogic.sh 를 보자.
WebLogic 11g 에서는 ManagedServer 를 클러스터 설정을 제공합니다. 역시나 Admin Web Console 을 통해서 클릭으로만으로 쉽게 간단하게 설정이 가능합니다.
WebLogic 11g 클러스터 설정
Admin Web Console 에서 다음과 같이 설정이 가능 합니다.
왼쪽에서 클러스터를 누르고나면 위 화면과 같이 나오고 “새로 만들기” 버튼을 눌러서 생성을 할 수 있습니다.
생성할 클러스터 이름을 입력해 줍니다. 적절한 이름을 입력해주면 됩니다. 두번째로 클러스터 멤버간 메시징을 위한 방법을 정의해줍니다. 유니캐스트와 멀티캐스트가 있는데 유니캐스트의 경우에는 클러스터 노드가 많지 않을 경우에 사용하는게 적절해 보이며 반대일 경우에는 멀티캐스트로 하는것이 적절해 보입니다.
생성이 완료되면 이제 생성된 클러스터에 대해서 설정을 해야 합니다. 클러스터 메뉴에서 생성된 클러스터를 클릭하면 다음과 같은 화면을 보실 수가 있습니다.
로드 알고리즘은 클러스터간 로드를 어떻게 분배할 것인가에 대한 것으로 서비스 형태에 따라 적절히 선택해주면 됩니다. 클러스터 주소의 서버 수는 클러스터에 나열할 서버 개수를 지정해 줍니다.
클러스터 메뉴에서 서버 탭에서 추가 버튼을 클릭해서 서버를 추가 할 수 있습니다. 서버를 추가할때에는 기존의 생성된 서버를 추가할 수 있고 서버를 생성하면서 추가할 수도 있습니다. 서버를 추가하면서 생성할때에는 NodeManager 서버가 실행중이여야 합니다.
Session Replication between Cluserted Node
클러스터내 서버끼리 세션을 복재하고 공유하기위해서는 weblogic.xml 을 다음과 같이 설정 해 주어야 합니다.
복구를 위해서 다른 서버를 준비해야 합니다. 그 서버에는 기본적으로 다음과 같은 사항이 정리되어 있어야 합니다.
원본 서버와 동일한 자바(JAVA) 가 설치되어 있어야 한다.
원본 서버와 동일한 WebLogic 디렉토리를 가지고 있어야 한다.
WebLogic Home 복구
WebLogic Home 복구는 jar 파일을 jar 명령어로 압축해제함으로써 완료 됩니다.
ZSH
1
2
3
]$cd/opt/WebLogic/
]$jar-xf/home/systemv/mwhome.jar
]$
별거 없습니다. 위 명령어로 복구가 완료 됩니다.
여기서 한가지 더 해줘야 할 것이 nodemanager 를 위한 복구 프로세스 입니다. nodemanager 는 WebLogic Admin 서버와 통신을 하면서 Node 를 관리하는 역활을 담당합니다. Node 에 Managed Server 를 생성하거나 삭제, 시작, 중지등을 Admin 서버에서 하기위해서는 nodemanager 서버가 있어야 합니다.
문제는 nodemanager 서버는 서버에 종속되는 설정값을 가져야 하기 때문에 서버를 복제하고 난후에 서버환경을 다시 인식시켜줘야 합니다. 방법은 다음과 같습니다.
Node Manager 를 실행하면 nodemanager.properties 파일에 각종 환경설정을 정리하고 nodemanager.domains 파일을 생성합니다. 그런데, nodemanager.properties 에 내용을 변경해야하기 때문에 Node Manager 를 중단시킨 겁니다.
nodemanager.properties 파일중에 다음과 같이 수정해 줍니다.
1
2
-17SecureListener=true
+17SecureListener=false
WebLogic Domain 복구
복제할때에 ‘pack.sh’ 명령어를 썼었는데 복구할때는 ‘unpack.sh’ 명령어를 사용 합니다.
복구가 완료 되면, 이제 Domain 설정파일에서 호스트 이름을 현 시스템으로 바꿉니다. 그것은 /home/systemv/wl_domain/mCloud/config/config.xml 파일인데, 여기서 호스트명을 현 시스템으로 바꿔주고 불필요한 Managed Server 리스트, deployment 를 삭제처리 해줍니다.
Weblogic 10.3.6 에는 Node Manager 가 존재합니다. Node Manager 는 하나의 도메인에 존재하는 서버로 말 그대로 노드를 관리하는 기능을 합니다. 좀 더 들어가면, Node Manager 의 주요 기능은 도메인에 추가된 Managed Server 를 생성,삭제,시작,중지등을 가능하도록 해줍니다.
만일 Node Manager 가 존재하지 않는다면, Managed Server 를 Web Console 을 통해서 생성을 할 수 있지만 Managed Server 를 시작하기 위해서는 터미널에서 커맨드 라인으로 직접 시작 명령을 주거나 아니면 WST 를 이용해서 시작을 시켜줘야 합니다.
Admin Server, Managed Server 는 도메인에 귀속되지만 Node Manager 는 머신(Machine)에 귀속됩니다. 그래서 시작스크립트도 $MW_HOME 에 존재합니다.
최초로 Node Manager 를 실행하면 화면에 Node Manager 설정 관련 내용이 화면에 출력됩니다. 이 내용은 $MW_HOME/common/nodemanager 디렉토리에 nodemanager.properties 파일에 기록 됩니다. 여기서 자세히 보면 “SecureListener=true” 로 된 것이 보입니다. 이것은 NodeManager 와의 연결을 SSL 을 통해서 하겠다는 겁니다.
위 설정은 $MW_HOME/common/nodemanager/nodemanager.properties 파일에 저장되어 있고 SecureListener 부분을 false 로 바꾸고 Node Manager 를 재 실행해 줍니다.
이제 Node Manager 를 등록해 줍니다.
Node Manager 등록
Node Manager 등록은 WebLogic 의 관리자 페이지에서 ‘환경->시스템’ 에서 할 수 있습니다. 관리자 콘솔에서는 Node Manager 등록이라고 안하고 시스템이라고 표현합니다.
‘새로 만들기’ 를 클릭해서 등록 화면으로 넘어갑니다.
시스템 이름을 지정해 줍니다. ‘다음’ 으로 넘어 갑니다.
여기서 ‘유형’ 을 일반으로 해줍니다. 앞에서 SeucureListener 를 false 로 해줬기 때문에 일반 접속 유형으로 Node Manager 가 통신을 합니다. 그리고 수신 주소, 수신 포트 등을 알맞게 입력하고 ‘완료’ 해 줍니다.
서버 설정
이렇게 Node Manager 를 등록하게 되면 이미 생성된 서버나 생성할 서버에 ‘시스템’ 을 지정해 줄 수 있습니다. 서버 목록중에 생성된 서버를 클릭해서 들어가면 ‘일반’ 탭에 서버 정보가 나오는데, 여기서 시스템을 드롭박스를 이용해서 선택해줍니다. 이렇게 되면 이 서버는 선택한 시스템에 생성되고 제어 됩니다.