PyVmomi 使用示例
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
},
。。。。
PyVmomi 使用示例的更多相关文章
- Ansible VMware模块使用示例
vmware_vm_facts模块使用示例 执行条件: 安装Pyvmimo: pip install pyvmomi 方法一,直接编写单个yaml文件: - hosts: localhost # 注 ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1
微软今天在 Connect(); // 2016 上发布了 .NET Core 1.1 ,ASP.NET Core 1.1 以及 Entity Framework Core 1.1.紧跟这次发布,我们 ...
- 通过Jexus 部署 dotnetcore版本MusicStore 示例程序
ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- XAMARIN ANDROID 二维码扫描示例
现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile 做一个简单的 Android 条码扫描示 ...
- iOS之ProtocolBuffer搭建和示例demo
这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题! 搭建pb编译器到时没有什么问题,只是在把*.pro ...
- Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)
示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...
随机推荐
- Lua学习十一----------Lua迭代器
© 版权声明:本文为博主原创文章,转载请注明出处 Lua迭代器 - 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 - Lu ...
- C的字符串操作接口实现
近期在写一个关于用HTTP控制storm的的UI功能.已经实现完毕,採用在nginx里面增加相应的模块调用来实现,模块中调用一个动态载入的SO.这个SO用THRIFT和zookeeper client ...
- iOS 渐变色实现,渐变色圆环,圆环进度条
CAGradientLayer图层可以通过设置mask来给视图添加渐变效果 CAGradientLayer主要需要设置一下几个参数 colors:传入需要渐变的颜色 例如 self.gradientL ...
- Harbor配置ldap
1.修改配置Harborp配置文件,共修改三处 1.1 auth_mode = ldap_auth 1.2 ldap_url = ldap://10.10.20.202 1.3 ldap_basedn ...
- 【Mac系统 + Git】之上传项目代码到github上以及删除某个文件夹
之前做开发的时候,用过一段时间git代码管理工具,用命令行操作感觉十分高大上,今天我想从头总结一篇Mac系统下如何利用git上传代码到github上的学习. 目录 一.安装Git 二.创建.ssh文件 ...
- Spring读书笔记-----Spring核心机制:依赖注入
spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入.今天就和大家一起来学习一下 依赖注入的基本概念 依赖注入(Dependecy Injection),也称为IoC(I ...
- CLR内存回收总结,代龄机制
关键字:对象可达图,代龄机制,终止化对象. 代龄机制: 0代满了之后,GC开始回收,剩下的对象升级为1代.(只有不可达的对象才会被回收.) 0代再回收几次之后,1代的对象慢慢增多然后达到阈值,GC同时 ...
- 如何使CSS--better(系列二)
上一篇文章(如何使CSS--beter 系列一)中 分析了一下 什么样子的代码是高效的 应该避免什么样子的代码, 那么什么样子的代码是更容易扩展的? 什么代码是更好维护的? 什么代码是更好的? 下边 ...
- data standardization
import random import numpy as np l, num, gen_min_, gen_max_ = [], 100, 1, 200 l = [random.randint(ge ...
- Python菜鸟之路:Python基础-内置函数补充
常用内置函数及用法: 1. callable() def callable(i_e_, some_kind_of_function): # real signature unknown; restor ...