- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
vSphere Automation SDK works only with vCenter sessions.
Because there are no public APIs for ESXi VMODL2.
To achieve your task use pyVmomi.
> pyVmomi(SOAP based) allows you to manage VMware ESXi and vCenter using Python.
pyVmomi: https://github.com/vmware/pyvmomi
Note: Mentioned perl SDK is also a SOAP-based( vSphere Web Services API) integration point for the vSphere Management SDK.
Sample program to list all VMs under ESXi/vCenter:
from pyVim.connect import SmartConnect
import ssl
s = ssl.create_default_context(purpose=ssl.Purpose.CLIENT_AUTH)
s.verify_mode = ssl.CERT_NONE
si = SmartConnect(
host="<vCenter or ESXi server>",
user="root",
pwd="<passw0rd>",
port=443,
sslContext=s,
)
content = si.RetrieveContent()
for child in content.rootFolder.childEntity:
if hasattr(child, "vmFolder"):
datacenter = child
vmFolder = datacenter.vmFolder
vmList = vmFolder.childEntity
for vm in vmList:
summary = vm.summary
print("VM Name: ", summary.config.name)