第 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。本例之外的章节将对此数据进行阐述。