使用面向软件开发的vRealize Automation REST API部署虚拟机
2018-12-17
作者:Moinul Islam
VMwarevRealize Automation(vRA,以前称为vCloud Automation Center)是VMware公司开发的虚拟环境自动化软件。vRealize提供了一个安全门户,用户可以在其中请求新的IT服务并管理特定的云和IT资源。应用程序开发人员使用vRealize REST(表述性状态传递)API,可以在虚拟、物理和云环境中部署和实现虚拟机/物理机自动化。
本文面向希望使用vRealize Automation REST API进行编程部署和管理vRealize Automation的软件工程师和应用程序开发人员。
本文介绍如何逐步使用vRealize Automation REST API来部署蓝图,包括如何使用REST API服务和资源,如何创建HTTP承载令牌以进行身份验证和授权,以及如何构建REST API服务调用。演示步骤如下所示:
从蓝图部署虚拟机。
在部署过程中监视请求状态。
最后,在过程结束时返回有关已部署虚拟机的网络信息。
目标受众
本文适用于需要创建客户端应用程序、Web界面、Web服务(连接到vAPI端点以使用VMware vSphere Automation SDK进行REST服务)的应用程序开发人员和软件工程师,以及任何想要使用vRA管理其资源但又希望资源部署可适应其当前流程的人员。
为何选择vRealize Automation,而不是vCloud Director (vCD)
VMware已宣布vCloud Director将不再是vCloud Suite 6.x产品许可证的一部分。对于企业客户而言,vCloud Director即将终结。vCloud Director将继续通过云打包中的VMware服务提供商计划(VSPP)提供。
对于目前使用vCloud Director的用户而言,vRealize Automation将是后续替代产品。vRealize Automation可以加快应用程序和计算服务的部署和管理。
为何选择REST API而不是SOAP
SOAP(简单对象访问协议)和REST都是Web服务通信协议。REST通过一个单独、统一的接口来访问命名资源。它在通过互联网发布公有API时,最为常用。SOAP则与之不同,它将应用程序逻辑的组件作为服务发布,而不是数据。
REST允许更多种类的数据格式,而SOAP只允许XML。
通常认为REST与JSON(通常可以更好地处理数据并提供更快的解析)相结合,更易于使用。
REST以JSON格式输出,为浏览器客户端提供更好的支持。
REST提供卓越的性能,特别是缓存未变化的非动态信息时。
它是雅虎、eBay、亚马逊甚至谷歌等主要服务商最常用的协议。
REST通常更快并且占用带宽更少。与现有网站集成也更容易,无需重构站点基础架构。这使开发人员能够更快地工作,无需花时间从头开始重构站点。不仅如此,他们还可以轻松添加功能。
蓝图
图1.一个典型的简单蓝图
蓝图是包含一个或多个物理机、虚拟机或云计算机方案的规范,包括网络配置和相应的生命周期信息。在典型的软件开发过程中,用户调用REST API来部署蓝图。
vRealize Automation: REST API
目录服务REST API旨在供服务目录的使用者使用;例如,想要请求目录项的最终用户将是此API的使用者。当最终用户请求目录项时,将调用目录使用者REST API。
开发中使用的技术适用于希望以编程方式管理vRealize Automation以便为软件开发配置VM的开发人员。使用vRA REST API请求目录项的过程有以下五个步骤:
图2.请求和部署蓝图的五个步骤
第1步:获取HTTP承载令牌进行身份验证
URL: https://
类型:Get
类型:Post
报头:Content-type: application/json
第2步:使用蓝图名称获取蓝图id
URL: https://
类型:Get
报头:
Content-type: application/json,
Authorization: Bearer
Accept: application/json
第3步:获取请求目录项所需的JSON模板
URL: https://
类型:Get
报头:
Content-type: application/json,
Authorization: Bearer
Accept: application/json
第4步:请求目录项
URL: https://
类型:Post
报文:json response received from request template(之前步骤)
第5步:检查请求状态
URL: https:// 类型:Get 图3.Cyber Range通过REST API与vRA交互 REST客户端程序 任何可以发送HTTPS请求的客户端应用程序都是适用的工具平台,可以使用vRealize Automation API开发REST应用程序。一些常用的开源软件包括: CURL(命令行工具和库):curl.haxx.se/ Postman application: getpostman.com/ API参考 vRealize Automation API参考列出了所有的REST API服务调用。它以Swagger文档的形式提供,可通过以下任一方式获得: 如果在本地安装vRealize:https:// {server} /vco/api/docs/index.html Vmware web资源:pubs.vmware.com/vra-62/index.jsp - com.vmware.vra.restapi. doc/index.html Cyber Range: 一款ADI公司的实际软件 什么是Cyber Range? ADI公司Cyber Range?软件为客户提供可扩展的虚拟化平台,适用于网络安全培训、建模、仿真和高级分析。我们为多家客户提供解决方案,包括美国国防部、新加坡网络安全局(CSA/SITSA)和日本九州大学。 用户单击开始按钮以部署实验室或应对挑战。 Cyber Range软件调用相应的vRA REST API。 REST API调用相应的vRA蓝图。 vRealize开始部署属于特定蓝图的所有VM。 vRealize Orchestrator在VM的生命周期中运行自定义脚本(如果有)。 REST API将状态返回给Cyber Range软件。 如果状态检查成功,则会显示Windows或Linux图标,从而启用超链接以打开控制台。 结论 vRealize通过使用蓝图,可以作为能够在更直观且用户友好的环境中运行基础架构的存储库。这有助于我们及时定制或添加更多内容以满足用户需求。此外,我们的解决方案集成了vRealize Orchestrator,可提供应用于运行虚拟环境的常见自动化任务,能够利用大部分代码进行部署。它面向JavaScript,可以帮助我们管理VMware解决方案中的任何自定义脚本,并针对不同的场景进行重复利用。此外,使用vRA REST API部署蓝图,获取部署状态或销毁蓝图可大幅缩短软件开发过程的时间。 作者简介 Moinul Islam是ADI公司可信安全解决方案(TSS)部门(位于美国坦帕市)的软件工程师。他在软件工程、设计和开发方面拥有20年的经验。他于1997年毕业于俄亥俄州克利夫兰州立大学,拥有计算机和信息科学(MCIS)硕士学位。作为坦帕可信安全解决方案部门的一员,他专注于设计和开发独特的软件解决方案,以提供对实际可操作网络安全培训场景以及基础知识培训便捷持续的访问。