2

I'd like to automatically obtain a list or array of the VMs (mac address/name/resource pool) currently created on a vSphere server and use it in a python app. Can someone please suggest a good approach or solution to do this? I'm rather new to the vSphere platform. Thanks.

William
  • 213
  • 6
  • 15

4 Answers4

4

You should probably look at VMWare VIX API:

http://www.vmware.com/support/developer/vix-api/

Unfortunately it doesn't have python support. I don't know if it would be possible to make python use the C support? You could use perl or Powershell

If it has to be python then there is pyvix:

http://sourceforge.net/projects/pyvix/

I've never used it and don't know if it works.

gm3dmo
  • 10,057
  • 1
  • 42
  • 36
3

I've recently released pysphere: http://code.google.com/p/pysphere/

For your case in particular

from pysphere import *
server = VIServer()
server.connect("your.esx.or.vcenter.hostname", "user", "password")
vms = server.get_registered_vms()
vm = server.get_vm_by_path(vms[0])
print vm.get_property("mac_address")
print vm.get_property("ip_address")
print vm.get_property("name")
print vm.get_resource_pool_name()
stello
  • 31
  • 2
2

Take a look at the pyVmomi project which is the official Python SDK for the VMware vSphere API that allows you to manage ESX, ESXi and vCenter.

Moreover, the pyvmomi-community-samples repository contains lot of examples.

Yohann
  • 285
  • 2
  • 11
0

It's time that Python got vSphere/VMware bindings.

I've got an API started on top of suds. You might want to follow (or join) my project on BitBucket:

http://jkinred.bitbucket.org/psphere/

I'm new to Python but at the minimum it will show you how to use suds to talk to the web services SDK.