Read all node hosts
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) #result1 = session.invoke_api(vim_util,'get_objects',, 'HostSystem', 100) #print([0]) # rep2 = session.invoke_api(vim_util,'get_object_properties_dict',, [0].obj,'vm') res = session.invoke_api(vim_util,"get_objects",,"ResourcePool",100) print(res)
Get all regions:
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"ComputeResource",100) addr = [] for i in : ([0][1]) print(addr)
Get a list of all hosts.
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"HostSystem",1000) addr = [] for i in : ([0][1]) print(addr)
Get HostSystem MO
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"HostSystem",1000) # Let's pick an ESXi Host at random, and print its Object host_obj = [0].obj # Get the HostNetworkSystem MO, and print its Value. host_network_system_val = session.invoke_api(vim_util, 'get_object_properties_dict',,host_obj,'') print(host_network_system_val)
Detailed information:
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"VirtualMachine",1000) summary = session.invoke_api(vim_util, 'get_object_properties_dict', , [0].obj,'summary') print(summary)
List of resources
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"Datacenter",1000) # Get a list of Cluster resources computeResource = session.invoke_api( vim_util, 'get_objects', , 'ComputeResource', 100) for each in : print("List of resources: {}".format(each[1][0][1]))
Read host status
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"HostSystem",1000) summary = session.invoke_api(vim_util, 'get_object_properties_dict', , [0].obj,'') summary1 = session.invoke_api(vim_util, 'get_object_properties_dict', , [0].obj,'') print(("")) print((""))
cyclic output
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"HostSystem",100) tim = 0 for each in : tim = tim +1 print(tim) stats = session.invoke_api(vim_util, 'get_object_properties_dict', , ,'') addr = session.invoke_api(vim_util, 'get_object_properties_dict', , ,'') print("host address: {} \t state of affairs: {}".format((""),("")))
Read the state of the virtual machine
from oslo_vmware import api from oslo_vmware import vim_util import urllib3 urllib3.disable_warnings() session = ( '127.0.0.1', 'admin@', '123456', 1,0.1) res = session.invoke_api(vim_util,"get_objects",,"VirtualMachine",100) instance = [0].obj print(instance) stats = session.invoke_api(vim_util, 'get_object_properties_dict', , instance, 'summary') print(stats)
Use .vcenter_client to manage virtual machines.
Vsphere API Basics.
import requests import urllib3 from import create_vsphere_client session = () = False urllib3.disable_warnings() vsphere_client = create_vsphere_client(server='127.0.0.1', username='admin@', password='123456', session=session) # List all virtual machines ref = vsphere_client.() print(ref) # Filter by VM name ref = vsphere_client.( vsphere_client.(names={'Baidu-NLP01'}) ) print(ref)
Realization of on/off switching
import requests import urllib3 from import create_vsphere_client session = () = False urllib3.disable_warnings() vsphere_client = create_vsphere_client(server='127.0.0.1', username='admin@', password='123456', session=session) # Retrieve if the system is on vm = vsphere_client.(vsphere_client.(names={'GZH-SERVER3'}))[0] power_status = vsphere_client.() print("Whether or not to power on: {}".format(power_status)) # Retrieve if the system is on vm = vsphere_client.(vsphere_client.(names={'192.168.81.51'})) if len(vm) != 0: vm = vm[0] power_status = vsphere_client.() print("boot up: {}".format(power_status.state)) else: print("Turned off.") # Shut down the system start / reset / suspend / stop vsphere_client.() # Delete the virtual machine vsphere_client.(vm)
List data stores
import requests import urllib3 from import create_vsphere_client from .vcenter_client import Folder from .vcenter_client import Datastore from .vcenter_client import Network session = () = False urllib3.disable_warnings() vsphere_client = create_vsphere_client(server='127.0.0.1', username='admin@', password='123456', session=session) # List clusters #ref = vsphere_client.() #print(ref) # List all folders in vCenter #folder = vsphere_client.() # List datastores # store = vsphere_client.() datastore_name = '192.168.64.20' filter_spec = (names={datastore_name}) datastore_summaries = vsphere_client.(filter_spec) datastore_id = datastore_summaries[0].datastore print("memory structure: {} Datastore Name: {}".format(datastore_summaries,datastore_id))
Getting the resource pool
import requests import urllib3 from import create_vsphere_client from .vcenter_client import Cluster from .vcenter_client import ResourcePool session = () = False urllib3.disable_warnings() vsphere_client = create_vsphere_client(server='127.0.0.1', username='admin@', password='123456', session=session) # Get all resource pools filter = vsphere_client.() print(filter) # Get resource pools by cluster name cluster_name = 'vSAN-Cluster1' cluster_id = vsphere_client.((names={cluster_name}))[0].cluster resource_pool_id = vsphere_client.((clusters={cluster_id}))[0].resource_pool print(resource_pool_id)
Listing of networks
import requests import urllib3 from import create_vsphere_client from .vcenter_client import Network session = () = False urllib3.disable_warnings() vsphere_client = create_vsphere_client(server='127.0.0.1', username='admin@', password='123456', session=session) # List standard networks filter = vsphere_client.() print(filter) ''' It has three types of type: DISTRIBUTED_PORTGROUP: A network created and managed by vcenter; OPAQUE_NETWORK: created by a device other than VSphere, but the name and identifier of the network is known to vSphere so that the NICs of the host and VMs can connect; STANDARD_PORTGROUP: networks created and managed by ESX. ''' filter = (names={'vlan 164'},types={.STANDARD_PORTGROUP}) network_summaries = vsphere_client.(filter=filter) print(network_summaries) # List distributed networks filter = ( names=set(['vlan 164']), types=set([.DISTRIBUTED_PORTGROUP])) network_summaries = vsphere_client.(filter=filter) if len(network_summaries) > 0: network_id = network_summaries[0].network print(network_id) else: print("Distributed Portgroup Network not found in Datacenter")
Article Provenance:/lyshark
Above is the Python use management ESXI virtual machine example reference in detail, more information about Python use management ESXI virtual machine please pay attention to my other related articles!