VMware vRealize 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提供卓越的性能,特別是緩存未變化的非動態資訊時。
它是Yahoo、eBay、亞馬遜甚至Google等主要服務供應商最常使用的協定。
REST通常更快並且佔用頻寬更少。與現有網站整合也更容易,無需重構網站基礎架構。這使開發人員能夠更快地工作,無需花時間從頭開始重構網站。不僅如此,他們還可以輕鬆添加功能。
?
藍圖
藍圖是包含一個或多個物理、虛擬機器或雲電腦方案的規範,包括網路配置和相應的生命週期資訊。在典型的軟體發展過程中,用戶是調用REST API來部署藍圖。
vRealize Automation: REST API
目錄服務REST API旨在供服務目錄的使用者使用;例如,想要請求目錄項的最終使用者將是此API的使用者。當最終使用者請求目錄項時,將調用目錄使用者REST API。
開發中使用的技術適用於希望以程式設計方式管理vRealize Automation以便為軟體發展配置VM的開發人員。使用vRA REST API請求目錄項的過程有以下五個步驟:
第1步:獲取HTTP承載權杖進行身份驗證
URL: https:///identity/api/tokens
類型:Get
類型:Post
報頭:Content-type: application/json
第2步:使用藍圖名稱獲取藍圖id
URL: https:///catalog-service/api/consumer/entitledCatalogItems?$filter=name+eq+'name'
類型:Get
報頭:
Content-type: application/json,
Authorization: Bearer ,
Accept: application/json
第3步:獲取請求目錄項所需的JSON範本
URL: https:///catalog-service/api/consumer/entitledCatalogItems/{id}/requests/template
類型:Get
報頭:
Content-type: application/json,
Authorization: Bearer ,
Accept: application/json
第4步:請求目錄項
URL: https:///catalog-service/api/consumer/entitledCatalogItems/{id}/requests
類型:Post
報文:json response received from request template(之前步驟)
第5步:檢查請求狀態
URL: https://
類型:Get
圖三 : 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)部門軟體工程師)