第 7 章 将 JBoss EAP 7.3 配置迁移到 JBoss EAP 7.4

7.1. 将 JBoss EAP 7.3 Standalone Server 迁移到 JBoss EAP 7.4

默认情况下,JBoss 服务器迁移工具在将单机服务器配置从 JBoss EAP 7.3 迁移到 JBoss EAP 7.4 时执行以下任务。

7.1.1. 删除 Unsupported 子系统

JBoss 服务器迁移工具从迁移的服务器配置中移除所有不支持的子系统配置和扩展。在删除时,工具会将每个子系统和扩展记录到其日志文件和控制台。

注意
JBoss EAP 7.3 中不支持的任何子系统,但由管理员添加到该服务器,也不支持 JBoss EAP 7.4,并将被删除。

要跳过删除不支持的子系统,请将 subsystem .remove-unsupported-subsystems.skip 环境属性设置为 true

您可以覆盖 JBoss 服务器迁移工具的默认行为,并使用以下环境属性指定在迁移期间应包含或排除哪些子系统和扩展。

属性名称属性描述

extensions.excludes

不应迁移的模块名称列表,如 com.example.extension1,com.example.extension3

extensions.includes

应始终迁移的扩展模块名称列表,如 com.example.extension2,com.example.extension4

subsystems.excludes

子系统命名空间列表,即从未迁移的版本列表,例如:urn: jboss:domain:logging, urn:jboss:domain:ejb3

subsystems.includes

子系统命名空间列表,包括应始终迁移的版本,如 urn:jboss:domain:security, urn:jboss:domain:ee

7.1.2. 迁移参考模块

从源服务器迁移到目标服务器的配置可能会引用或依赖目标服务器上未安装的模块。JBoss 服务器迁移工具可检测并自动迁移所引用的模块,以及它们的依赖模块(从源服务器到目标服务器)。

使用以下步骤迁移单机服务器配置所引用的模块。

  • 由安全域配置引用的模块将迁移为插件模块。
  • 数据源子系统 配置引用的模块被迁移为数据源驱动程序模块。
  • ee 子系统配置引用的模块将迁移为全局模块。
  • naming 子系统配置引用的模块被迁移为对象工厂模块。
  • messaging 子系统配置引用的模块被迁移为 Jakarta Messaging bridge 模块。
  • 由 vault 配置引用的模块迁移到新配置。
  • 所有在目标配置中安装的扩展都会迁移到目标服务器配置中。

控制台会记录一个信息,指出迁移的任何模块的模块 ID。通过在 modules.excludes 环境属性中指定模块 ID,可以排除特定模块的迁移。如需更多信息 ,请参阅配置模块迁移

7.1.3. 迁移参考路径

从源服务器迁移到目标服务器的配置可能会引用或依赖必须迁移到目标服务器的文件路径和目录。JBoss 服务器迁移工具不会迁移绝对路径参考。它只会迁移配置为相对于源配置的文件和目录。控制台会记录一条消息,指出迁移的每个路径。

JBoss 服务器迁移工具自动迁移以下路径参考:

  • Vault 密钥存储和加密的文件的目录。

要跳过引用路径的迁移,请将 path .migrate-paths-requested-by-configuration.vault.skip 环境属性设置为 true

7.1.4. 添加 健康 子系统

JBoss EAP 7.4 健康 子系统提供对服务器健康功能的支持。JBoss 服务器迁移工具会自动将默认的 健康 子系统配置添加到迁移的配置文件中。

要跳过添加 健康 子系统配置,请将 subsystem.health.add.skip 环境属性设置为 true

health 子系统添加到 JBoss EAP 7.4 后,您将在 web 控制台中看到以下消息:

INFO  Subsystem health added.

7.1.5. 添加 指标子系统

JBoss EAP 7.4 指标子系统支持服务器 的指标 功能。JBoss 服务器迁移工具会自动将默认 指标子系统 配置添加到迁移的配置文件中。

要跳过添加指标子系统配置,请将 subsystem. metrics.add.skip 环境属性设置为 true

指标子系统 添加到 JBoss EAP 7.4 后,您将在 web 控制台中看到以下消息:

INFO  Subsystem metrics added.

7.1.6. 迁移兼容的安全性 Realms

由于 JBoss EAP 7.4 安全域配置与 JBoss EAP 7.3 安全域配置完全兼容,因此它们不需要通过 JBoss 服务器迁移工具进行更新。但是,如果 application-users.propertiesapplication-roles.propertiesmgmt-users.propertiesmgmt-groups.properties 文件不会被引用,工具会使用迁移的配置文件预期的路径。

要跳过安全域迁移,请将 security-realms.migrate-properties.skip 环境 属性设置为 true

7.1.7. 迁移部署

JBoss 服务器迁移工具可迁移以下类型的独立服务器部署配置:

部署迁移包括在目标服务器上安装相关的 file 资源,并可能需要更新迁移的配置。

JBoss 服务器迁移工具已预先配置为在非互动模式中运行时默认跳过部署。要启用部署迁移,请将 deployments.migrate-deployments.skip environment 属性设置为 false

重要

请注意,当您以互动模式运行 JBoss 服务器迁移工具并输入无效的输入时,结果行为取决于 deployments.migrate-deployments 环境属性值。

  • 如果 deployments.migrate-deployments.skip 设为 false,并且您输入无效的输入,则工具将尝试迁移部署。
  • 如果 deployments.migrate-deployments.skip 设为 true,并且您输入无效的输入,则该工具将跳过部署迁移。

