addNode 命令
addNode 命令用于将应用程序服务器安装版本合并到单元。
取决于合并到此单元的新节点的大小和位置,此命令可能要花几分钟时间完成。
必须具有管理员特权才能使用 addNode 功能。
用户概要文件必须具有 *ALLOBJ 权限或者必须具有 addNode Qshell 脚本的读取和执行权限。
除非您指定 -noagent 选项,否则 Node Agent 服务器将在执行 addNode 命令时自动启动。 如果您重新启动主管应用程序服务器节点的系统,且未设置 Node Agent 作为操作系统守护程序,那么您必须在启动任何应用程序服务器前发出 startNode 命令来启动 Node Agent。
运行 addNode 命令时,该命令将停止要合并到单元中的正在运行的应用程序服务器。在运行 addNode 命令之前,您可以选择停止该应用程序服务器。
运行 addNode 命令时,将移除在将节点添加到单元之前,与服务器相关联的现有 Windows 服务。如果您稍后将该节点从单元中移除,那么不会自动重新为服务器基本部件创建 Windows 服务。请参阅有关 WASService 命令的信息,以了解如何为该产品创建 Windows 服务。
- 为 Node Agent 生成的端口对于安装中的所有概要文件是唯一的。出于开发目的,您可以在同一安装上创建多个概要文件并将他们添加到一个或多个单元而无需担心端口冲突。
- 如果要指定 Node Agent 使用的端口,那么在一个用 -portprops 选项传递文件名的文件中指定这些端口。文件的格式为 key=value 对,每行一对,键名与 serverindex.xml 文件中的端口名相同。
- 如果要使用多个连续的端口,请考虑使用 -startingport 选项。这表示不检测与其他概要文件的端口冲突。

