4.18.01 回滚流程

适用于私有云的 Edge v4.18.01

如果在更新到 Edge 4.18.01 期间发生错误,您可以回滚该组件 然后重新尝试更新。例如,如果更新到 Postgres 9.6 您可以仅回滚 Postgres 节点并再次尝试更新。

在以下两种情况下,您可能需要执行回滚:

  1. 回滚到较低版本。例如,从 4.18.01 到 4.17.01。
  2. 回滚到同一版本中的较旧版本。

请按照以下步骤对这两种场景执行回滚。

谁可以执行回滚

执行回滚的用户应与最初更新 Edge 的用户相同, 或以根用户身份运行的用户

默认情况下,Edge 组件以用户“apigee”的身份运行。在某些情况下,您可能使用的是 不同的用户例如,如果路由器必须访问 则您必须以 root 或具有访问权限的用户身份运行路由器 端口。或者,您可以以一个用户身份运行一个组件,以另一个用户身份运行另一个组件。

哪些组件可以回滚

执行回滚时,您应注意以下条件:

  • 下面列出的五个 Edge 组件共用代码。因此,如果要回滚 则必须回滚节点上安装的五个组件中的任意一个。对于 假设您在 节点,如果要回滚其中任何一个,则必须同时回滚所有三个。

    共享代码的五个组成部分是:

    • 管理服务器
    • 路由器
    • 消息处理器
    • Qpid 服务器
    • Postgres 服务器
  • 如果您是从 Edge 4.16.01 更新,请勿回滚 Cassandra。这个 Edge 版本包含 Cassandra 的更新版本。如果您要回滚任何组件,请保留 4.18.01 版本的 Cassandra。

回滚 4.18.01

本部分包含将 Edge 4.18.01 回滚到先前版本的过程。这个 部分分为两部分:

  • 回滚 Postgres 更新
    每个更新过程的最后一步都是将 Postgres 节点更新到版本 9.6。如果 更新失败,则可以使用此过程回滚更新。
  • 回滚所有其他 Edge 组件
    请按照以下步骤回滚任何其他 Edge 组件。

回滚 Postgres 9.6 更新

如需在主备用配置中更新 Postgres 时回滚 Postgres 更新,请执行以下操作: 您:

  • 将新的备用节点提升为 Postgres 主实例。新的 Postgres 主 版本与之前安装的 Edge 相同。
  • 将旧备用节点配置为新主实例的备用节点。旧备用节点 版本将与之前安装的 Edge 相同。
  • 向分析组和使用方组注册新的主节点和备用节点。

完成回滚后,将不再需要旧的主节点。您可以 然后停用旧的主节点。

  1. 确保新的备用 Postgres 节点正在运行:
    > /opt/apigee/apigee-service/bin/apigee-all status

    如果 Postgres 未运行,请将其启动:

    > /opt/apigee/apigee-service/bin/apigee-all start
  2. 确保在旧主节点和旧备用节点上停止 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
  3. 如果已安装,请在旧备用节点上启动 Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. 将新的备用节点提升为 Postgres 主实例: <ph type="x-smartling-placeholder">
      </ph>
    1. 将新的备用节点提升为新主实例
      > apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      如果出现提示,请输入“apigee”的 Postgres 密码用户,默认为 “postgres”。

    2. 修改您用于安装当前版本 Edge 的配置文件,以指定 以下:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. 配置新的主实例
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. 重新构建旧备用节点: <ph type="x-smartling-placeholder">
      </ph>
    1. 修改您用于安装当前版本 Edge 的配置文件,以指定 以下:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. 移除旧备用节点上的数据目录:
      > cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. 将旧备用节点重新配置为新主实例的备用节点:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. 确保 Postgres 在旧备用节点上运行:
      > /opt/apigee/apigee-service/bin/apigee-all status

      如果它没有运行,请将其启动:

      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. 通过查看 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 文件。
  7. 通过运行以下命令,查看当前的分析和使用方群组信息 在管理服务器上执行下列操作:
    > 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" : {
      }
    }
  8. 通过在旧主实例上运行以下 c网址 命令来获取旧主实例的 UUID 地址 主节点:
    > curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    您应该会在输出末尾看到该节点的 UUID,格式如下:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  9. 重复上一步,获取旧备用节点和新备用节点的 IP 地址 。
  10. 从使用方组中移除旧的主节点和备用节点:
    > 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-001consumer-group-001 分别是 和消费者群体。masterUUID,standbyUUID的顺序与其相同 在您查看上述当前分析数据和消费者群组信息时显示。您 可能必须将其指定为 standbyUUID,masterUUID

    consumer-groupsdatastores 属性现在应为 为空。

  11. 从分析组中移除旧的主节点和备用节点:
    > 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 属性现在应为空。

  12. 向分析组和使用方组注册新的 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
  13. 验证分析群组:
    > curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    您应该会看到分析组中列出的新主节点和备用节点的 UUID,并且 消费者群体

  14. 重启边缘管理服务器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. 重启所有 Qpid 服务器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. 重启所有 Postgres 服务器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. 通过在两台服务器上发出以下脚本来验证复制状态。系统 应在两个服务器上显示相同的结果,以确保复制成功:

    在新主实例上,运行以下命令:

    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    验证其是否表明自己是主实例。在旧备用节点上:

    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    验证它是否表明它是备用实例。

  18. 在发出几个 API 请求后重复执行上一步,以确保节点 同步。
  19. 使用 更新 Apigee Edge 4.16.01/4.16.05 至 4.17.09

    或者,您也可以从旧的主实例中卸载 Qpid,然后在新的主实例上安装 Qpid 节点,如下所述。卸载 Qpid 后,您可以停用旧的主实例 节点。

