使用VMware REST API与虚拟机交互

偶然发现VMware居然提供的有REST API可以与虚拟机交互,这样一来我们就通过编程实现虚拟机的自动化管理了。

VMware版本:VMware Fusion Pro 12.0.0

REST API需要先启动REST服务才可以与之交互。

步骤如下:

创建REST用户名密码

在终端中输入命令vmrest -C,按提示输入用户名和密码。

启动REST服务

使用命令vmrest启动REST服务,默认地址为127.0.0.1:8697,在浏览器中打开该页面,可以看到支持的REST API及相关说明,有主机网络管理、虚拟机管理、虚拟机网络适配器管理、虚拟机电源管理、共享目录管理,涵盖了虚拟机从创建到删除的整个过程。

API交互

来尝试与API交互吧!

以获取虚拟机列表/vms为例,如果使用curl,格式如下

curl 'http://127.0.0.1:8697/api/vms' -X GET --header 'Accept: application/vnd.vmware.vmw.rest-v1+json' -u 'username:password'

如果使用编程语言自动交互,HTTP Method用GETheader加上'Accept: application/vnd.vmware.vmw.rest-v1+json',认证方式为Basic Auth,传用户名密码即可。

贴上Python代码

import requests
from requests.auth import HTTPBasicAuth

url = "http://127.0.0.1:8697/api/vms"
headers = {'Accept': 'application/vnd.vmware.vmw.rest-v1+json'}
username = 'username'
password = 'password'

rs = requests.get(url, headers=headers, auth=HTTPBasicAuth(username, password))

print(rs.text)

返回内容如下

虚拟机列表

当然,REST API只是自动化管理VMware虚拟机的其中一种方式,别的更高级的产品本人目前尚未使用过,等用过了再展开来说。

Leave a Comment

豫ICP备19001387号-1