addNode 命令

addNode 命令用于将应用程序服务器安装版本合并到单元。

取决于合并到此单元的新节点的大小和位置,此命令可能要花几分钟时间完成。

[AIX Solaris HP-UX Linux Windows][z/OS]你必须有管理员权限使用addNode功能。

[IBM i]用户概要文件必须具有 *ALLOBJ 权限或者必须具有 addNode Qshell 脚本的读取和执行权限。

节点代理服务器作为addNode命令,除非你指定-noagent选项。 如果您重新启动主管应用程序服务器节点的系统,且未设置 Node Agent 作为操作系统守护程序,那么您必须在启动任何应用程序服务器前发出 startNode 命令来启动 Node Agent。

运行 addNode 命令时,该命令将停止要合并到单元中的正在运行的应用程序服务器。 在运行 addNode 命令之前,您可以选择停止该应用程序服务器。

[Windows]在将节点添加到单元之前与服务器关联的现有 Windows 服务在运行addNode命令。 如果您稍后将该节点从单元中除去,那么不会自动重新为服务器基本部件创建 Windows 服务。 请参阅有关 WASService 命令的信息,以了解如何为该产品创建 Windows 服务。

添加节点时,本产品可能会生成端口。 下列各项适用于端口生成:
  • 为 Node Agent 生成的端口对于安装中的所有概要文件是唯一的。 出于开发目的,您可以在同一安装上创建多个概要文件并将它们添加到一个或多个单元而无需担心端口冲突。
  • 如果要指定 Node Agent 使用的端口,那么在一个用 -portprops 选项传递文件名的文件中指定这些端口。 文件的格式为 key=value 对,每行一对,键名与 serverindex.xml 文件中的端口名相同。
  • 如果要使用多个连续的端口,请考虑使用 -startingport 选项。 这表示不检测与其他概要文件的端口冲突。
最佳实践:使用 -includeapps 选项addNode命令以确保环境以相同版本的应用程序启动。 如果在运行 addNode 命令之前在服务器上创建了任何定制策略集,那么在运行 addNode 命令之后不会将定制策略集复制至新单元。 因此,使用 -installApps 选项时,在运行 addNode 命令之后,使用定制策略集的服务器上的应用程序将无法装入该策略集。 可以在运行 addNode 命令之前从独立服务器中导出定制策略集,然后在运行 addNode 命令之后将该定制策略集导入新单元中。

请参阅有关使用命令行工具的主题,以确定是要从概要文件还是从应用程序服务器根目录运行此命令。

语法

请参阅该命令的语法:

[AIX Solaris HP-UX Linux Windows][z/OS]
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]
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 文件以了解当前在使用的端口。

提示:本主题引用一个或多个应用程序服务器日志文件。 作为推荐的替代方案,您可以将服务器配置为使用高性能可扩展日志记录 (HPEL) 日志和跟踪基础结构,而不是使用SystemOut.logSystemErr.logtrace.log , 和activity.log分布式文件和IBM® i系 统。 您还可以将 HPEL 与本机z/OS®伐木设施。 如果您正在使用 HPEL,那么可以从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。 查看有关使用 HPEL 的信息了解有关使用 HPEL 的更多信息,以排除应用程序故障。

参数

下列选项可用于 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 选项。

[AIX Solaris HP-UX Linux Windows][z/OS]默认情况下,在应用程序安装过程中,应用程序二进制文件将被提取到应用程序服务器根目录/installedApps/cellName目录。 运行 addNode 命令之后,您添加的节点上的配置单元名从基本单元名更改为 Deployment Manager 单元名。 应用程序二进制文件位于运行 addNode 命令之前它们所在的位置中,例如,app_server_root/installedApps/old_cellName

[IBM i]默认情况下,在应用程序安装过程中,应用程序二进制文件将被提取到配置文件根/installedApps/cellName目录。 运行 addNode 命令之后,您添加的节点上的配置单元名从基本单元名更改为 Deployment Manager 单元名。 应用程序二进制文件位于运行 addNode 命令之前它们所在的位置中,例如,profile_root/installedApps/old_cellName

在以下示例中,通过显式指定二进制文件的位置来安装了应用程序:
${APP_INSTALL_ROOT}/${CELL}
变量 ${CELL} 指定当前单元名。 然后,当 addNode 命令运行时,会将二进制文件移至 profile_root/installedApps/currentCellName 目录。

使用 addNode 命令将节点联合到单元时不会合并任何单元级别配置,其中包括虚拟主机信息。 如果新单元的虚拟主机和别名与该产品不匹配,您将无法访问在服务器上运行的应用程序。 您必须使用运行在 Deployment Manager 上的管理控制台,将所有虚拟主机和主机别名手动添加到新单元中。

[AIX Solaris HP-UX Linux Windows][z/OS]避免麻烦:指定 -includeapps 参数时,OutOfMemoryError如果 Java 虚拟机 (JVM) 堆大小太小,可能会出现这种情况。 发生此错误时,会发出以下错误消息:
ADMU0111E: 程序正在退出,错误为:java.lang.OutOfMemoryError

当处理大型应用程序,或当 Base Application Server 中有大量应用程序时,可能会发生此错误。

