如果您在更新到 Edge 4.51.00 期间遇到错误,可以回滚 组件,然后再次尝试更新。
您可以将 Edge 4.51.00 回滚到以下功能发布版本:
- 版本 4.50.00
- 版本 4.19.06
在以下两种情况下,您可能需要执行回滚:
- 回滚到之前的功能版本。例如, 4.51.00 至 4.50.00。
- 在 Google Cloud 控制台中回滚到之前的版本 发布版本。例如,从 4.50.00.02 到 4.50.00.01。
如需了解详情,请参阅 Apigee Edge 版本 过程。
谁可以执行回滚
执行回滚的用户应与最初更新 Edge 的用户相同,或者 以 root 身份运行的用户。
默认情况下,Edge 组件以用户“apigee”的身份运行。在某些情况下,您可能使用的是 不同的用户例如,如果路由器必须访问 则您必须以 root 或具有访问权限的用户身份运行路由器 端口。或者,您可以以一个用户身份运行一个组件,以另一个用户身份运行另一个组件。
具有通用代码的组件
以下 Edge 组件具有相同的代码。因此,如果要回滚 因此您必须回滚该节点上的所有这些组件。
edge-management-server
(管理服务器)edge-message-processor
(消息处理器)edge-router
(路由器)edge-postgres-server
(Postgres 服务器)edge-qpid-server
(Qpid 服务器)
例如,如果您在 Google Cloud 上安装了管理服务器、路由器和消息处理器, 因此,如果要回滚其中任何一个,则必须同时回滚所有三个。
回滚到上一个功能版本
要回滚到之前的功能版本,请在托管 组件:
-
下载您要回滚到的版本对应的
bootstrap.sh
文件 返回:- 如需回滚到 4.50.00,请下载
bootstrap_4.50.00.sh
:curl https://software.apigee.com/bootstrap_4.50.00.sh -o /tmp/bootstrap_4.50.00.sh
- 如需回滚到 4.19.06,请下载
bootstrap_4.19.06.sh
:curl https://software.apigee.com/bootstrap_4.19.01.sh -o /tmp/bootstrap_4.19.01.sh
- 如需回滚到 4.50.00,请下载
- 停止要回滚的组件:
<ph type="x-smartling-placeholder">
- </ph>
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
则必须停止所有节点,如以下示例所示:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
- 要回滚节点上的任何其他组件,只需停止该组件即可:
<ph type="x-smartling-placeholder">
- </ph>
/opt/apigee/apigee-service/bin/apigee-service component stop
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
则必须停止所有节点,如以下示例所示:
- 如果您要回滚创收功能,请将其从所有管理服务器和邮件中卸载
处理器节点:
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- 卸载该组件以在节点上进行回滚:
<ph type="x-smartling-placeholder">
- </ph>
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
节点,则必须通过卸载
edge-gateway
组件来将其全部卸载 组,如以下示例所示:/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- 要回滚节点上的其他任何组件,只需卸载该组件,因为
如下例所示:
/opt/apigee/apigee-service/bin/apigee-service component uninstall
其中 component 是组件名称。
- 要回滚边缘路由器,您必须删除
/opt/nginx/conf.d
文件。edge-gateway
组件组:cd /opt/nginx/conf.d
rm -rf *
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
节点,则必须通过卸载
- 卸载 4.51.00 版的
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 安装 4.19.06 或 4.50.00 版本的
apigee-service
实用程序及其依赖项。以下示例将安装 4.50.00 版apigee-service
:sudo bash /tmp/bootstrap_4.50.00.sh apigeeuser=uName apigeepassword=pWord
其中,uName 和 pWord 是您收到的用户名和密码 如果您省略 pWord,系统会提示您输入。
如果您收到错误消息,请确保已在第 4 步中下载了
bootstrap.sh
文件 1. - 安装
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 安装旧版组件:
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
其中,component 是要安装的组件,configFile 是指要安装的组件 旧版本的配置文件。
- 如果要回滚 Qpid,请清空 iptables:
sudo iptables -F
- 对托管要回滚的组件的每个节点重复此过程。
回滚到先前的更新版本
如需将组件回滚到特定版本,请在每个节点上执行以下操作 托管组件的容器:
- 下载特定的组件版本:
/opt/apigee/apigee-service/bin/apigee-service component_version install
其中,component_version 是要安装的组件和更新版本。例如:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.18.05-0.0.3749 install
如果您使用的是 Apigee 在线代码库,则可以确定可用的组件 可以使用以下命令:
yum --showduplicates list comp
例如:
yum --showduplicates list edge-ui
- 使用
apigee-setup
安装组件:/opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
例如:
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
请注意,您在安装组件时仅指定组件名称,而不指定版本。
- 对托管要回滚的组件的每个节点重复此过程。
回滚 Postgres 10.17 更新
如果您从 4.19.06 或 4.50.00 升级到了 4.51.00,则必须回滚 除 Edge 组件外,还更新了 Postgres。
如需在主备用配置中更新 Postgres 时回滚 Postgres 更新,请执行以下操作:
- 将新的备用节点提升为 Postgres 主实例。新的 Postgres 主 版本与之前安装的 Edge 相同。
- 将旧备用节点配置为新主实例的备用节点。旧备用节点 版本将与之前安装的 Edge 相同。
- 向分析组和使用方组注册新的主节点和备用节点。
完成回滚后,将不再需要旧的主节点。您可以 然后停用旧的主节点。
- 确保新的备用 Postgres 节点正在运行:
/opt/apigee/apigee-service/bin/apigee-all status
如果 Postgres 未运行,请将其启动:
/opt/apigee/apigee-service/bin/apigee-all start
- 确保在旧主节点和旧备用节点上停止 Postgres:
/opt/apigee/apigee-service/bin/apigee-all status
如果 Postgres 正在运行,请将其停止:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- 如果已安装,请在旧备用节点上启动 Qpid:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
- 将新的备用节点提升为 Postgres 主实例:
<ph type="x-smartling-placeholder">
- </ph>
- 将新的备用节点提升为新主实例:
apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
如果出现提示,请输入“apigee”的 Postgres 密码用户,默认为 “postgres”。
- 修改您用于安装当前版本 Edge 的配置文件,以指定
以下:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 配置新的主实例:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- 将新的备用节点提升为新主实例:
- 如果您已将旧备用节点升级到较新版本,则必须首先
在旧备用节点上降级 Apigee 软件。如果你还在使用旧版本的旧版本
备用节点,则可以跳过此步骤,继续执行第 6 步。
- 在旧备用节点上停止 Postgres:
apigee-service apigee-postgresql stop apigee-service edge-postgres-server stop
- 从旧备用节点卸载 Postgres:
apigee-service apigee-postgresql uninstall apigee-service edge-postgres-server uninstall
- 从旧备用节点中删除 Postgres 数据目录:
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 下载并运行旧版引导加载程序(适用于您要滚动的 Apigee 版本) 返回)。具体步骤可能会因您使用的是否为 在线安装或离线安装。运行旧版本的 Apigee 引导加载程序 并使用旧版本的 Apigee 数据设置 yum 代码库。
- 在旧备用节点上设置 Postgres 组件:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
- 检查并验证旧备用节点上的 Postgres 组件
已回滚到旧版本:
apigee-service apigee-postgresql version apigee-service edge-postgres-server version
- 在旧备用节点上停止 Postgres:
- 重新构建旧备用节点:
<ph type="x-smartling-placeholder">
- </ph>
- 修改您用于安装当前版本 Edge 的配置文件,以指定
以下:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 移除旧备用节点上的数据目录:
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 将旧备用节点重新配置为新主实例的备用节点:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- 确保 Postgres 在旧备用节点上运行:
/opt/apigee/apigee-service/bin/apigee-all status
如果 Postgres 未运行,请将其启动:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- 修改您用于安装当前版本 Edge 的配置文件,以指定
以下:
- 通过查看
/opt/apigee/apigee-postgresql/conf/pg_hba.conf
文件。 - 通过运行以下命令,查看当前的分析和使用方群组信息
在管理服务器上执行下列操作:
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
此命令会返回
name
字段中的分析群组名称,consumer-groups
下的name
字段中的使用方群组名称。它还 返回旧 Postgres 主节点和备用节点的postgres-server
字段和datastores
字段。您应该会看到 输出格式为:{ "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test", "sgilson~prod" ], "uuids" : { "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "postgres-server" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "datastores" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ], "properties" : { } } ], "data-processors" : { } }
- 通过在以下位置运行以下
curl
命令来获取旧主实例的 UUID 地址: 旧主节点:curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
您应该会在输出末尾看到该节点的 UUID,格式如下:
"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
- 重复上一步,获取旧备用节点和新备用节点的 IP 地址 。
- 从使用方组中移除旧的主节点和备用节点:
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v
其中,axgroup-001 和 consumer-group-001 分别是 和消费者群体。masterUUID,standbyUUID的顺序与其相同 在您查看上述当前分析数据和消费者群组信息时显示。您 可能必须将其指定为 standbyUUID,masterUUID。
consumer-groups
的datastores
属性现在应为 为空。 - 从分析组中移除旧的主节点和备用节点:
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
uuids
下的postgres-server
属性现在应为空。 - 向分析组和使用方组注册新的 PG 主节点和备用节点:
curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
- 验证分析群组:
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
您应该会看到分析组中列出的新主节点和备用节点的 UUID 和消费者群体
- 重启边缘管理服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- 重启所有 Qpid 服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- 重启所有 Postgres 服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 通过在两台服务器上发出以下脚本来验证复制状态。系统
应在两个服务器上显示相同的结果,以确保复制成功:
在新主实例上,运行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
验证它是否为主实例。在旧备用节点上:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
验证它是否为备用实例。
- 在发出几个 API 请求后重复执行上一步,以确保节点 同步。
- 使用
更新 Apigee Edge
4.16.01/4.16.05 至 4.17.09。
或者,您也可以从旧版主实例中卸载 Qpid,然后 在新的主节点上安装 Qpid。卸载 Qpid 后,您可以停用 旧主节点
回滚 mTLS
如需回滚 mTLS 更新,请在所有主机上执行以下步骤:
- 停止 Apigee:
apigee-all stop
- 停用 mTLS:
apigee-service apigee-mtls uninstall
- 重新安装 mTLS:
apigee-service apigee-mtls install
apigee-service apigee-mtls setup -f /opt/silent.conf