6.4. 从恢复的自承载引擎环境中删除状态为 Non-Operational 的主机

当一个主机通过管理门户被隔离(fencing) 后,就可以使用 REST API 请求强制删除它。这个过程会使用 cURL(一个命令行接口,多数 Linux 发行版本都会包括它)向 HTTP 服务器发送一个请求。它会连接到 Manager 虚拟机来进行相关的请求。
  1. 隔离无法正常工作的主机

    在管理门户中,在主机上点鼠标右键,选确认“主机已被重启”
    当进行备份时在那个主机上运行的所有虚拟机都会被从那个主机上删除,并从 Unknown 状态变为 Down 状态。使用 REST API 把被隔离的主机强制删除。
  2. 获得 Manager 的证书颁发机构(CA)

    连接到 Manager 虚拟机,在命令行中使用 cURL 进行以下请求。
    使用 GET 请求获得 Manager 的 CA 以供今后的 API 请求使用。在下面的示例中,使用 --output 选项指定 hosted-engine.ca 文件作为 Manager CA 证书的输出。--insecure 选项意味着这个初始的请求不包括证书。
    # curl --output hosted-engine.ca --insecure https://[Manager.example.com]/ca.crt
  3. 获得要被删除的主机的 GUID

    在主机集合中使用一个 GET 请求获得要被删除的主机的 GUID。以下例子中包括了 Manager CA 证书文件,使用 admin@internal 用户进行验证,并在命令执行过程中会被提示输入它的密码。
    # curl --request GET --cacert hosted-engine.ca --user admin@internal https://[Manager.example.com]/api/hosts
    这个请求会返回环境中所有主机的信息。主机的 GUID 是和主机名相连的十六进制字符串。如需了解更多与 Red Hat Enterprise Virtualization REST API 相关的信息,请参阅 Red Hat Enterprise Virtualization REST API Guide
  4. 删除隔离的主机

    使用带有被隔离主机的 GUID 的 DELETE 请求从环境中删除这个主机。除了以前请求中使用的参数,这个例子中的请求还包括使用 XML 的头(header),以及内容(body)项。在内容项中,把 force 操作设置为 true
    curl --request DELETE --cacert hosted-engine.ca --user admin@internal --header "Content-Type: application/xml" --header "Accept: application/xml" --data "<action><force>true</force></action>" https://[Manager.example.com]/api/hosts/ecde42b0-de2f-48fe-aa23-1ebd5196b4a5
    通过使用相应的 GUID,这个 DELETE 请求可以被用来删除自承载引擎环境中的每一个被隔离的主机。
当主机被删除后,就可以在自承载引擎环境中对它们进行重新安装。