概述
本文中开发的应用程序称为 VADeployer,它实现了对 IBM Systems Director VMControl REST API 的超文 本安全传输协议 (HTTPS) 请求,以模仿虚拟设备通过 IBM Systems Director Web 界面部署流程。VADeployer 还可用于修 改其他设置,比如部署前的内存和处理器分配。
VADeployer 构建于 Java 1.6 之上,图形用户界面 (GUI) 是使用 Eclipse Juno 和 WindowBuilder Pro SWT 开发的,遵循 Eclipse Public License v 1.0 许可。VADeployer 使用的 IBM Systems Director 和 VMControl 的 REST API 版本分别为 6.3.0 和 2.4.0。
在后面几节中,我们将介绍 VMControl 与虚拟设备模型之间的关系,让您了解 VADeployer 如何与 VMControl 交互来配置和部署一个虚拟设备。
虚拟设备(Virtual appliances)和 VMControl
IBM 和虚拟化市场领域中的其他供应商已采用分布式管理任 务组 (Distributed Management Task Force, DMTF) OVF 规范作为构建和部署软件虚拟设备的标准方式,这种方式简化了 将复杂软件解决方案集成到一个自包含的二进制开放虚拟化设备 (OVA) 包中的过程。VMControl 支持您导入虚拟设备(将 一个 OVA 包或 OVF 文件作为输入)并将它存储在映像存储库中。您也可以捕获一个虚拟服务器,在其中配置并运行您的软 件解决方案,从而在映像存储库中创建一个新虚拟设备。
在一个映像存储库(可能基于网络安装管理 (Network Installation Management, NIM) 或存储复制服务 (Storage Copy Services, SCS))中,您可能拥有包含不同的软件解决 方案的多个虚拟设备。根据您的业务需求,可以从目录中选择一个虚拟设备并进行快速部署,让它能够知道自己的部署上下 文。VMControl 支持您为在虚拟设备 OVF 文件中定义的每个产品部分指定配置值。一个产品部分可能是指应在部署时完成 的网络化、操作系统调优、操作系统安全性或任何软件产品配置。虚拟设备创建是另外一个主题,不会在本文中介绍,它由 虚拟解决方案激活引擎 (Virtual Solutions Activation Engine, VSAE) 解决方案完成,该解决方案是一个在激活应用程 序服务之前第一次引导时启动的脚本引擎。VSAE 主要解析 OVF 信封文件(默认名称为 ovf-env.xml),并以定义良好的激 活逻辑为基础,然后,激活引擎将所有配置参数传递给执行所需配置的相应的激活脚本。
自定义属性
OVF 文 件中一个产品部分中的每个可配置属性都会转换为 VMControl 中的一个自定义属性。您可以在部署时使用 VMControl REST API 检索可用于配置虚拟设备的所有自定义属性。例如,可将一个 GET 操作提交到清单 1 中所示的 REST API,以检索可 在运行时用于一个将部署在特定目标主机上的虚拟设备的自定义属性,这意味着您可以根据主机资源和描述虚拟设备的 OVF 文件来查找可用的属性。
清单 1. 检索部署时自定义属性的 REST API
/VMControl/virtualAppliances/ {virtualApplianceOID}/targets/{targetOID}/customization
IBM Systems Director 支持不同的虚拟化环境,包 括 VMWare ESX/ESXi、IBM PowerVM、基于内核的虚拟机 (KVM) 和 IBM z/VM。不过,VADeployer 仅在 PowerVM 上进行了 测试。在 OVF 文件内,Virtual Hardware Section 描述了虚拟设备需要的虚拟或逻辑硬件,比如磁盘、网络适配器、内存 和处理器分配等。这一节还包含虚拟系统类型(System 的一个直系子元素),该类型指定可部署虚拟设备的虚拟化环境。 例如,对于 VMware 第四代虚拟硬件,可将虚拟系统类型标识符设置为 vmx-4,而对于基于 IBM POWER 处理器的硬件,可 设置为 IBM:POWER:[OS],其中,[OS] 可以是 AIX、Linux 或 IBM i[X](X 是 IBM i 版本号)。根据 Virtual Hardware Section 中的描述,VMControl 允许您选择可部署虚拟设备的正确的目标主机。
可通过将一个 GET 操作发送到如清 单 2 所示的 REST API,从而检索可部署虚拟设备的所有有效的目标主机。
清单 2. 具有目标主机过滤器的 VMControl REST API
/VMControl/virtualAppliances/{virtualApplianceOID}/targets?type=host