我看到一些文章,包括Steve Roth寫(xiě)的<<結(jié)合使用WebLogic Node Manager Service和WebLogic Portal>>,文章可能過(guò)于復(fù)雜,讓一些Weblogic使用者有點(diǎn)頭暈,于是增加一篇隨筆,介紹一下配置NodeManager服務(wù)的簡(jiǎn)單方法。
如果你還沒(méi)構(gòu)建自己的證書(shū)庫(kù),則有點(diǎn)麻煩,因?yàn)樵谶@里,我可能使用了openssl和keytool。使用NodeManager的遠(yuǎn)程啟動(dòng)Weblogic的方式,你需要配置SSL。因?yàn)锳dminServer想啟動(dòng)遠(yuǎn)程的ManagedServer,需要通過(guò)SSL來(lái)跟遠(yuǎn)程的NodeManager握手。
假定我們規(guī)劃一個(gè)這樣的域,叫做nodemanagerdomain
這個(gè)域中,
Weblogic實(shí)例?? -----???? 機(jī)器
AdminServer????? -----??? sourcesite
m1?????????????????????-----???? sourcesite
m2?????????????????????-----???? destsite
AdminServer最終想做的事情是啟動(dòng)m1實(shí)例和m2實(shí)例,他們?nèi)齻€(gè)實(shí)例都必須配置SSL。
通過(guò)Custom Identity and Custom Trust 方式,配置好這三個(gè)實(shí)例,確保他們之間的握手是沒(méi)有問(wèn)題的,配置的動(dòng)作全部都在A(yíng)dminServer上進(jìn)行,包括
1)在A(yíng)dminServer上, new 2個(gè)server, m1, m2
2)在A(yíng)dminServer上,new2個(gè)machine, sourcesite和destsite
3)在sourcesite中加入m1, 在destsite中加入m2
sourcesite配置如下:
Listen Address:?? sourcesite
? The host name or IP address where Node Manager listens for connection requests.?
?? Listen Port:??5555
? The port number (between 0 and 65534) where Node Manager listens for connection requests.?
destsite配置如下:
Listen Address:???destsite
? The host name or IP address where Node Manager listens for connection requests.?
?? Listen Port:??5555
? The port number (between 0 and 65534) where Node Manager listens for connection requests.?
OK,現(xiàn)在請(qǐng)把著兩個(gè)nodemanager啟動(dòng)起來(lái)!
NodeManager是作為一個(gè)操作系統(tǒng)的監(jiān)聽(tīng)進(jìn)程運(yùn)行的,它主要負(fù)責(zé)聽(tīng)從
%BEA_HOME%\weblogic81\common\nodemanager\nodemanager.properties中指定的機(jī)器上的AdminServer發(fā)送過(guò)來(lái)的命令。
比如,NodeManager可能會(huì)獨(dú)自啟動(dòng)一個(gè)managedServer的實(shí)例,類(lèi)似命令
startManagedWebLogic.cmd?
<
server_name
>
?http://adminserver:7001
所以,目前,在遠(yuǎn)程機(jī)器上,你只需要做兩件事情即可
1,配置nodemanager.properties
配置下面的內(nèi)容
CustomTrustKeyStorePassPhrase=weblogic
KeyStores=CustomIdentityAndCustomTrust
CustomIdentityKeyStoreFileName=destsite.jks
CustomIdentityKeyStorePassPhrase=weblogic
PropertiesVersion=8.1
CustomIdentityAlias=destsite
CustomTrustKeyStoreFileName=cs.jks
CustomIdentityPrivateKeyPassPhrase=weblogic
ReverseDnsEnabled=true
CustomIdentityKeyStoreType=JKS
2,?配置nodemanager.hosts
增加AdminServer所在的機(jī)器名,比如,當(dāng)前機(jī)器是destsite要聽(tīng)從sourcesite上的AdminServer的指揮,則加入
sourcesite
現(xiàn)在,啟動(dòng)NodeManager服務(wù)即可
在Windows上,假如你沒(méi)有創(chuàng)建NodeManager服務(wù),可以編輯一下
運(yùn)行C:\bea814\weblogic81\server\bin\installNodeMgrSvc.cmd?weblogic?weblogic
即可生成一個(gè)NodeManager服務(wù)到Windows的服務(wù)列表里面,然后設(shè)為自動(dòng)啟動(dòng)即可。
Windows好辦很多,很多時(shí)候,我自己的習(xí)慣是不使用Windows服務(wù)方式,而是啟動(dòng)命令行Dos窗口,
方便觀(guān)察啊!
C:\bea814\weblogic81\server\bin>startNodeManager.cmd
在Unix上,將sh?startNodeManager.sh?destsite?5555加入啟動(dòng)腳本即可,或者索性直接運(yùn)行它即可。
配置完兩臺(tái)機(jī)器的nodemanager并且啟動(dòng)它們後,我們就可以用AdminServer(在sourcesite上面)來(lái)控制它了。
如果adminserver沒(méi)法跟nodemanager進(jìn)行SSL握手,它會(huì)報(bào)下面的錯(cuò)誤
[NodeManager:300037]The node manager at host destsite and port 5555 seems to be down. Start the node manager and rerun the command.
假定我現(xiàn)在已經(jīng)在兩臺(tái)機(jī)器都重啟了兩個(gè)NodeManager服務(wù)了,并且假設(shè)SSL握手已經(jīng)成功(這個(gè)假設(shè)對(duì)配置SSL不熟悉的人來(lái)說(shuō)有點(diǎn)難度)。
假定配置好後,我們嘗試點(diǎn)擊Machine destsite的monitor tab的?Node Manager Status?
則會(huì)出現(xiàn)下面的錯(cuò)誤:
[[NodeManager:300033]Could not execute command ping on the node manager. Reason: weblogic.nodemanager.NodeManagerException: [NodeManager is not configured to receive commands from host : /192.168.1.111. Please update the trusted hosts file : nodemanager.hosts of the node manager by adding the hostname or ip address of /192.168.1.111> ].]
這是因?yàn)槟鉇dminServer要連destsite的時(shí)候,destsite上正在5555監(jiān)聽(tīng)的進(jìn)程會(huì)查閱當(dāng)前的nodemanager.hosts文件,看里面AdminServer所在的主機(jī)是否在nodemanager.hosts里面聲明了,如果沒(méi)有,則報(bào)上面的錯(cuò),即,不讓不信任的機(jī)器來(lái)往destsite的機(jī)器上nodemanager服務(wù)執(zhí)行start/stop操作。
現(xiàn)在,往destsite的nodemanager.hosts里面新增一個(gè)sourcesite,即可。
這次,刷新Node Manager Status?,會(huì)看到
This page allows you to view current status information for the Node Manager.
State : RUNNING
BEA.home : null
weblogic.nodemanager.javaHome : C:\bea814\jdk142_05
weblogic.nodemanager.listenAddress : *.*
weblogic.nodemanager.listenPort : 5555
CLASSPATH : .;C:\ bea814\ jdk142_05\ lib\ tools.jar;C:\ bea814\ WEBLOG~1\ server\ lib\ weblogic_sp.jar;C:\ bea814\ WEBLOG~1\ server\ lib\ weblogic.jar
證明SSL握手已經(jīng)成功,AdminServer可以控制destsite的nodemanager并要求它來(lái)啟動(dòng)m2的實(shí)例。
剩下的,看看如何配置sourcesite.jks,destsite.jks以及cs.jks。
這三個(gè)jks的關(guān)系是:
在sourcesite機(jī)器上的adminserver實(shí)例使用sourcesite.jks和cs.jks
在sourcesite機(jī)器上的m1實(shí)例使用sourcesite.jks和cs.jks
在destsite機(jī)器上的m2實(shí)例使用destsite.jks和cs.jks
在weblogic的Keystore配置中,sourcesite.jks和destsite.jks是配置為Identity部分,而cs.jks則作為T(mén)rust部分,
相關(guān)的配置SSL的方法請(qǐng)參見(jiàn)http://www.tkk7.com/security/archive/2005/11/28/21593.html