第 1 章 概述
Java 软件开发套件(Java SDK)是一组类(class)的集合,您可以在基于 Java 的项目中使用它们与 Red Hat Virtualization Manager 进行交互。下载这些类并将其添加到项目中即可使用一系列功能自动完成高级别的管理任务。
Red Hat Virtualization 提供了两个版本的 Java 软件开发套件:
- V 3
- V3 Java 软件开发套件提供了对 Red Hat Enterprise Virtualization 3.6 最新版本中的 Java 软件开发套件的类(class)和方法(method)结构的后向兼容功能。使用 Red Hat Enterprise Virtualization 3.6 中的 Java 软件开发套件开发的应用程序可以在不需要进行修改的情况下在这个版本中运行。
- V 4
- V4 Java 软件开发套件提供了一组更新的类和方法。使用 Red Hat Enterprise Virtualization 3.6 中的 Java 软件开发套件开发的应用程序需要进行更新后才可以在这个版本中运行。
以上两个版本的 Java 软件开发套件都可以在 Red Hat Virtualization 环境中使用。这需要安装相关的软件包,并把所需的程序库添加到 Java 项目中。
1.1. 前提条件
为了安装 Java 软件开发套件,需要满足以下前提条件:
- 安装了 Red Hat Enterprise Linux 7(Server 版和 Workstation 版都被支持)的系统。
- 订阅了 Red Hat Virtualization 权利。
该软件开发套件是 Red Hat Virtualization REST AP 的接口,因此必须使用与 Red Hat Virtualization 环境对应的软件开发套件版本。例如:如果使用 Red Hat Virtualization 4.1,则必须使用为 4.1 版本设计的软件开发套件版本。
1.2. 安装 Java 软件开发套件
安装 Java 软件开发套件及随附文档。
安装 Java 软件开发套件(SDK)
启用所需的频道:
# subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-rhv-4.1-rpms # subscription-manager repos --enable=jb-eap-7-for-rhel-7-server-rpms
安装所需软件包:
V3:
# yum install ovirt-engine-sdk-java ovirt-engine-sdk-javadoc
V4:
# yum install java-ovirt-engine-sdk4
Java 软件开发套件和相关的文档被下载到 /usr/share/java/rhevm-sdk-java 目录中,它们现在可以被添加到所需的 Java 项目中。
1.3. 依赖性
在 Java 应用程序中使用 Java 软件开发套件时,必须在那些应用程序的类路径中添加以下 JAR 文件:
- commons-beanutils.jar
- commons-codec.jar
- httpclient.jar
- httpcore.jar
- jakarta-commons-logging.jar
- log4j.jar
将提供这些 JAR 文件的软件包作为 ovirt-engine-sdk-java
软件包的相依性软件包安装。默认情况下,它们位于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 系统的 /usr/share/java 目录中。
1.4. 配置 SSL
Red Hat Virtualization Manager Java SDK 使用 JSSE(Java Secure Socket Extension)提供了对 HTTP over SSL(Secure Socket Layer)和 IETF TLS(Transport Layer Security)的支持功能。JSSE 已经被集成到 Java 2 平台的 1.4 版本中,并可以直接和 Java SDK 一起使用。而在其它较老的 Java 2 版本中,JSSE 需要被手工安装和配置。
1.4.1. 配置 SSL
以下过程展示了如何配置 SSL 来使用 Java SDK。
配置 SSL
下载 Red Hat Virtualization Manager 使用的证书:
注意在默认情况下,Red Hat Virtualization Manager 使用的证书位于
/etc/pki/ovirt-engine/ca.pem
。创建一个 truststore:
$ keytool -import -alias "server.crt truststore" -file ca.crt -keystore server.truststore
在构建一个
Api
或Connection
对象实例时,指定trustStoreFile
和trustStorePassword
参数。myBuilder.trustStoreFile("/home/username/server.truststore"); myBuilder.trustStorePassword("p@ssw0rd");
注意如果在创建一个连接时没有指定
trustStoreFile
选项,Java SDK 会尝试使用系统变量javax.net.ssl.trustStore
所指定的默认 truststore。如果系统变量没有指定 truststore,Java SDK 会尝试使用在$JAVA_HOME/lib/security/jssecacerts
或$JAVA_HOME/lib/security/cacerts
中指定的 truststore。
1.4.2. 主机验证
在默认情况下,当试图创建一个到 Red Hat Virtualization Manager 的连接时,证书中的主机名的身份会被验证。如需禁用身份验证的过程,则在构建 Connection
类的实例时使用以下参数:
myBuilder.insecure(true);
因为安全的原因,这个方法一般不应该在生产环境中使用。如要使用这个方法,您需要了解不对主机身份进行验证可能会带来的安全风险。