PyVmomi: VMware vSphere Python SDK

一、OverView

重点知识:
  1、view_type = [vim.VirtualMachine]
  2、content.viewManager.CreateContainerView()
  3、child.summary.config
def print_vm_info(virtual_machine):
"""
Print information for a particular virtual machine or recurse into a
folder with depth protection
"""
summary = virtual_machine.summary
print("Name : ", summary.config.name)
print("Template : ", summary.config.template)
print("Path : ", summary.config.vmPathName)
print("Guest : ", summary.config.guestFullName)
print("Instance UUID : ", summary.config.instanceUuid)
print("Bios UUID : ", summary.config.uuid)
print("State : ", summary.runtime.powerState) # 判断是否有注释
annotation = summary.config.annotation
if annotation:
print("Annotation : ", annotation) # 打印Guest OS内的信息
if summary.guest is not None:
ip_address = summary.guest.ipAddress
tools_version = summary.guest.toolsStatus
if tools_version is not None:
print("VM-tools: ", tools_version)
else:
print("V-tools: None")
if ip_address:
print("IP : ", ip_address)
else:
print("IP : None") content = service_instance.RetrieveContent() # 拿到vCenter的内容对象
container = content.rootFolder # starting point to look into
view_type = [vim.VirtualMachine] # object types to look for
recursive = True # whether we should look into it recursively
container_view = content.viewManager.CreateContainerView(container, view_type, recursive) children = container_view.view
for child in children:
print_vm_info(child)

二、虚拟机状态、配置信息

1、runtime 虚拟机的运行状态

runtime = (vim.vm.RuntimeInfo) {
dynamicType = <unset>,
host = 'vim.HostSystem:host-34',
connectionState = 'connected',
powerState = 'poweredOn',  // 虚拟机电源状态
faultToleranceState = 'notConfigured',  // 是否配置FT
dasVmProtection = <unset>,
toolsInstallerMounted = false,
suspendTime = <unset>,
bootTime = 2017-08-26T06:31:27.543474Z,
suspendInterval = 0,
question = <unset>,
memoryOverhead = <unset>,
maxCpuUsage = 2808,
maxMemoryUsage = 891,
numMksConnections = 0,
recordReplayState = 'inactive',
cleanPowerOff = <unset>,
needSecondaryReason = <unset>,
onlineStandby = false,
minRequiredEVCModeKey = <unset>,
consolidationNeeded = false,
}

2、Guest操作系统信息(不建议使用,应为受到VMtools影响)

guest = (vim.vm.Summary.GuestSummary) {
dynamicType = <unset>,
dynamicProperty = (vmodl.DynamicProperty) [],
guestId = 'ubuntu64Guest',
guestFullName = 'Ubuntu Linux (64-bit)',
toolsStatus = 'toolsOk',  // VMtools状态
toolsVersionStatus = 'guestToolsUnmanaged',
toolsVersionStatus2 = 'guestToolsUnmanaged',
toolsRunningStatus = 'guestToolsRunning',
hostName = 'ubuntu001',  // hostname
ipAddress = '172.16.65.146'  // ipaddress
}

3、虚拟机配置

config = (vim.vm.Summary.ConfigSummary) {
dynamicType = <unset>,
dynamicProperty = (vmodl.DynamicProperty) [],
name = 'Ubuntu16.04',
template = false,
vmPathName = '[datastore1] Ubuntu16.04/Ubuntu16.04.vmx',
memorySizeMB = 1024,
cpuReservation = 0,
memoryReservation = 0,
numCpu = 1,
numEthernetCards = 1,
numVirtualDisks = 1,
uuid = '4239b0ea-cbb8-c0b2-56a1-0b98bdbf01dd',
instanceUuid = '5039f07c-47c6-d77d-e793-bf1b7aee17e2',
guestId = 'ubuntu64Guest',
guestFullName = 'Ubuntu Linux (64-bit)',
annotation = 'Ubuntu Server',
product = <unset>,
installBootRequired = false,
ftInfo = <unset>,
managedBy = <unset>
},

4、虚拟机磁盘信息

storage = (vim.vm.Summary.StorageSummary) {
dynamicType = <unset>,
dynamicProperty = (vmodl.DynamicProperty) [],
committed = 18424777995,
uncommitted = 505,
unshared = 17179869184,
timestamp = 2017-08-26T08:37:37.764585Z
},

。。。。

												

最新文章

  1. 关于DOM对象与JQuery对象的那些事
  2. jQuery给动态添加的元素绑定事件的方法
  3. [lua大坑]一个莫名其妙的lua执行时崩溃引出的堆栈大小问题
  4. TCP/IP协议学习(六) 链路层详解
  5. Android UI系列-----时间、日期、Toasts和进度条Dialog
  6. android中实现view可以滑动的六种方法
  7. 通过pinyin4j将汉字转换为全拼 和 拼音首字母
  8. unity中js脚本与c#脚本互相调用
  9. 8 个优秀的 Linux 图形图像及色彩工具
  10. Scheme 中的 pair 和 list 简述
  11. inline-block解决
  12. Beta No.6
  13. Python学习笔记,day4
  14. go学习资源
  15. 【转】在.net Core 中像以前那样的使用HttpContext.Current
  16. C++多线程中用临界区控制全局变量的访问冲突问题
  17. Java实现邮箱发送
  18. 将tomcat做成服务
  19. Elasticsearch入坑指南之RESTful API
  20. Rsyslog日志服务搭建

热门文章

  1. Android分享功能的一点总结
  2. lower_bound() 与 upper_bound()
  3. 小书匠markdown编辑器V1.0.12发布
  4. hdu 2349 最小生成树
  5. Java中HashTable和HashMap的区别
  6. secureCrt Linux 文件传输
  7. CentOS 6.9上安装mysql-5.6.37
  8. 2016 acm香港网络赛 C题. Classrooms(贪心)
  9. 从xhr说起
  10. html5中form表单新增属性以及改良的input标签元素的种类