日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

vSphere开发指南1——vSphere Automation API

發(fā)布時(shí)間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vSphere开发指南1——vSphere Automation API 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

VMware vCenter Server是VMware虛擬化管理平臺(tái),廣泛的應(yīng)用于企業(yè)私有云內(nèi)網(wǎng)中。站在滲透測(cè)試工具開(kāi)發(fā)的角度,我們需要通過(guò)命令行實(shí)現(xiàn)vCenter Server同虛擬機(jī)的交互。

本系列文章將要比較多種不同的API,介紹實(shí)現(xiàn)細(xì)節(jié),開(kāi)源代碼,實(shí)現(xiàn)以下功能:

· 讀取虛擬機(jī)的配置

· 查看虛擬機(jī)文件

· 刪除虛擬機(jī)文件

· 向虛擬機(jī)上傳文件

· 從虛擬機(jī)下載文件

· 在虛擬機(jī)中執(zhí)行命令

簡(jiǎn)介

本文將要介紹以下內(nèi)容:

· 基礎(chǔ)知識(shí)

· vSphere Automation API開(kāi)發(fā)細(xì)節(jié)

· 開(kāi)源代碼vSphereAutomationAPI_Manage.py

基礎(chǔ)知識(shí)

1.VMware vSphere

VMware vSphere是整個(gè)VMware套件的商業(yè)名稱,而不是特定的產(chǎn)品或軟件。

VMware vSphere的兩個(gè)核心組件是ESXi服務(wù)器和vCenter Server。

2.ESXi

ESXi是hypervsior,可以在其中創(chuàng)建和運(yùn)行虛擬機(jī)和虛擬設(shè)備。

3.vCenter Server

vCenter Server是用于管理網(wǎng)絡(luò)中連接的多個(gè)ESXi主機(jī)和池主機(jī)資源的服務(wù)。

vCenter Server可安裝至Linux系統(tǒng)中,通過(guò)安裝vCenter Server Appliance(VCSA)實(shí)現(xiàn)。

vCenter Server也可安裝至Windows系統(tǒng)中,通過(guò)安裝Vmware Integrated Management(VIM)實(shí)現(xiàn)。

vSphere Automation API開(kāi)發(fā)細(xì)節(jié)

為了能夠通過(guò)命令行實(shí)現(xiàn)vCenter Server同虛擬機(jī)的交互,我們需要使用vSphere Automation API中的vSphere REST API部分。

VMware在vSphere 6.0版本中引入了REST API,從vSphere7.0U2開(kāi)始,VMware宣布棄用舊的REST API,使用新的REST API。

經(jīng)過(guò)對(duì)比,發(fā)現(xiàn)舊的REST API(低于vSphere7.0U2)不支持以下操作:

· 查看虛擬機(jī)文件

· 刪除虛擬機(jī)文件

· 向虛擬機(jī)上傳文件

· 從虛擬機(jī)下載文件

· 在虛擬機(jī)中執(zhí)行命令

而新的REST API能夠滿足需求,所以在開(kāi)發(fā)上我們需要先對(duì)vCenter的版本進(jìn)行判斷,如果滿足要求(不低于vSphere7.0U2),那么才使用vSphere Automation API。

1.已有的開(kāi)源代碼

Windows環(huán)境加載該腳本的示例命令如下:

腳本執(zhí)行失敗,提示如下:


測(cè)試環(huán)境2:192.168.1.2(vCenter 7.0.2)

Windows環(huán)境加載該腳本的示例命令如下:

腳本執(zhí)行成功。

經(jīng)過(guò)更多的測(cè)試后,印證結(jié)論:vSphere Automation API在低版本(低于vSphere7.0U2)無(wú)法實(shí)現(xiàn)以下操作:

· 查看虛擬機(jī)文件

· 刪除虛擬機(jī)文件

· 向虛擬機(jī)上傳文件

· 從虛擬機(jī)下載文件

· 在虛擬機(jī)中執(zhí)行命令

2.參考文檔用原始數(shù)據(jù)包實(shí)現(xiàn)

