第 4 章 快速入门示例
本节中的示例演示了如何使用 REST API 设置基本红帽虚拟化环境并创建虚拟机。除了标准先决条件外,这些示例还需要以下内容:
- 联网和配置红帽虚拟化安装。
- 包含您要安装的虚拟机操作系统的 ISO 文件。本章使用 CentOS 7 作为安装 ISO 示例。
API 示例使用 curl 来演示客户端应用的 API 请求。您可以使用任何发送 HTTP 请求的应用。
本例中的 HTTP 请求标头省略 Host 和 Authorization 标头。但是,这些字段是必需的,需要特定于 Red Hat Virtualization 安装的数据。
curl 示例使用 admin@internal 作为用户名,my password 作为密码,/etc/pki/ovirt-engine/ca.pem 用作证书位置,myengine.example.com 作为主机名。您必须将它们替换为您的环境的正确值。
Red Hat Virtualization 会为每个资源生成唯一标识符,用于 id 属性。本例中的标识符代码将与 Red Hat Virtualization 环境中的标识符代码不同。
在许多示例中,为了简洁起见,API 返回的结果的一些属性已被省略。例如,请参阅集群引用来获取属性的完整列表。
4.1. 访问 API 入口点 复制链接链接已复制到粘贴板!
以下请求检索 API 版本 4 的主要入口点表示:
GET /ovirt-engine/api HTTP/1.1
Version: 4
Accept: application/xml
同一请求,但使用 /v4 URL 前缀而不是 Version 标头:
GET /ovirt-engine/api/v4 HTTP/1.1
Accept: application/xml
同一个请求,使用 curl 命令:
curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--request GET \
--header 'Version: 4' \
--header 'Accept: application/xml' \
--user 'admin@internal:mypassword' \
https://myengine.example.com/ovirt-engine/api
结果是一个类型为 Api 的对象:
<api>
<link href="/ovirt-engine/api/clusters" rel="clusters"/>
<link href="/ovirt-engine/api/datacenters" rel="datacenters"/>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.0.0-0.0.el7</full_version>
<major>4</major>
<minor>0</minor>
<revision>0</revision>
</version>
</product_info>
<special_objects>
<blank_template href="..." id="..."/>
<root_tag href="..." id="..."/>
</special_objects>
<summary>
<hosts>
<active>23</active>
<total>30</total>
</hosts>
<storage_domains>
<active>5</active>
<total>6</total>
</storage_domains>
<users>
<active>12</active>
<total>102</total>
</users>
<vms>
<active>253</active>
<total>545</total>
</vms>
</summary>
<time>2016-10-06T15:38:18.548+02:00</time>
</api>
如果未使用标头和 URL 前缀,服务器将自动选择版本。默认为版本 4。您可以使用 ENGINE_API_DEFAULT_VERSION 配置参数更改默认版本:
# echo "ENGINE_API_DEFAULT_VERSION=3" > \
/etc/ovirt-engine/engine.conf.d/99-set-default-version.conf
# systemctl restart ovirt-engine
更改此参数会影响未明确指定版本的 API 的所有用户。
入口点为用户提供虚拟环境中集合的链接。每个集合链接的 Therel 属性 都会为每个链接提供一个参考点。本例中的下一步将检查数据中心集合,该集合可通过 datacenters 链接使用。
入口点还包含其他数据,如 product_info、special_objects 和 summary。本例之外的章节将对此数据进行阐述。