ovirt4.3部分开发文档分析
本文主要翻译Red Hat Virtualization4.3的部分开发文档,也就是ovirt4.3。
全文档链接:Product Documentation for Red Hat Virtualization 4.3
Rest API文档:REST API GUIDE
Rest API文档
CHAPTER 1. 简介
Red Hat虚拟化管理器提供了一个Representational State Transfer (REST) API。该API为软件开发人员和系统管理员提供了对标准web接口之外的Red Hat虚拟化环境的控制。对于开发人员和管理员来说,该API非常有用,可以将Red Hat虚拟化环境的功能与通过标准超文本传输协议(HTTP)访问API的自定义脚本或外部应用程序集成在一起。
API的优势:
- 广泛的客户端支持——任何支持HTTP协议的编程语言、框架或系统都可以使用该API。
- 自描述——客户机应用程序只需要很少的虚拟化基础设施知识,因为很多细节都是在运行时发现的。
- 基于资源的模型——基于资源的REST模型提供了一种自然地管理虚拟化平台的方法。
1.1. REST(Representational State Transfer)
表述性状态转移(Representational State Transfer, REST)是一种设计体系结构,它关注特定服务的资源及其表示。资源表示是信息的关键抽象,它对应于服务器上的一个特定托管元素。客户机向位于统一资源标识符(URI)的服务器元素发送请求,并使用标准HTTP方法执行操作,比如GET、POST、PUT和DELETE。这提供了客户机和服务器之间的无状态通信,其中每个请求独立于任何其他请求,并包含完成请求所需的所有信息。
1.2. API 前提条件
使用Red Hat虚拟化API的先决条件:
- 一个拥有安装了网络服务的Red Hat虚拟化管理平台,它需要包括API
- 一个从API服务器发起和接收HTTP请求的客户机或编程库。
例如:
oVirt Python SDK。
oVirt Ruby SDK。
oVirt Java SDK。
cURL命令行工具。
RESTClient,用于RESTful web服务的调试器。 - 了解用于REST API交互的超文本传输协议(HTTP)。
- 了解可扩展标记语言(XML)或JavaScript对象表示法(JSON),API使用它们来构造资源表示。
CHAPTER 2. 身份验证和安全
2.1. TLS/SSL 证书
Red Hat虚拟化API需要超文本传输协议安全(HTTPS)来与客户端软件(如SDK和CLI组件)进行安全交互。这包括获取服务器使用的CA证书,并将其导入客户机的证书存储区。
2.1.1. 获取CA认证
您可以从Red Hat虚拟化管理器获得CA证书,并使用以下方法之一将其传输到客户机:
- 方法一:
获取CA证书的首选方法是使用openssl s_client命令行工具与服务器执行真正的TLS握手,然后提取它所提供的证书。运行这样的命令:
$ openssl s_client \
-connect myengine.example.com:443 \
-showcerts \
< /dev/null
该命令将连接到服务器,并显示如下输出:
CONNECTED(00000003)
depth=1 C = US, O = Example Inc., CN = myengine.example.com.23416
verify error:num=19:self signed certificate in certificate chain
---
Certificate chain
0 s:/C=US/O=Example Inc./CN=myengine.example.com
i:/C=US/O=Example Inc./CN=myengine.example.com.23416
-----BEGIN CERTIFICATE-----
MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
SVlJe7e5FTEtHJGTAeWWM6dGbsFhip5VXM0gfqg=
-----END CERTIFICATE-----
1 s:/C=US/O=Example Inc./CN=myengine.example.com.23416
i:/C=US/O=Example Inc./CN=myengine.example.com.23416
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
Pkyg1rQHR6ebGQ==
-----END CERTIFICATE-----
在 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 标记之间的文本显示了服务器提供的证书。第一个是服务器本身的证书,后一个是CA的证书。将CA证书(包括标记)复制到CA. crt文件中。结果应该是这样的:
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
Pkyg1rQHR6ebGQ==
-----END CERTIFICATE-----
【注意!】这是获得服务器使用的CA证书的最可靠的方法。这里描述的其他方法在大多数情况下都可以工作,但是如果CA证书被服务器管理员手动替换,它们将无法获得正确的CA证书。
- 方法二:
如果不能使用上面描述的openssl s_client方法,则可以使用命令行工具从Red Hat虚拟化管理器下载CA证书。
命令行工具的例子包括curl和wget,它们都可以在多个平台上使用。
如果使用curl,例子如下:
$ curl \
--output ca.crt \
'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
如果使用wget,例子如下:
$ wget \
--output-document ca.crt \
'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
- 方法三:
使用网页浏览器浏览位于:
https://myengine.example.com/ovirt-engine/services/pki-resource?resource