在實(shí)現(xiàn)上,首先需要發(fā)送用戶名和明文口令獲得Session,使用Session作為登錄憑據(jù),進(jìn)行后續(xù)的操作。

具體實(shí)現(xiàn)細(xì)節(jié)如下:

(1)判斷vCenter的版本

獲得粗略版本的方法:

瀏覽器訪問(wèn):https://<server_hostname >/sdk/vimServiceVersions.xml

返回結(jié)果為xml數(shù)據(jù),無(wú)法獲得具體的版本。

獲得詳細(xì)號(hào)版本的方法:

訪問(wèn):https://<server_hostname>/sdk/

正文內(nèi)容如下:

注:

vSphere 7.0U2對(duì)應(yīng)對(duì)build屬性為17630552

(2)Create_Session

添加Header:

其中,dXNlcm5hbWU6cGFzc3dvcmQ為username:password作Base64編碼后的結(jié)果。

返回結(jié)果格式:響應(yīng)碼201,格式為application/json類型。

(3)List_Guest_Processes

請(qǐng)求正文需要json格式的數(shù)據(jù)作為憑據(jù),用來(lái)登錄虛擬機(jī)。

格式示例:

(4)vCenter同虛擬機(jī)傳輸文件

官方文檔描述的不夠詳細(xì)

這里給出我經(jīng)過(guò)測(cè)試得出的結(jié)論:

1.將文件從本地發(fā)送至虛擬機(jī),即向虛擬機(jī)發(fā)送該文件,先調(diào)用Create_Temporary_Guest_Filesystem_Files創(chuàng)建指定文件對(duì)應(yīng)的uri

發(fā)送的內(nèi)容格式如下;

不帶有size屬性。

發(fā)送成功后返回該文件對(duì)應(yīng)的uri,使用PUT方法訪問(wèn)uri,data字段為發(fā)送的文件內(nèi)容。

2.將該文件從虛擬機(jī)發(fā)送至本地,即讀取虛擬機(jī)中的文件,先調(diào)用Create_Temporary_Guest_Filesystem_Files創(chuàng)建指定文件對(duì)應(yīng)的uri。

發(fā)送的內(nèi)容格式如下;

必須帶有size屬性。

發(fā)送成功后返回該文件對(duì)應(yīng)的uri,使用GET方法訪問(wèn)uri,在獲取文件內(nèi)容時(shí)需要區(qū)分文本格式和二進(jìn)制格式,文本格式可以使用r.text讀取,二進(jìn)制格式可以使用r.content讀取。

開(kāi)源代碼

代碼適用版本:vSphere 7.0U1+

支持以下功能:

· 讀取虛擬機(jī)的配置

· 查看虛擬機(jī)文件

· 刪除虛擬機(jī)文件

· 向虛擬機(jī)上傳文件

· 從虛擬機(jī)下載文件

· 在虛擬機(jī)中執(zhí)行命令

具體命令如下:

· ListVM

· GetVMConfig

· ListHost

· ListVMProcess

· CreateVMProcess

· KillVMProcess

· ListVMFolder

· DeleteVMFile

· DownloadFileFromVM

· UploadFileToVM

其中,對(duì)于虛擬機(jī)的操作,支持Windows和Linux系統(tǒng)

小結(jié)

本文介紹了通過(guò)vSphere Automation API實(shí)現(xiàn)vCenter Server同虛擬機(jī)交互的方法,開(kāi)源實(shí)現(xiàn)代碼vSphereAutomationAPI_Manage.py,記錄開(kāi)發(fā)細(xì)節(jié)。

對(duì)于vSphere Automation API,有些操作不支持低版本的vCenter(<vSphere7.0U2),導(dǎo)致通用性不夠,所以下篇文章將要介紹更為通用的實(shí)現(xiàn)方法。

【想學(xué)網(wǎng)絡(luò)安全嗎,點(diǎn)一下】

總結(jié)

以上是生活随笔為你收集整理的vSphere开发指南1——vSphere Automation API的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。