补丁和升级指南
应用补丁并实施从红帽 JBoss 企业应用平台次要版本升级到下一个次要版本的说明.
摘要
第 1 章 简介
1.1. 关于迁移和升级
主要升级
当应用从一个主要版本移至另一个主要版本(例如从 JBoss EAP 6.4 移到 JBoss EAP 7.0)时,需要进行重大升级或迁移。如果应用遵循 Java EE 规范,不访问已弃用的 API,并且不包含专有代码,则或许可以在没有任何应用代码更改的情况下在 JBoss EAP 7 中运行应用。但是,JBoss EAP 7 中的服务器配置已更改,需要迁移。这种类型的迁移在 JBoss EAP迁移指南中得以解决。
次更新
JBoss EAP 定期提供点版本,它们是包括漏洞修复、安全修复和新功能的次要更新。有关点版本更改的信息,请参阅 JBoss EAP迁移指南和 7.3.0 发行说明。
您可以使用 JBoss 服务器迁移工具自动从一个版本升级到另一个版本,例如从 JBoss EAP 7.0 升级到 JBoss EAP 7.1。有关如何配置和运行工具的详情,请参考 使用 JBoss 服务器迁移工具。
如果您愿意,可以手动升级服务器配置。有关如何执行手动升级的说明,请参阅本指南。如需更多信息,请参阅升级 JBoss EAP。
累积补丁
JBoss EAP 定期提供包含漏洞和安全修复的累积修补程序。累积修补程序将发行版递增到最后一个数字,例如从 7.1.0 增加到 7.1.1。本指南的"修补 JBoss EAP"章节中介绍了补丁安装。
1.2. 订阅安全公告
红帽拥有一份用于安全公告的邮件列表。您可以订阅此邮件列表,以获取有关影响 JBoss EAP 的安全相关公告的通知。
第 2 章 修补 JBoss EAP
将补丁应用到 JBoss EAP 的方法取决于您的安装方法。如果您使用 ZIP 或安装程序方法安装 JBoss EAP,则必须使用基于 ZIP 的补丁管理系统。如果您使用 RPM 在红帽企业 Linux 上安装 JBoss EAP,则必须使用 RPM 补丁。
在应用或回滚修补程序之前,您应该备份您的 JBoss EAP 服务器,包括所有部署和配置文件。
如果您有本地安装的 JBoss EAP Maven 存储库,您还必须将 Maven 存储库修补为与 JBoss EAP 服务器相同的累积补丁版本。
2.1. 修补 ZIP/Installer 安装
可从红帽客户门户下载 JBoss EAP 的 ZIP 或安装程序安装的累积修补程序。
对于受管域环境中的多个 JBoss EAP 主机,可以从 JBoss EAP 域控制器修补个别主机。
除了应用补丁程序外,您还可以回滚补丁应用程序。
2.1.1. 有关 ZIP/Installer 安装补丁的重要备注
-
如果您应用了更新模块的补丁,则运行时使用的新补丁 JAR 将存储在
EAP_HOME/modules/system/layers/base/.overlays/PATCH_ID/MODULE
中。原始未修补的文件保留在EAP_HOME/modules/system/layers/base/MODULE
中,但这些 JAR 不会 在运行时使用。 为了显著减少 JBoss EAP 7 的累积补丁版本大小,您现在无法执行累积修补程序的部分回滚。对于已应用的补丁,您将只能回滚整个补丁。
例如,如果您将 CP03 应用到 JBoss EAP 7.0.0,您将无法回滚到 CP01 或 CP02。如果您希望能够回滚到每个累积补丁版本,则必须按照发布顺序单独应用每个累积补丁。
2.1.2. 应用补丁
使用 RPM 方法安装的 JBoss EAP 服务器无法按照以下说明进行更新。有关应用补丁的 RPM 说明,请参阅 RPM 说明。
您可以使用管理 CLI 或管理控制台将下载的补丁应用到 JBoss EAP 服务器。
您只能使用管理 CLI 管理 JBoss EAP XP 补丁。
有关 JBoss EAP XP 补丁流的详情,请参阅《在 JBoss EAP 中使用 Eclipse MicroProfile 指南》中的 JBoss EAP XP 补丁流管理 JBoss EAP XP 补丁流。
使用管理 CLI 将补丁应用到 JBoss EAP
- 登录红帽客户门户,再从 JBoss EAP 软件下载下载补丁文件。
在管理 CLI 中,使用以下命令应用补丁,包括补丁文件的适当路径:
patch apply /path/to/downloaded-patch.zip
注意若要修补受管域中的另一 JBoss EAP 主机,您可以使用
--host=
参数指定 JBoss EAP 主机名。例如:patch apply /path/to/downloaded-patch.zip --host=my-host
如果尝试应用补丁时存在任何冲突,补丁工具将会发出警告。如果存在冲突,输入
patch --help
来使用可用的参数重新运行命令,并指定如何解决冲突。重启 JBoss EAP 服务器以使补丁生效:
shutdown --restart=true
使用管理控制台将补丁应用到 JBoss EAP
- 登录红帽客户门户,再从 JBoss EAP 软件下载下载补丁文件。
- 打开管理控制台,再导航到 Patching 选项卡。
使用 Add Patch 向导添加补丁。
对于单机服务器:
- 单击添加(+)按钮。
- 单击 Choose a file 或在此处拖动,选择要应用的下载补丁,然后单击 Next。
- 配置任何附加选项并单击"完成"。
对于受管域:
- 选择要修补的主机,然后单击添加(+)按钮。
- 选择是否关闭主机上的服务器,然后单击 Next。
- 单击 Choose a file 或在此处拖动,选择要应用的下载补丁,然后单击 Next。
- 配置任何附加选项并单击"完成"。
验证补丁是否已成功应用。
- 如果补丁应用成功,请重新启动服务器使更改生效。
- 如果补丁应用失败,请查看错误消息。如果存在冲突,您可以使用 Add Patch 向导中的Override All 、Override Modules 和 Override 字段来绕过补丁更改的项目的内容验证。覆盖冲突会导致补丁内容覆盖用户的任何修改。
2.1.3. 回滚补丁
您可以使用管理 CLI 或管理控制台回滚之前应用的 JBoss EAP 补丁。
使用补丁管理系统回滚补丁并不适合作为常规卸载功能。它仅应在有良好效果的修补程序应用后立即使用。
您只能使用管理 CLI 管理 JBoss EAP XP 补丁。
有关 JBoss EAP XP 补丁流的详情,请参阅《在 JBoss EAP 中使用 Eclipse MicroProfile 指南》中的 JBoss EAP XP 补丁流管理 JBoss EAP XP 补丁流。
先决条件
- 之前应用的补丁。
当回滚补丁时,在指定 Reset Configuration
选项的值时要小心:
如果设置为 TRUE
,补丁回滚流程也会将 JBoss EAP 服务器配置文件回滚到其预补丁状态。应用补丁后对 JBoss EAP 服务器配置文件所做的任何更改都将丢失。
如果设置为 FALSE
,服务器配置文件将不会回滚。在这种情况下,服务器可能不会在回滚后启动,因为补丁可能会更改了配置,如命名空间,这些配置可能不再有效,必须手动修复。
使用管理 CLI 回滚补丁
在管理 CLI 中,使用
patch history
命令查找您要回滚的补丁 ID。注意如果使用受管域,则必须在此流程中的命令中添加
--host=HOSTNAME
参数,以指定 JBoss EAP 主机。使用上一步中的适当补丁 ID 回滚补丁。
patch rollback --patch-id=PATCH_ID --reset-configuration=TRUE
如果尝试回滚补丁时有任何冲突,补丁工具将会发出警告。如果存在冲突,输入
patch --help
来使用可用的参数重新运行命令,并指定如何解决冲突。重启 JBoss EAP 服务器以使补丁回滚生效:
shutdown --restart=true
使用管理控制台回滚补丁
- 打开管理控制台,再导航到 Patching 选项卡。
使用 Rollback 向导回滚补丁。
对于单机服务器:
- 选择要回滚的补丁并单击 Rollback。
- 配置任何附加选项并单击"完成"。
对于受管域:
- 选择主机,选择要回滚的补丁,然后单击 Rollback。
- 选择是否关闭主机上的服务器并单击 Next。
- 配置任何附加选项并单击"完成"。
验证回滚是否成功。
- 如果补丁成功回滚,请重新启动服务器使更改生效。
- 如果补丁回滚失败,请查看错误消息。如果存在冲突,您可以使用向导中的 Override All、Override Modules 和 Override 字段来绕过受修补程序影响的项目的内容验证。
2.1.4. 清除补丁历史记录
当补丁应用到 JBoss EAP 服务器时,修补程序的内容和历史将保留下来,以用于回滚操作。如果应用了多个累积补丁,补丁历史记录可能会占用大量磁盘空间。
您可以使用以下管理 CLI 命令删除目前尚未使用的所有较早补丁:使用此命令时,只会保留最新的累积补丁和 GA 版本。仅当之前应用了多个累积补丁时,这仅适用于释放空间。
/core-service=patching:ageout-history
如果您清除了补丁历史记录,您将无法回滚之前应用的补丁。
2.2. 修补 RPM 安装
先决条件
- 确保基础操作系统为最新版本,并且已订阅并启用,以便从标准红帽企业 Linux 存储库获取更新。
确保您已订阅了相关的 JBoss EAP 存储库进行更新。
警告在更新 RPM 安装时,JBoss EAP 会通过订阅的存储库的所有 RPM 发行修复累积更新。
- 备份所有配置文件、部署和用户数据。
对于受管域,应首先更新 JBoss EAP 域控制器。
要通过订阅的仓库中的 RPM 安装 JBoss EAP 补丁,请使用以下命令更新您的 Red Hat Enterprise Linux 系统:
# yum update
2.3. 可选:修补本地 JBoss EAP Maven 存储库
如果您已安装 JBoss EAP Maven 存储库,则可能还需要修补它。
JBoss EAP Maven 存储库可在线提供,或作为下载的 ZIP 文件提供。如果您使用公开托管的在线 Maven 存储库,则会自动应用更新,且不需要任何操作来更新它。但是,如果您使用 ZIP 文件在本地安装 Maven 存储库,则负责应用更新到存储库。
每当为 JBoss EAP 发布累积补丁时,都会为 JBoss EAP Maven 存储库提供相应的补丁。此补丁以增量 ZIP 文件的形式提供,该文件解压缩到现有的本地存储库中。它不会覆盖或删除任何现有文件,因此无需回滚。
使用以下步骤,将更新应用到本地安装的 JBoss EAP Maven 存储库。
先决条件
- 有效的红帽客户门户访问和订阅.
- JBoss EAP 7.3 Maven 存储库,之前已下载并安装到本地。
更新本地安装的 JBoss EAP Maven 存储库
- 打开浏览器并登录红帽客户门户。
- 从页面顶部的菜单中选择 Downloads。
-
在列表中找到
红帽 JBoss 企业应用平台
并单击该平台。 - 从 Version 下拉菜单中选择正确的 JBoss EAP 版本,然后单击 Patches 选项卡。
-
在列表中找到
Red Hat JBoss Enterprise Application Platform 7.3 Update CP_NUMBER Incremental Maven Repository
,其中CP_NUMBER
是您要更新到的累积补丁号,然后单击 Download。 -
找到 JBoss EAP Maven 存储库的路径。以下命令中称为
EAP_MAVEN_REPOSITORY_PATH
。 将下载的 Maven 补丁文件直接解压缩到 JBoss EAP 7.3 Maven 存储库的 目录中。
对于 Red Hat Enterprise Linux,打开一个终端并运行以下命令,替换累积补丁编号和 Maven 存储库路径的值:
$ unzip -o jboss-eap-7.3.CP_NUMBER-incremental-maven-repository.zip -d EAP_MAVEN_REPOSITORY_PATH
-
对于 Microsoft Windows,使用 Windows 提取实用程序将 ZIP 文件提取到
EAP_MAVEN_REPOSITORY_PATH 目录的根目录
中。
第 3 章 升级 JBoss EAP
本章论述了如何从一个 JBoss EAP 7 次要版本升级到另一个次要版本。例如,从 JBoss EAP 7.0 升级到 JBoss EAP 7.1。
如果您要从 JBoss EAP 的较早主要版本(例如从 JBoss EAP 6 迁移到 JBoss EAP 7)进行迁移,请参阅《迁移指南 》。
3.1. 准备升级
在升级 JBoss EAP 之前,您需要了解以下潜在问题:
- 如果您在升级到更新的点版本时备份并恢复了配置文件,您可以覆盖新版本中的新配置,并防止自动启用新功能。建议的做法是将旧配置与新配置进行比较,并且仅重新应用您需要保留的特定配置。这可以手动完成,也可创建脚本,以统一应用到多个服务器配置文件。
- 如果您备份和恢复升级的现有配置,当服务器重启和更新配置文件时,更新的配置可能不再与之前的版本兼容。
-
升级可能会删除临时文件夹。存储在
data/content/
目录中的所有部署都必须在升级前备份,并在升级完成后恢复。否则,由于缺少内容,服务器将无法启动。 -
在应用升级前,请处理所有打开的交易并删除
data/tx-object-store/
transaction 目录。 -
必须检查
data/timer-service-data
中的持久定时器数据,以确定升级后是否仍然适用。在升级前,请查看该目录中的deployment-*
文件以确定哪些计时器仍在使用。
3.2. 升级 ZIP/Installer 安装
先决条件
- 确保基础操作系统为最新版本。
- 备份所有配置文件、部署和用户数据。
- 下载您要升级到的 JBoss EAP 版本的 ZIP 文件。
对于受管域,应首先升级 JBoss EAP 域控制器。
升级后的 JBoss EAP 7 域控制器仍然可以管理受管域中的其他 JBoss EAP 7 主机,只要域控制器运行的是与域其余部分相同的或更新的版本。
将下载的 ZIP 文件移到所需的位置。建议此位置与现有的 JBoss EAP 安装不同。
注意如果要将升级版 JBoss EAP 安装到与现有安装相同的目录中,在继续之前,需要将现有安装移到其他位置。这是为了防止修改后的配置文件、部署和升级丢失。
- 提取 ZIP 存档。这会安装全新 JBoss EAP 版本的干净实例。
将
EAP_HOME/domain/
和EAP_HOME/standalone/
目录从上一安装复制到新的安装目录。重要如果从较旧的 JBoss EAP 安装中复制配置文件,新发行版中的新功能可能不会激活。要使用这些新功能,您必须将旧配置文件与新版本中的配置文件进行比较和更新。
查看对上一安装的
bin
目录所做的更改,并对新目录进行等同的修改。警告bin
目录中的文件不应被之前版本中的文件覆盖。更改应手动进行。查看上一安装中剩余的修改文件,并将这些更改移到新安装中。这些文件可能包括:
-
welcome-content
目录。 -
模块目录中的自定义
模块
。
-
- 可选:如果 JBoss EAP 之前配置为作为服务运行,请移除现有服务并为升级的安装配置新的服务。
3.3. 升级 RPM 安装
先决条件
- 确保基础操作系统为最新版本,并且已订阅并启用,以便从标准红帽企业 Linux 存储库获取更新。
确保您已订阅了用于升级的相关 JBoss EAP 存储库。
如果您订阅了以前的次要 JBoss EAP 存储库,您需要更改到最新的次要存储库来获取升级。
如需有关 JBoss EAP 存储库的更多信息,请参见《安装指南 》中关于选择 JBoss EAP 存储库和 更改 JBoss EAP 存储库的信息。
- 备份所有配置文件、部署和用户数据。
对于受管域,应首先升级 JBoss EAP 域控制器。
升级后的 JBoss EAP 7 域控制器仍然可以管理受管域中的其他 JBoss EAP 7 主机,只要域控制器运行的是与域其余部分相同的或更新的版本。
在订阅了相关的 JBoss EAP 存储库并且升级可用后,运行以下命令升级您的 JBoss EAP 安装:
# yum update
RPM 升级流程不会替换任何修改后的配置文件,而是为新 JBoss EAP 版本的默认配置创建
.rpmnew
文件。若要激活新发行版中的所有新功能,如新子系统,您必须手动将各个
.rpmnew
文件合并到现有的配置文件中。
3.4. 升级集群
JBoss EAP 不支持创建由不同版本的 JBoss EAP 服务器组成的节点。群集中的所有节点都必须是相同的 JBoss EAP 版本。
群集的升级流程涉及创建新的 JBoss EAP 群集,该群集由运行较新的 JBoss EAP 版本的节点组成,然后将来自上一群集的所有集群流量迁移到新的群集。完成此操作后,可以关闭和删除之前的 JBoss EAP 群集。
请参阅《配置指南》中关于配置高可用性 的章节以创建新集群 ,以及有关在集群间迁移流量以将流量从旧集群迁移到新集群的章节。
修订了 2022 年 2 月 6 日 16:45:06 +1000