从旧版本的主实例中卸载 Qpid,并在新的主实例上安装 Qpid

请按以下步骤从旧版主实例中卸载 Qpid,然后将其安装在新主实例上 主:

  1. 禁止消息处理器访问旧主实例上的 Qpid 端口 5672,方法是 在所有消息处理器上运行以下命令:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. 运行以下命令,确保 Qpid 消息队列为空。您不能 卸载 Qpid,直到处理完所有待处理消息:
    > qpid-stat -q

    此命令会显示一个表,其中包含 msg, msgIn, and msgOut 的计数。 msg=0时,所有邮件都将处理完毕, 和 msgIn=msgOut

  3. 在旧主实例上运行以下命令,确定 Qpid 服务器的 UUID 旧主。保存此信息,以便在过程中稍后使用:
    > curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. 在旧主实例上停止 Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. 卸载 Qpid 服务器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. 从分析群组和使用方群组中移除旧的 Qpid 服务器:
    > curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
    > curl -u sysAdminEmail:password -X DELETE
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
  7. 从 ZooKeeper 中移除旧的 Qpid 服务器:
    > curl -u sysAdminEmail:password -X DELETE
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. 在新的主实例上安装 Qpid:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. 通过运行以下命令确定新主实例上 Qpid 服务器的 UUID 新的主实例。保存此信息,以便在过程中稍后使用:
    > curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. 向分析群组和使用方群组注册新的 Qpid 服务器:
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-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/consumers?uuid=qpid_UUID" -v
  11. 重启所有消息处理器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. 在新的 Qpid 服务器上运行以下命令,以检查是否已创建队列:
    > qpid-stat -q

    确保看到 msg、msgIn 和 msgOut 已更新为 Qpid 服务器 处理消息。

若要从以下位置回滚单个组件: 4.18.01

在执行回滚的过程中,必须为您的 当前版本的 Edge:

  • 如需回滚到 4.17.09,请下载 bootstrap_4.17.09.sh
  • 如需回滚到 4.17.05,请下载 bootstrap_4.17.05.sh
  • 如需回滚到 4.17.01,请下载 bootstrap_4.17.01.sh
  • 如需回滚到 4.16.09,请下载 bootstrap_4.16.09.sh
  • 如需回滚到 4.16.05,请下载 bootstrap_4.16.05.sh
  • 如需回滚到 4.16.01,请下载 bootstrap.sh

对于托管要回滚的组件的每个节点:

  1. 停止要回滚的组件: <ph type="x-smartling-placeholder">
      </ph>
    1. 如果要回滚节点上的以下任何一个组件, 将它们全部停止:管理服务器、路由器、消息处理器、Qpid 服务器或 Postgres 服务器: <ph type="x-smartling-placeholder">
        </ph>
      • > apigee-service edge-management-server stop
      • > apigee-service edge-router stop
      • > apigee-service edge-message-processor stop
      • > apigee-service edge-qpid-server stop
      • > apigee-service edge-postgres-server stop
    2. 如果要回滚节点上的任何其他组件,请只停止 组件: <ph type="x-smartling-placeholder">
        </ph>
      • > apigee-service comp stop
  2. 如果您要回滚创收功能,请将其从所有管理服务器和邮件中卸载 处理器节点:
    > apigee-service edge-mint-gateway uninstall
  3. 卸载该组件以在节点上进行回滚: <ph type="x-smartling-placeholder">
      </ph>
    1. 如果要回滚节点上的以下任何组件, 全部卸载:管理服务器、路由器、消息处理器、Qpid 服务器或 Postgres 服务器
      > apigee-service edge-gateway uninstall
    2. 如果要回滚节点上的任何其他组件,请仅卸载 组件
      > apigee-service comp uninstall
    3. 如果要回滚路由器,则必须删除 /opt/nginx/conf.d 的内容:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. 如需回滚组件,请执行以下操作: <ph type="x-smartling-placeholder">
      </ph>
    1. 卸载 4.18.01 版的 apigee-setup
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. 下载所需版本的 bootstrap.sh:例如,适用于 4.16.09
      > curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh 
    3. 安装 4.16.01、4.16.05 或 4.16.09 apigee-service 实用程序,并且 依赖项例如,对于 4.16.09
      > sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord

      其中 uNamepWord 是您收到的用户名和密码 如果您省略 pWord,系统会提示您输入 。

    4. 安装 apigee-setup
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. 安装所需版本的组件:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      其中 comp 是要安装的组件,configFile 是要安装的组件 配置文件。

    6. 如果要回滚 Qpid,请清空 iptables:
      > sudo iptables -F
  5. 要将组件回滚到 4.18.01 版本的特定版本,请执行以下操作: <ph type="x-smartling-placeholder">
      </ph>
    1. 下载特定的组件版本:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version install

      其中,comp-version 是要安装的组件和版本。例如:

      > /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install

      如果您使用的是 Apigee 在线代码库,则可以确定可用的组件版本 创建 Deployment

      > yum --showduplicates list comp

      例如:

      > yum --showduplicates list edge-ui
    2. 使用 apigee-setup 安装组件:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      例如:

      > /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

      请注意,您在安装时应如何仅指定组件名称。

如果您在回滚时遇到问题,请与 Apigee Edge 支持团队联系。