David.Turing's blog

 

关于配置Weblogic的NodeManager服务

我看到一些文章,包括Steve Roth写的<<结合使用WebLogic Node Manager Service和WebLogic Portal>>,文章可能过于复杂,让一些Weblogic使用者有点头晕,于是增加一篇随笔,介绍一下配置NodeManager服务的简单方法。

如果你还没构建自己的证书库,则有点麻烦,因为在这里,我可能使用了openssl和keytool。使用NodeManager的远程启动Weblogic的方式,你需要配置SSL。因为AdminServer想启动远程的ManagedServer,需要通过SSL来跟远程的NodeManager握手。

假定我们规划一个这样的域,叫做nodemanagerdomain
这个域中,
Weblogic实例   -----     机器
AdminServer      -----    sourcesite
m1                     -----     sourcesite
m2                     -----     destsite
AdminServer最终想做的事情是启动m1实例和m2实例,他们三个实例都必须配置SSL。
通过Custom Identity and Custom Trust 方式,配置好这三个实例,确保他们之间的握手是没有问题的,配置的动作全部都在AdminServer上进行,包括
1)在AdminServer上, new 2个server, m1, m2
2)在AdminServer上,new2个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,现在请把着两个nodemanager启动起来!

NodeManager是作为一个操作系统的监听进程运行的,它主要负责听从
%BEA_HOME%\weblogic81\common\nodemanager\nodemanager.properties中指定的机器上的AdminServer发送过来的命令。
比如,NodeManager可能会独自启动一个managedServer的实例,类似命令
startManagedWebLogic.cmd 
< server_name >  http://adminserver:7001

所以,目前,在远程机器上,你只需要做两件事情即可
1,配置nodemanager.properties
配置下面的内容
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所在的机器名,比如,当前机器是destsite要听从sourcesite上的AdminServer的指挥,则加入
sourcesite

现在,启动NodeManager服务即可
在Windows上,假如你没有创建NodeManager服务,可以编辑一下
运行C:\bea814\weblogic81\server\bin\installNodeMgrSvc.cmd weblogic weblogic
即可生成一个NodeManager服务到Windows的服务列表里面,然后设为自动启动即可。
Windows好办很多,很多时候,我自己的习惯是不使用Windows服务方式,而是启动命令行Dos窗口,
方便观察啊!
C:\bea814\weblogic81\server\bin>startNodeManager.cmd

在Unix上,将sh startNodeManager.sh destsite 5555加入启动脚本即可,或者索性直接运行它即可。

配置完两台机器的nodemanager并且启动它们後,我们就可以用AdminServer(在sourcesite上面)来控制它了。
如果adminserver没法跟nodemanager进行SSL握手,它会报下面的错误
[NodeManager:300037]The node manager at host destsite and port 5555 seems to be down. Start the node manager and rerun the command.
假定我现在已经在两台机器都重启了两个NodeManager服务了,并且假设SSL握手已经成功(这个假设对配置SSL不熟悉的人来说有点难度)。
假定配置好後,我们尝试点击Machine destsite的monitor tab的 Node Manager Status 
则会出现下面的错误:
[[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> ].]
这是因为你AdminServer要连destsite的时候,destsite上正在5555监听的进程会查阅当前的nodemanager.hosts文件,看里面AdminServer所在的主机是否在nodemanager.hosts里面声明了,如果没有,则报上面的错,即,不让不信任的机器来往destsite的机器上nodemanager服务执行start/stop操作。
现在,往destsite的nodemanager.hosts里面新增一个sourcesite,即可。
这次,刷新Node Manager Status ,会看到
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握手已经成功,AdminServer可以控制destsite的nodemanager并要求它来启动m2的实例。

剩下的,看看如何配置sourcesite.jks,destsite.jks以及cs.jks。
这三个jks的关系是:
在sourcesite机器上的adminserver实例使用sourcesite.jks和cs.jks
在sourcesite机器上的m1实例使用sourcesite.jks和cs.jks
在destsite机器上的m2实例使用destsite.jks和cs.jks
在weblogic的Keystore配置中,sourcesite.jks和destsite.jks是配置为Identity部分,而cs.jks则作为Trust部分,
相关的配置SSL的方法请参见http://www.blogjava.net/security/archive/2005/11/28/21593.html











posted on 2007-09-04 15:20 david.turing 阅读(14200) 评论(2)  编辑  收藏 所属分类: Security领域

评论

# re: 关于配置Weblogic的NodeManager服务 2007-09-06 12:00 david.turing

如果嫌SSL配置麻烦,可以使用Demo Identity和Demo Trust,即不过,还有一种更简单的方式,即nodemanager.properties中使用Demo方式(反注释Demo哪一行即可),其他配置一样。  回复  更多评论   

# re: 关于配置Weblogic的NodeManager服务 2007-09-22 00:02 CALM

9.2版本的配置是不是有些区别呀?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(110)

我参与的团队

随笔分类(126)

随笔档案(155)

文章分类(9)

文章档案(19)

相册

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