请参阅有关使用命令行工具的主题,以确定是要从概要文件还是从应用程序服务器根目录运行此命令。
语法
请参阅该命令的语法:
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
addNode dmgr_host [dmgr_port] [-conntype type] [-includeapps] [-includebuses]
[-startingport portnumber] [-portprops qualified_filename]
[-nodeagentshortname name] [-nodegroupname name] [-registerservice]
[-serviceusername name] [-servicepassword password] [-coregroupname name]
[-noagent] [-statusport 1231] [-quiet] [-nowait] [-logfile filename]
[-replacelog] [-trace] [-username uid] [-password pwd]
[-localusername localuid] [-localpassword localpwd] [-profileName profilename]
[-excludesecuritydomains true | false] [-asExistingNode] [-help]
![[IBM i]](../images/iseries.gif)
addNode dmgr_host [dmgr_port] [-conntype type] [-includeapps] [-includebuses name]
[-startingport portnumber] [-portprops qualified_filename]
[-nodeagentshortname name] [-nodegroupname name] [-registerservice]
[-serviceusername name] [-servicepassword password] [-coregroupname name]
[-noagent] [-statusport port] [-quiet] [-nowait] [-logfile filename]
[-replacelog] [-trace] [-username uid] [-password pwd]
[-localusername localuid] [-localpassword localpwd] [-profileName profilename]
[-excludesecuritydomains true | false] [-asExistingNode] [-help]
dmgr_host 参数是必需的。所有其他参数是可选的。Deployment Manager 的缺省 SOAP 端口的缺省端口号是 8879。SOAP 是该命令的缺省 Java™ 管理扩展 (JMX) 连接器类型。如果您拥有多个产品安装或多个概要文件,那么 SOAP 端口可能不是 8879。检查 Deployment Manager SystemOut.log 文件以了解当前在使用的端口。
参数
下列选项可用于 addNode 命令:
- -conntype <type>
- 指定用于连接到 Deployment Manager 的 JMX 连接器类型。 SOAP 是该命令的缺省 Java 管理扩展 (JMX) 连接器类型。其他有效类型是 JSR160RMI 或远程方法调用 (RMI)。
- -includeapps
- 缺省情况下,addNode 命令不会将来自新节点上的独立服务器的应用程序传递到单元。通常,应使用 Deployment Manager 来安装应用程序。-includeapps 选项通知
addNode 命令传递来自节点的应用程序。如果此单元中已存在此应用程序,那么将打印一个警告并且此应用程序不会安装到此单元中。
该应用程序将映射至您使用 addNode 命令联合的服务器。当 addNode 命令操作完成时,应用程序将在服务器启动时在该服务器上运行。因为这些应用程序是 Network Deployment 单元的一部分,所以您可以通过使用管理控制台将他们映射至单元中的其他服务器和集群。请阅读『将模块映射至服务器』,以了解更多信息。
如果要联合的节点包含产品提供的应用程序(如样本),请不要使用 -includeapps 选项。如果您使用该选项,那么因为这些应用程序在单元中存在,而应用程序合并不受支持,所以要联合的第二个包括这些应用程序的节点将被拒绝。
如果您在包括大量应用程序的节点上使用 -includeapps 选项,那么必须延长管理连接器的超时,以留出在执行 addNode 操作期间将所有应用程序传送到 Deployment Manager 以及以远程方式将他们安装到单元时所需的额外时间。除非节点只存在少数的唯一应用程序,否则建议不要使用 -includeapps 选项。
缺省情况下,在应用程序安装期间,在 app_server_root/installedApps/cellName 目录中解压缩应用程序二进制文件。 运行 addNode 命令之后,您添加的节点上的配置单元名称从基本单元名称更改为 Deployment Manager 单元名称。应用程序二进制文件位于运行 addNode 命令之前他们所在的位置中,例如,app_server_root/installedApps/old_cellName。
缺省情况下,在应用程序安装期间,在 profile_root/installedApps/cellName 目录中解压缩应用程序二进制文件。 运行 addNode 命令之后,您添加的节点上的配置单元名称从基本单元名称更改为 Deployment Manager 单元名称。应用程序二进制文件位于运行 addNode 命令之前他们所在的位置中,例如,profile_root/installedApps/old_cellName。
在以下示例中,通过显式指定二进制文件的位置来安装了应用程序:
变量 ${CELL} 指定当前单元名称。然后,当 addNode 命令运行时,会将二进制文件移至 profile_root/installedApps/currentCellName 目录。${APP_INSTALL_ROOT}/${CELL}
使用 addNode 命令将节点联合到单元时不会合并任何单元级别配置,其中包括虚拟主机信息。如果新单元的虚拟主机和别名与该产品不匹配,您将无法访问在服务器上运行的应用程序。您必须使用运行在 Deployment Manager 上的管理控制台,将所有虚拟主机和主机别名手动添加到新单元中。
避免故障: 当指定了 -includeapps 参数时,如果 Java 虚拟机 (JVM) 堆太小,那么可能发生 OutOfMemoryError。发生此错误时,会发出以下错误消息:
ADMU0111E: Program exiting with error: java.lang.OutOfMemoryError
当处理大型应用程序,或当 Base Application Server 中有大量应用程序时,可能会发生此错误。
要从此错误恢复并成功联合应用程序服务器,请完成以下操作:
- 在您的 Deployment Manager 服务器上发出 cleanupNode 命令。请参阅 cleanupNode 命令,以了解有关此命令的更多信息。
- 增加 addNode 脚本的 JVM 堆大小。当您发出 addNode 命令时,JVM 堆大小设置为 -Xms128m -Xmx512m。要增加这些值,请使用 -javaoption 参数。例如,可以指定以下代码(全部内容都在一行上):
addNode localhost 8879 -javaoption java_option "-Xmx512m"
addNode.sh localhost 8879 -javaoption java_option "-Xmx512m"
- 重新发出 addNode 命令。
- -includebuses
- 将总线从要联合的节点复制到单元。此参数还会尝试将远程节点的服务集成总线配置复制到单元。如果目标单元已包含与远程节点的任何总线同名的总线,那么添加节点操作将失败。要防止此故障,您可以在使用 addNode 命令前执行一些操作。您可以删除目标单元中具有该名称的总线、重命名要添加到单元的总线或手动配置已位于单元中的总线。
- -startingport <portNumber>
- 支持指定一个端口号以用作 addNode 命令运行时创建的所有节点代理程序和 Java 消息服务 (JMS) 服务器端口的基本端口号。使用此支持您可以控制为这些服务器定义哪些端口,而不是使用缺省端口值。以 1 为单位递增此起始端口号,以计算执行 addNode 命令期间配置的每个 Node Agent 端口和 JMS 服务器端口的端口号。
要避免潜在的端口冲突,请阅读“端口号设置”,以了解有关缺省端口设置的更多信息。
如果同一物理服务器上存在多个 Node Agent ,那么您可以通过在联合之前使用 -startingport 参数或通过修改 serverindex.xml 文件的 Node Agent 部分中的端口,来定义每个 Node Agent 的基本端口号。
- -portprops <filename>
- 传递文件名,该文件包含您希望新 Node Agent 使用的明确端口的 key-value 对。例如,要将 SOAP 和 RMI 端口设置为 3000 和 3001,那么用以下两行创建文件并将它作为参数传递:
SOAP_CONNECTOR_ADDRESS=3000 BOOTSTRAP_ADDRESS=3001
- -nodeagentshortname <name>
- 将用于新 Node Agent 的短名称。
- -nodegroupname <name>
- 添加此节点的节点组的名称。如果您未指定,那么会将节点添加至 DefaultNodeGroup。
-registerservice
- 将 Node Agent 注册为 Windows 服务。
可根据情况使用 -serviceusername 参数和 -servicepassword 参数来定义 Windows 服务的用户名和密码。如果定义用户名,那么您必须授予该用户名“作为服务登录”权限才能使该服务正常运行。
如果不指定用户名和密码,那么将在本地系统帐户下运行该服务。
-serviceusername <user>
将给定的用户名用作 Windows 服务用户。
-servicepassword <password>
将给定的 Windows 密码用作 Windows 服务密码。
- -coregroupname <name>
- 添加此节点的核心组的名称。如果您未指定此选项,那么此节点将添加至 DefaultCoreGroup。
- -noagent
- 通知 addNode 命令不要为新节点启动 Node Agent 进程。
- -statusport
- 一个可选参数,允许管理员设置 Node Agent 状态回调的端口号。该工具打开此端口并等待来自 Node Agent 的指示该 Node Agent 已启动的状态回调。如果未设置此参数,那么将自动分配一个未使用的端口。
- -quiet
- 禁止显示 addNode 命令以正常方式输出的进度信息。
- -nowait
- 指示 addNode 命令不要等待已启动的 Node Agent 进程成功初始化。
- -logfile <filename>
- 指定写入跟踪信息的日志文件的位置。缺省情况下,该日志文件是 addNode.log,将在要添加的节点的概要文件的 logs 目录中创建该日志文件。
- -replacelog
- 替换日志文件,而不是附加到当前日志文件。缺省情况下,addNode 命令对现有跟踪文件进行追加。此选项使 addNode 命令覆盖跟踪文件。
- -trace
- 在日志文件中生成其他跟踪信息以便进行调试。
- -user <name> or -username <name>
- 指定启用安全性时认证的用户名。等同于 -user 选项。您选择的用户名必须是已存在的用户名。
- -password <password>
- 指定启用安全性时认证的密码。您选择的密码必须是与已存在的用户名关联的密码。
- -localusername <name>
- 指定用于对要联合的节点上的现有应用程序服务器进行认证的用户名。只有对应用程序服务器启用了安全性时,此参数才适用。
- -localpassword <password>
- 指定用于对要联合的节点上的现有应用程序服务器进行认证的密码。您选择的密码必须是与已存在的用户名关联的密码。只有对应用程序服务器启用了安全性时,此参数才适用。
- -profileName
- 在多概要文件安装中定义应用程序服务器进程的概要文件。在单概要文件环境中运行不需要 -profileName 选项。此选项的缺省值为缺省概要文件。如果要将非缺省概要文件添加到 Deployment Manager 单元,那么此参数是必需的。
- -excludesecuritydomains true | false
- 如果不希望将应用程序服务器节点上配置的安全域联合到单元,请将 -excludesecuritydomains 参数设置为 true。当此参数设置为 true 时,将使用单元的安全性配置。仅当您在未联合的应用程序服务器上配置了安全域时,此参数才适用。缺省情况下,如果存在与应用程序服务器相关联的安全域,那么会将该安全域联合到单元,以便在联合后,服务器使用相同的安全域信息。
- -asExistingNode
- 指定此项以恢复 Deployment Manager 单元的现有受管节点。使用 addNode 命令的 -asExistingNode 参数以快速恢复损坏的节点。例如,如果机器故障导致节点不可用,但节点信息仍保留在 Deployment Manager 中,那么您可以使用 addNode -asExistingNode 选项通过完成下列步骤来重新创建不可用的节点:
- 使用与不可用的节点相同的节点和概要文件名称创建一个新概要文件。可以在与原始节点不同的机器上创建该概要文件。
- 对于新的概要文件,请运行带有 -asExistingNode 选项的 addNode 命令。
还可使用 addNode 命令的 -asExistingNode 选项将节点移至另一计算机上位于相同路径的产品安装、将节点移至另一操作系统上或具有不同路径的产品安装、或者通过模板单元创建单元。请参阅有关使用 addNode -asExistingNode 命令来恢复或移动节点的主题。
避免故障: 节点配置的其他 addNode 选项与此 -asExistingNode 选项不兼容。不要将 -asExistingNode 与下列不兼容的选项配合使用:-includeapps、-includebuses、-startingport、-portprops、-nodeagentshortname、-nodegroupname、-registerservice、-serviceusername、-servicepassword、-coregroupname 或 -excludesecuritydomains。gotcha
- -help
- 显示用法说明。
- -?
- 显示用法说明。
使用方案
addNode testhost 8879 (adds an application server to the deployment manager)
addNode deploymgr 8879 -trace (produces the addNode.log file)
addNode host25 8879 -nowait (does not wait for a node agent process)
值 8879 是缺省端口。![[IBM i]](../images/iseries.gif)
addNode mydmgr 11383 -profileName mynode (adds profile, mynode, to the cell managed by profile mydmgr, which listens on SOAP port 11383)
将应用程序服务器节点添加至 WebSphere Application Server Network Deployment 单元时的安全性注意事项
当添加节点到单元时,您自动继承用户注册表和单元的认证机制。
将节点添加到单元时,最近联合的节点将自动继承用户注册表(本地操作系统、轻量级目录访问协议 (LDAP) 或定制)、认证机制 (LTPA),以及现有 WebSphere® Application Server Network Deployment 单元的授权设置(WebSphere 绑定或系统授权工具 (SAF) EJBROLE 概要文件)。
对于分布式安全性,单元中的所有服务器必须使用同一用户注册表和认证机制。为了从用户注册表更改恢复,必须修改应用程序,以便用户和组到角色映射对于新用户注册表是正确的。请参阅“给用户和组指定角色”一文。
另一个重要的注意事项是安全套接字层 (SSL) 公共密钥基础结构。在使用 Deployment Manager 运行 addNode 命令前,请验证 addNode 命令是否可作为 SSL 客户机与 Deployment Manager 通信。此通信要求在 sas.client.props 文件中配置的 addNode 信任密钥库包含 Deployment Manager 个人证书的签署者证书,可在密钥库中找到并在管理控制台中指定该证书。
与安全性一起运行 addNode 命令时需要考虑以下问题:- 当尝试运行系统管理命令(如 addNode 命令)时,请指定管理凭证以执行此操作。addNode 命令接受
-username 和 -password 参数以指定用户标识和密码。指定的用户标识和密码必须可用于管理用户。例如,指定具有管理员特权的控制台用户成员之一,或指定在用户注册表中配置的管理用户标识。请参阅 addNode 命令的以下示例:
addNode CELL_HOST 8879 -includeapps -username user -password pass
-includeapps 参数是可选的。此选项会尝试将服务器应用程序包含在 Deployment Manager 中。如果应用程序服务器和 Deployment Manager 使用的用户注册表不同,那么 addNode 命令可能会失败。要更正此故障,请使用相同的用户注册表或关闭安全性。如果您更改用户注册表,请记住验证用户到角色和组到角色映射是否正确。请参阅 addNode 命令,以了解有关 addNode 语法的更多信息。
如果您在启用了安全性的情况下发出 addNode 命令,那么您必须使用具有权限的用户标识并指定 -user 和 -password 选项。
- 不支持通过管理控制台添加受保护远程节点。可在执行操作之前禁用远程节点的安全性,或使用 addNode 脚本从命令提示符执行此操作。
在运行 addNode 命令之前,您必须验证节点上的信任密钥库文件与 Deployment Manager 拥有的密钥库文件和系统授权工具 (SAF) 密钥环是否可进行通信,反之亦然。如果您使用相同的认证中心生成 Deployment Manager 的证书作为用于 Node Agent 流程的证书,那么可以成功通信。以下 SSL 配置必须包含可互操作的密钥库和信任密钥库:
- 在管理控制台中指定的系统 SSL 指令表。单击 。
- 适当的 JMX 连接器的 SSL 指令表(如果指定 SOAP)。单击 。
- 在 NodeAgent 中指定的 SSL 指令表。单击 。
将节点添加到定义另一安全域的 Deployment Manager 配置时一定要小心。
在运行 addNode 命令前,您必须验证节点上的信任密钥库文件与 Deployment Manager 的密钥库文件是否可以进行相互通信,反之亦然。使用缺省 DummyServerKeyFile 和 DummyServerTrustFile 时,因为他们已能够进行通信,所以不会发生任何通信错误。但是,永远不要在生产环境或传送敏感数据的任何时候使用这些假文件。
- 如果对 Deployment Manager V7 或 V8 启用了安全性,那么 Deployment Manager 将无法使用自动生成的内部服务器标识来联合 V6.x 节点。当启用安全性时,缺省情况下,会使用自动生成的内部服务器标识。
- 在先前发行版的客户机尝试使用 addNode 命令联合至 V7 或 V8 Deployment Manager 时,该客户机必须先获取签署者才能成功地进行握手。有关在此方案中运行 addNode 命令之前所需更改的更多信息,请阅读“保护安装以进行客户机检索”主题中的“从先前发行版获取签署者”,特别是“从先前发行版获取客户机和服务器的签署者”部分。可通过执行下列其中一个操作来更改用户注册表:
- 在管理控制台中,请单击全局安全性。在可用领域定义下,单击 。输入用户名和密码,然后单击应用。
- 运行 wsadmin 命令:
AdminTask.configureAdminWIMUserRegistry('[-autoGenerateServerId false -serverId testuser -serverIdPassword testuserpwd -primaryAdminId testuser -ignoreCase true ]')
- 在运行 addNode 命令之后,应用程序服务器在新的 SSL 域中。它可包含指向不准备与同一域中其他服务器互操作的密钥库和信任密钥库文件的 SSL 配置。考虑哪些服务器将相互通信,并确保服务器在信任密钥库文件中是可信的。