补丁和升级指南
应用补丁并实施从 Red Hat JBoss Enterprise Application Platform 的一个次版本升级到下一个次版本的说明。
摘要
提供有关 JBoss EAP 文档的反馈
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 请包含 文档 URL、章节编号 并描述问题。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多
红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。这些更改将在即将发行的几个发行本中逐渐实施。详情请查看 CTO Chris Wright 信息。
第 1 章 修复和升级介绍
1.1. 修补和升级 JBoss EAP
重大升级
当应用从一个主要版本移至另一个主要版本(例如从 JBoss EAP 6.4 移到 JBoss EAP 7.0)时,需要进行重大升级或迁移。如果应用程序遵循 Jakarta 规范,则无法访问已淘汰的 API,且不包含专有代码,则可能可以在 JBoss EAP 7 中运行应用程序,而无需任何代码更改。但是,JBoss EAP 7 中的服务器配置已更改,需要迁移。
这种类型的迁移信息包括在 JBoss EAP 迁移指南中。
小更新
JBoss EAP 定期提供点版本,它们是包括漏洞修复、安全修复和新功能的次要更新。
有关点版本中所做的更改的信息记录在 JBoss EAP 迁移指南,以及 7.4.0 发行注记 中。
您可以使用 JBoss 服务器迁移工具自动从一个点版本升级到另一个点版本,例如,从 JBoss EAP 7.4.0 升级到 JBoss EAP 7.4.1 以了解有关配置和运行 JBoss 服务器迁移工具的信息,请参阅使用 JBoss 服务器迁移工具。
您也可以手动升级服务器配置。有关如何执行手动升级的说明,请参阅本指南。如需更多信息,请参阅 升级 JBoss EAP。
累计补丁
JBoss EAP 定期提供包含漏洞和安全修复的累积修补程序。累积补丁由最后数字递增,例如从 7.4.0 到 7.4.1。
本指南的 JBoss EAP 补丁 章节中阐述了补丁安装。
第 2 章 修补 JBoss EAP
您应该选择将补丁应用到 JBoss EAP 的方法取决于您的安装方法。如果使用存档或安装程序方法安装了 JBoss EAP,则必须使用 补丁管理 .zip 文件。如果您使用 RPM 在红帽企业 Linux 上安装 JBoss EAP,则必须使用 RPM 修补程序。
在应用或回滚补丁之前,请备份您的 JBoss EAP 服务器,包括所有部署和配置文件。
如果您有一个本地安装的 JBoss EAP Maven 存储库,还必须将 Maven 存储库补丁 到与 JBoss EAP 服务器相同的累积补丁版本。
2.1. 修复存档或安装程序安装
您 可以从红帽客户门户下载 存档或安装程序安装 JBoss EAP 的累积修补程序。如果您在受管域中有多个 JBoss EAP 主机,您可以从 JBoss EAP 域控制器对个别主机进行补丁。
有关存档或安装程序安装补丁的重要备注
在修补存档或安装程序前,您必须记下以下内容:
-
如果您应用了更新模块补丁,则运行时使用的新补丁 JAR 存储在
EAP_HOME/modules/system/layers/base/.overlays/PATCH_ID/MODULE
中。原始 未 修补的文件保留在EAP_HOME/modules/system/layers/base/MODULE
中,且不在运行时使用。 要显著减少 JBoss EAP 7 的累积补丁版本的大小,您必须首先确认没有包括累积补丁更新的问题,然后运行此 CLI 命令
/core-service=patching:ageout-history()
。这会删除所有累积补丁覆盖,但最新和原始基本发行版本除外。例如,如果您有 JBoss EAP 7.0.0 并应用了 CP01,然后应用 CP02。如果运行
/core-service=patching:ageout-history()
,您将无法回滚到 CP01。回滚 CP02 意味着回滚到 JBoss EAP 7.0.0,您必须下载 CP01 并再次应用它。注意- 补丁只适用于归档安装,而不适用于 RPM。
- 您不需要应用中间的累积修补程序。例如,如果您有 JBoss EAP 7.0.0,您可以在不应用 CP01-CP04 的情况下应用 CP05。
- 如果您之前已经安装了之前,您只能回滚到以前的累积补丁。
2.1.1. 使用管理 CLI 修复 JBoss EAP
您可以使用管理 CLI 将补丁应用到 JBoss EAP。
您不能使用这些说明来更新您使用 RPM 方法安装的任何 JBoss EAP 服务器。请参阅 RPM 说明以应用补丁。
流程
- 登录红帽客户门户,再从 JBoss EAP 软件下载 下载补丁文件。
在管理 CLI 中使用以下命令应用补丁,包括到补丁文件的适当路径: https://access.redhat.com/documentation/zh-cn/red_hat_jboss_enterprise_application_platform/7.4/html-single/configuration_guide/#management_cli_overview
patch apply /path/to/downloaded-patch.zip
patch apply /path/to/downloaded-patch.zip
Copy to Clipboard Copied! 注意若要修补受管域中的 JBoss EAP 主机,您可以使用
--host=
参数指定 JBoss EAP 主机名。例如:patch apply /path/to/downloaded-patch.zip --host=my-host
patch apply /path/to/downloaded-patch.zip --host=my-host
Copy to Clipboard Copied! 如果尝试应用补丁,则补丁工具会显示警告消息。如果存在冲突,请为可用的参数输入 patch --help 来解析补丁冲突。
重启 JBoss EAP 服务器以使补丁生效:
shutdown --restart=true
shutdown --restart=true
Copy to Clipboard Copied!
验证
您可以通过打开管理 CLI 并运行补丁信息来验证是否已成功应用了
补丁
。预期输出:
Version: <PATCH_VERSION_NUMBER>.GA Cumulative patch ID: jboss-eap-<PATCH VERSION NUMBER>.CP One-off patches: none
Version: <PATCH_VERSION_NUMBER>.GA Cumulative patch ID: jboss-eap-<PATCH VERSION NUMBER>.CP One-off patches: none
Copy to Clipboard Copied! 这显示了新应用的补丁的版本和累积补丁 ID。
2.1.2. 使用管理控制台修补 JBoss EAP
您可以使用管理控制台,将补丁应用到 JBoss EAP。
您不能使用这些说明来更新您使用 RPM 方法安装的任何 JBoss EAP 服务器。请参阅 RPM 说明以应用补丁。
流程
- 登录红帽客户门户,再从 JBoss EAP 软件下载 下载补丁文件。
- 打开管理控制台,再进入到 Patching 选项卡。
使用 Add Patch 向导添加补丁。
对于单机服务器:
- 点 Add 按钮。
- 点 Choose a file or drag it here,选择下载的要应用的补丁,然后点 Next。
- 配置任何附加选项并点完成。
对于受管域:
- 选择要修补的主机,然后点添加 (+)按钮。
- 选择是否关闭主机上的服务器,然后点 Next。
- 点 Choose a file or drag it here,选择下载的要应用的补丁,然后点 Next。
- 配置任何附加选项并点完成。
- 如果补丁应用成功,请重新启动服务器使更改生效。
- 如果补丁应用程序失败,请查看错误消息。如果存在冲突,您可以使用 Add Patch 向导中的 Override All、Override Modules 和 Override 字段来绕过补丁更改的项目的内容验证。当您覆盖冲突时,补丁内容会覆盖您的修改。
验证
- 要验证您是否应用了补丁程序,请打开控制台来应用累计补丁。如果已安装成功,则应在管理控制台的补丁选项卡中列出。对于单机和受管域服务器,这都是相同的。
2.1.3. 回滚到以前应用的补丁
您可以使用 管理 CLI 或管理控制台回滚之前应用的 JBoss EAP 补丁。https://access.redhat.com/documentation/zh-cn/red_hat_jboss_enterprise_application_platform/7.4/html-single/patching_and_upgrading_guide/#proc_archive_rollback_management_console
使用补丁管理系统回滚补丁并不适合作为常规卸载功能。它仅应在有良好效果的修补程序应用后立即使用。
当您回滚补丁时,请务必为 重置
配置选项指定正确的值。在回滚补丁前,您必须设置以下两个值之一:
-
如果设置为
TRUE
,则补丁回滚过程会将 JBoss EAP 服务器配置文件回滚到它们的 pre-patch 状态。应用补丁后对 JBoss EAP 服务器配置文件进行的所有更改无法恢复。 -
如果设置为
FALSE
,则无法回滚服务器配置文件。在这种情况下,服务器在回滚后可能不会启动,因为补丁可能会改变配置(如命名空间),您可以手动修复这些配置。
2.1.4. 使用管理 CLI 回滚补丁
您可以使用管理 CLI 在 JBoss EAP 上回滚补丁。
流程
使用管理 CLI 中的
patch history
命令查找您要回滚的补丁的 ID。注意如果您使用的是受管域,您必须将
--host=HOSTNAME参数添加到
命令以指定 JBoss EAP 主机。使用上一步中的适当补丁 ID 回滚补丁。
patch rollback --patch-id=PATCH_ID --reset-configuration=TRUE
patch rollback --patch-id=PATCH_ID --reset-configuration=TRUE
Copy to Clipboard Copied! 如果尝试回滚补丁程序,则补丁工具会发出警告。如果存在冲突,请为可用参数输入
patch --help
,并使用参数重新运行命令,指定您要如何解析冲突。重启 JBoss EAP 服务器以使补丁回滚生效:
shutdown --restart=true
shutdown --restart=true
Copy to Clipboard Copied!
验证
-
您可以验证已成功回滚补丁,打开管理 CLI 并运行
补丁信息
。这显示了以前应用补丁的版本和累积 ID。
2.1.5. 使用管理控制台回滚补丁
您可以使用管理控制台在 JBoss EAP 上回滚补丁。
流程
- 打开管理控制台,再进入 Patching 选项卡。
使用 Rollback 向导回滚补丁。
对于单机服务器:
- 选择要回滚的补丁并点 Rollback。
- 配置任何附加选项并点完成。
对于受管域:
- 选择主机,选择要回滚的补丁,然后点 Rollback。
- 选择是否关闭主机上的服务器并点 Next。
- 配置任何附加选项并点完成。
- 如果补丁成功回滚,请重新启动服务器使更改生效。
- 如果补丁回滚失败,请查看错误消息。如果存在冲突,您可以使用向导中的 Override All, Override Modules, and Override 字段来绕过受修补程序影响的项目的内容验证。
验证
- 要验证您是否已成功回滚补丁,请打开管理控制台并导航至补丁选项卡。在左侧,您可以看到之前应用的补丁版本。对于单机和受管域服务器,这都是相同的。
2.2. 对 RPM 安装打补丁
JBoss EAP 支持 RPM 安装补丁。在修补 RPM 安装前,您必须确保您的系统满足以下所有设置前提条件。
先决条件
- 基础操作系统是最新的,您可以从标准 Red Hat Enterprise Linux 软件仓库获取更新。
您已订阅了相关的 JBoss EAP 存储库以进行更新。
警告在更新 RPM 安装时,JBoss EAP 会通过订阅的存储库的所有 RPM 发行修复累积更新。
- 备份所有配置文件、部署和用户数据。
在受管域中,确保首先更新 JBoss EAP 域控制器。
流程
要使用您订阅的仓库中的 RPM 安装 JBoss EAP 补丁,请使用以下命令更新您的 Red Hat Enterprise Linux 系统:
yum update
# yum update
2.3. 修补本地 JBoss EAP Maven 存储库
如果您已安装 JBoss EAP Maven 存储库,则必须将补丁应用到 JBoss EAP Maven。
JBoss EAP Maven 存储库可在线或可下载压缩文件形式提供。如果您使用公开托管的在线 Maven 存储库,则会自动应用更新,因此您不需要更新存储库。但是,如果您使用 压缩文件在本地安装了 Maven 存储库,则您需要将更新应用到存储库。
每当为 JBoss EAP 发布累积补丁时,都会为 JBoss EAP Maven 存储库提供相应的补丁。此补丁以增量压缩文件的形式提供,这些文件解压缩到现有的本地存储库。它不会覆盖或删除任何现有文件,因此无需回滚。
使用以下步骤,将更新应用到本地安装的 JBoss EAP Maven 存储库。
先决条件
- 您已订阅了红帽客户门户网站。
- 您已下载并安装了 JBoss EAP 7.4、Maven 存储库。
流程
- 打开浏览器并登录 红帽客户门户网站。
- 从标头的菜单栏中选择 Downloads。
-
在列表中找到
Red Hat JBoss Enterprise Application Platform
并点该平台。 - 从 Version 下拉菜单中选择正确的 JBoss EAP 版本,然后单击 Patches 选项卡。
-
在列表中找到
Red Hat JBoss Enterprise Application Platform 7.4 Update CP_NUMBER Incremental Maven Repository
,其中CP_NUMBER
是您要更新到的累积补丁号,然后点 Download。 -
找到 JBoss EAP Maven 存储库的路径。以下命令中称为
EAP_MAVEN_REPOSITORY_PATH
。 将下载的 Maven 补丁文件直接解压缩到 JBoss EAP 7.4 Maven 存储库的 目录中。
对于 Red Hat Enterprise Linux,打开一个终端并运行以下命令,将
CP_NUMBER
替换为您要升级到的累积补丁号,并使用您的 Maven 存储库路径替换EAP_MAVEN_REPOSITORY_PATH
:unzip -o jboss-eap-7.4.CP_NUMBER-incremental-maven-repository.zip -d EAP_MAVEN_REPOSITORY_PATH
$ unzip -o jboss-eap-7.4.CP_NUMBER-incremental-maven-repository.zip -d EAP_MAVEN_REPOSITORY_PATH
Copy to Clipboard Copied! -
对于 Microsoft Windows,使用 Windows 提取实用程序,将压缩文件提取到
EAP_MAVEN_REPOSITORY_PATH
目录的根目录中。
其他信息
- 有关创建红帽客户门户网站帐户的详情,请参考 创建红帽客户门户网站帐户。
- 有关下载和本地安装 JBoss EAP 7.4 Maven 存储库的详情,请参考 准备设置 Maven。
第 3 章 升级 JBoss EAP
了解如何从一个 JBoss EAP 7 次要版本升级到另一个 JBoss EAP 7 次要版本。例如,从 JBoss EAP 7.0 升级到 JBoss EAP 7.1。
如果您要从 JBoss EAP 的较早主发行版本(例如,从 JBoss EAP 6 迁移到 JBoss EAP 7),请参阅 迁移指南。
3.1. 准备升级
在升级 JBoss EAP 前,您需要了解以下潜在问题:
- 如果在升级到较新版本的 JBoss EAP 时备份并恢复配置文件,您可能会覆盖新的发行版的配置。这可以在升级的 JBoss EAP 实例中禁用新功能。将旧配置与新配置进行比较,仅重新应用您需要保留的特定配置。您可以手动执行此操作,或者创建一个可一致地将更改应用到多个服务器配置文件的脚本。
- 如果您备份和恢复了迁移到较新的 JBoss EAP 版本的现有配置,服务器会更新配置文件。这些配置文件不再与以前的 JBoss EAP 版本兼容。
-
升级可能会删除临时文件夹。在开始升级前,备份所有存储在
data/content/
目录中的部署。您可升级后恢复目录的内容。否则,由于缺少的内容,以前的 JBoss EAP 服务器版本不会启动。 -
在应用升级之前,请处理任何打开的事务并删除
data/tx-object-store/
transaction 目录。 -
检查
data/timer-service-data
目录中的持久计时器数据,以确定数据是否应用到升级。 -
在升级前,请查看 data 目录中的
deployment-*
文件,以确定活跃的计时器。
3.2. 升级存档安装程序安装
您可以通过下载、解压缩和安装新版本的 JBoss EAP 来升级 JBoss EAP。
先决条件
- 确保基础操作系统为最新。
- 备份所有配置文件、部署和用户数据。
- 下载目标 JBoss EAP 版本的压缩文件。
对于受管域,请在升级到较新版本的 JBoss EAP 域控制器之前升级 JBoss EAP 域控制器。
升级的 JBoss EAP 7 域控制器可以管理受管域中的其他 JBoss EAP 7 主机,只要域控制器在同一版本或更最新版本的 JBoss EAP 上运行,这是受管域的剩余版本。
流程
将下载的压缩文件移到现有 JBoss EAP 安装位置以外的任何位置。
注意如果要将升级版 JBoss EAP 安装到与现有安装相同的目录中,在继续之前,需要将现有安装移到其他位置。这可防止丢失修改的配置文件、部署和升级。
- 提取压缩文件,以安装新 JBoss EAP 发行版本的干净实例
将
EAP_HOME/domain/
和EAP_HOME/standalone/
目录从上一安装复制到新的安装目录。重要您必须将以前的 JBoss EAP 版本中的配置文件与新版本的 JBoss EAP 中的文件进行比较和更新,因为之前版本复制的文件可能没有默认启用新功能。
查看对之前安装的
bin
目录所做的更改,并将更改应用到新发行版本的 bin 目录。警告不要覆盖 JBoss EAP 版本
bin
目录中的文件。您必须手动进行更改。查看上一安装中剩余的修改文件,并将这些更改移到新安装中。这些文件可能包括:
-
welcome-content
目录。 -
自定义模块在
modules
目录中。
-
- 可选: 如果 JBoss EAP 之前配置为作为服务运行,请删除现有服务并为新安装配置新服务。
3.3. 升级 RPM 安装
在使用 RPM 安装方法升级带有新 JBoss EAP 实例的当前 JBoss EAP 实例前,请检查您的系统是否满足特定的设置先决条件。
先决条件
- 基础操作系统是最新的,您可以从标准 Red Hat Enterprise Linux 软件仓库中获得更新。
您已订阅了用于升级的相关 JBoss EAP 存储库。
- 如果您订阅了以前的次要 JBoss EAP 存储库,则您已更改为最新的次要存储库以获取升级。
对于受管域,请在升级到较新版本的 JBoss EAP 域控制器之前升级 JBoss EAP 域控制器。
升级后的 JBoss EAP 7 域控制器仍然可以管理受管域中的其他 JBoss EAP 7 主机,只要域控制器运行的是与域其余部分相同的或更新的版本。
流程
在终端中发出以下命令,将当前的 JBoss EAP 版本升级到较新的 JBoss EAP 版本:
yum update
# yum update
Copy to Clipboard Copied! -
通过将每个
.rpmnew
文件手动合并到现有的配置文件中,在升级的版本中启用新功能,如新子系统。RPM 升级过程不会替换您修改的任何 JBoss EAP 配置文件,但它会根据升级的 JBoss EAP 实例的默认配置创建.rpmnew
文件。
3.4. 升级集群
JBoss EAP 不支持创建节点包含不同版本的 JBoss EAP 服务器的集群。群集中的所有节点都必须与 JBoss EAP 版本相关。
流程
- 创建新的 JBoss EAP 集群,其中包含运行最新 JBoss EAP 版本的节点。
- 将之前 JBoss EAP 发行版中的所有集群流量迁移到您升级的 JBoss EAP 发行版本的新集群。
- 关闭与较旧 JBoss EAP 版本相关的集群,然后删除其内容。