要从此错误恢复并成功联合应用程序服务器,请完成以下操作:

  1. 在您的 Deployment Manager 服务器上发出 cleanupNode 命令。 请参阅 cleanupNode 命令,以了解有关此命令的更多信息。
  2. 增加 addNode 脚本的 JVM 堆大小。 当您发出 addNode 命令时,JVM 堆大小设置为 -Xms128m -Xmx512m。 要增加这些值,请使用 -javaoption 参数。 例如,可以指定以下代码(全部内容都在一行上):[Windows]
    addNode localhost 8879 -javaoption java_option "-Xmx512m"
    [Linux][AIX]
    addNode.sh localhost 8879 -javaoption java_option "-Xmx512m"
  3. 重新发出 addNode 命令。
-includebuses
将总线从要联合的节点复制到单元。 此参数还会尝试将远程节点的服务集成总线配置复制到单元。 如果目标单元已包含与远程节点的任何总线同名的总线,那么添加节点操作将失败。 要防止此故障,您可以在使用 addNode 命令前执行一些操作。 您可以删除目标单元中具有该名称的总线、重命名要添加到单元的总线或手动配置已位于单元中的总线。
-startingport <portNumber>
支持指定端口号,作为所有节点代理和 Java 消息服务 (JMS) 服务器端口的基本端口号,当addNode命令运行。 使用此支持您可以控制为这些服务器定义哪些端口,而不是使用缺省端口值。 以 1 为单位递增此起始端口号,以计算执行 addNode 命令期间配置的每个 Node Agent 端口和 JMS 服务器端口的端口号。

[AIX Solaris HP-UX Linux Windows]为了避免潜在的端口冲突,请阅读端口号设置有关默认端口设置的更多信息。

如果同一物理服务器上存在多个 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。
[Windows]-registerservice
将 Node Agent 注册为 Windows 服务。

可根据情况使用 -serviceusername 参数和 -servicepassword 参数来定义 Windows 服务的用户名和密码。 如果定义用户名,那么您必须授予该用户名“作为服务登录”权限才能使该服务正常运行。

如果不指定用户名和密码,那么将在本地系统帐户下运行该服务。

[Windows]-serviceusername <user>
[Windows]将给定的用户名用作 Windows 服务用户。
[Windows]-servicepassword <password>
[Windows]使用给定的 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 选项通过完成下列步骤来重新创建不可用的节点:
  1. 使用与不可用的节点相同的节点和概要文件名称创建一个新概要文件。 可以在与原始节点不同的机器上创建该概要文件。
  2. 对于新的概要文件,请运行带有 -asExistingNode 选项的 addNode 命令。

还可使用 addNode 命令的 -asExistingNode 选项将节点移至另一计算机上位于相同路径的产品安装、将节点移至另一操作系统上或具有不同路径的产品安装、或者通过模板单元创建单元。 请参阅有关使用 addNode -asExistingNode 命令来恢复或移动节点的主题。

避免麻烦:其他addNode节点配置选项与此不兼容-asExistingNode选项。 不要将 -asExistingNode 与下列不兼容的选项配合使用:-includeapps、-includebuses、-startingport、-portprops、-nodeagentshortname、-nodegroupname、-registerservice、-serviceusername、-servicepassword、-coregroupname 或 -excludesecuritydomains。
-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]
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细胞

[AIX Solaris HP-UX Linux Windows][IBM i]当向单元添加节点时,您将自动继承该单元的用户注册表和身份验证机制。

[z/OS]当向单元添加节点时,新联合的节点会自动继承用户注册表(本地操作系统、轻量级目录访问协议 (LDAP) 或定制)、认证机制 (LTPA) 和授权设置( WebSphere®绑定或系统授权工具 (SAF) EJBROLE 配置文件)的现有WebSphere Application Server Network Deployment细胞。

对于分布式安全性,单元中的所有服务器必须使用同一用户注册表和认证机制。 为了从用户注册表更改恢复,必须修改应用程序,以便用户和组到角色映射对于新用户注册表是正确的。 请参阅“给用户和组指定角色”一文。

另一个重要的注意事项是安全套接字层 (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 语法的更多信息。

    [z/OS]如果你发布addNode启用安全性的命令,必须使用具有权限的用户 ID,并指定 -user 和 -password 选项。

  • 不支持通过管理控制台添加受保护远程节点。 可在执行操作之前禁用远程节点的安全性,或使用 addNode 脚本从命令提示符执行此操作。
  • [z/OS]在运行addNode命令,您必须验证节点上的信任库文件是否与部署管理器拥有的密钥库文件和系统授权工具 (SAF) 密钥环进行通信,反之亦然。 如果您使用相同的认证中心生成 Deployment Manager 的证书作为用于 Node Agent 流程的证书,那么可以成功通信。 以下 SSL 配置必须包含可互操作的密钥库和信任密钥库:
    • 在管理控制台中指定的系统 SSL 指令表。 点击系统管理>部署管理器> HTTP 传输>端口号> SSL
    • 适当的 JMX 连接器的 SSL 指令表(如果指定 SOAP)。 点击系统管理>部署管理器>行政服务> JMX 连接器> SOAP连接器>自定义属性>sslConfig
    • 在 NodeAgent 中指定的 SSL 指令表。 点击系统管理>节点代理>NodeAgent服务器>行政服务> JMX 连接器> SOAP连接器>自定义属性>sslConfig

    [z/OS]将节点添加到定义另一安全域的 Deployment Manager 配置时一定要小心。

  • [AIX Solaris HP-UX Linux Windows][IBM i]在运行addNode命令,您必须验证节点上的信任库文件是否可以与部署管理器中的密钥库文件进行通信,反之亦然。 使用缺省 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 配置。 考虑哪些服务器将相互通信,并确保服务器在信任密钥库文件中是可信的。