要启用特定类型的部署迁移,请参阅以下部分。

警告

JBoss 服务器迁移工具并不决定部署的资源是否与目标服务器兼容。这意味着,应用程序或资源可能无法按预期工作,或者可能根本无法正常工作。另请注意,JBoss EAP 7.3 *-jms.xml 配置文件等工件在没有修改的情况下复制,并可能导致 JBoss EAP 服务器使用错误引导。

红帽建议您使用 Migration Toolkit for Applications(MTA)来分析部署,以确定不同 JBoss EAP 服务器之间的兼容性。如需更多信息,请参阅 Migration Toolkit for Applications 的产品文档

7.1.7.1. 迁移永久部署

要在非互动模式下运行时启用持久性部署迁移,请将 deployments.migrate-persistent-deployments.skip environment 属性设置为 false

JBoss 服务器迁移工具可搜索任何永久部署参考,并将其列出到控制台。

INFO  [ServerMigrationTask#67] Persistent deployments found: [cmtool-helloworld3.war, cmtool-helloworld4.war, cmtool-helloworld2.war, cmtool-helloworld1.war]

然后,处理工作流取决于您是否 在交互模式中 运行工具,还是在 非交互模式 中运行,如下所述。

在非互动模式中迁移永久部署

如果您以非互动模式运行该工具,该工具使用预配置的属性来确定是否迁移持久部署。只有在 deployments.migrate-deployments.skipdeployments.migrate-persistent-deployments.skip 属性都设为 false 时,才会迁移持久性部署。

在互动模式中迁移永久部署

如果您以交互模式运行该工具,JBoss Server Migration Tool 会提示您使用以下工作流进行每次部署。

  1. 在打印到控制台的持久部署后,您会看到以下提示。

    This tool is not able to assert if persistent deployments found are compatible with the target server, skip persistent deployments migration?
    yes/no?
    • 使用 yes 来跳过持续部署的迁移。所有部署引用都会从迁移的配置中删除,您最终会作为迁移过程的一部分删除。
    • 快速响应 ,不 继续迁移。
  2. 如果您选择继续,请查看以下提示。

    Migrate all persistent deployments found?
    yes/no?
    • 使用 yes 来自动迁移所有部署,并在迁移过程中结束这一部分。
    • 快速响应 ,不 继续迁移。
  3. 如果您选择继续,您会收到提示确认每个引用的部署迁移。

    Migrate persistent deployment 'helloworld01.war'?
    yes/no?
    • 使用 yes 做出迁移部署的响应。
    • 响应时 没有从 迁移的配置中移除部署。

      INFO  [ServerMigrationTask#68] Removed persistent deployment from configuration /deployment=helloworld01.war

7.1.7.2. 迁移部署扫描器

部署扫描程序仅用于单机服务器配置,监控新文件的目录,以及自动或通过特殊部署标志文件管理其部署。

要在非互动模式中运行时,启用位于由部署扫描程序监视的目录中的部署迁移,请将 deployments.migrate-deployment-deployments.skip 环境属性设置为 false

迁移独立服务器配置时,JBoss 服务器迁移工具首先搜索任何配置的部署扫描程序。对于发现的每个扫描程序,它会搜索其监控目录以查找标记为部署的部署,并将结果打印到控制台。

然后,处理工作流取决于您是否 在交互模式中 运行工具,还是在 非交互模式 中运行,如下所述。

在非互动模式中迁移部署扫描器

如果您以非互动模式运行该工具,该工具使用预配置的属性来确定是否迁移部署扫描程序部署。只有 deployments.migrate-deployments.skipdeployments.migrate-deployment-scanner-deployments.skip 属性都设为 false 时,才会迁移部署扫描器部署。

在互动模式中迁移部署扫描器

如果您以交互模式运行该工具,JBoss Server Migration Tool 会提示您使用以下工作流进行每次部署。

  1. 在打印到控制台的部署扫描程序部署后,您会看到以下提示。

    This tool is not able to assert if the scanner's deployments found are compatible with the target server, skip scanner's deployments migration?
    yes/no?
    • 使用 yes 来跳过部署扫描器部署的迁移。所有部署引用都会从迁移的配置中删除,您最终会作为迁移过程的一部分删除。
    • 快速响应 ,不 继续迁移。
  2. 如果您选择继续,请查看以下提示。

    Migrate all scanner's deployments found?
    yes/no?
    • 使用 yes 来自动迁移所有部署,并在迁移过程中结束这一部分。
    • 快速响应 ,不 继续迁移。
  3. 如果您选择继续,您会收到提示确认每个引用的部署迁移。

    Migrate scanner's deployment 'helloworld02.war'?
    yes/no?
    • 使用 yes 做出迁移部署的响应。
    • 响应时 没有从 迁移的配置中移除部署。

      INFO  [ServerMigrationTask#69] Resource with path EAP_HOME/standalone/deployments/helloworld02.war migrated.

7.1.7.3. 迁移部署覆盖

部署覆盖的迁移是一个完全自动化的过程。如果您已通过将 deployments.migrate-deployments.skip 环境属性设置为 false 来启用部署迁移,则 JBoss 服务器迁移工具会搜索在链接到迁移部署的独立服务器配置中引用的部署覆盖。它会自动迁移找到、删除未引用的那些未引用的对象,并将结果记录到其日志文件和控制台。